gap-packages / ClassicalMaximals

Maximal subgroups of classical groups
Other
0 stars 8 forks source link

Speed up GammaLMeetSU and UnitarySemilinearSp #97

Closed fingolfin closed 2 years ago

fingolfin commented 2 years ago

... by avoiding LogFFE, achieved by creating the generators for SU resp. GU "from scratch" (with code adapted from the GAP library), but with a twist: instead of finite field elements, we use rational functions that express the entries in terms of a primitive element. This way the map Theta (implemented here via MapGammaLToGLRatFun as a variation of MapGammaLToGL) is easy to compute: we just evaluate each non-zero rational function in the entries of the generator matrices at the matrix "A"

Before this patch:

gap> GammaLMeetSU(9, 8, 3);; time;
3396
gap> UnitarySemilinearSp(8,3^6);; time;
8860

After this patch:

gap> GammaLMeetSU(9, 8, 3);; time;
19
gap> UnitarySemilinearSp(8,3^6);; time;
135

Also simplify GUMinusSU -- while not needed for this change (we replace a call to GUMinusSU), it is useful in that it makes it obvious that the replacement code for it corresponds to what GUMinusSU does.

Finally, replace two problematic uses of PrimitiveElement by PrimitiveRoot: they were problematic because they were passed to MapGammaLToGL which in turn passes them to LogFFE; which by definition only works in general for primitive roots.

Resolves #94

Remarks:

Checklist for the reviewer

General

Functions constructing generators of maximal subgroups

Functions assembling the list of all maximal subgroups of a certain group

The reviewer doesn't need to compare our results to magma's results. That's the job of the person implementing the code.

codecov[bot] commented 2 years ago

Codecov Report

Merging #97 (7d632b1) into main (b1944c3) will decrease coverage by 0.37%. The diff coverage is 87.40%.

@@            Coverage Diff             @@
##             main      #97      +/-   ##
==========================================
- Coverage   95.66%   95.29%   -0.38%     
==========================================
  Files          14       14              
  Lines        2860     2973     +113     
==========================================
+ Hits         2736     2833      +97     
- Misses        124      140      +16     
Impacted Files Coverage Δ
gap/SemilinearMatrixGroups.gi 91.79% <87.20%> (-3.16%) :arrow_down:
gap/ClassicalMaximals.gi 96.78% <100.00%> (-0.04%) :arrow_down: