Skip to content

Comments

Speed up RecogniseClassical in some cases#386

Merged
fingolfin merged 1 commit intomasterfrom
mh/speedup-proj-naming
Feb 17, 2026
Merged

Speed up RecogniseClassical in some cases#386
fingolfin merged 1 commit intomasterfrom
mh/speedup-proj-naming

Conversation

@fingolfin
Copy link
Member

... by using genss to compute projective stabilizer chains. This is much faster than the GAP library, in parts because it doesn't verify the result (but even if we allow the GAP library to also omit the verification, genss still handily wins).

Moreover, in the Omega(+1,8,5) case, a return value was wrong, meaning that for certain maximal subgroups of CGO^+(8,5) we failed to give up, which resulted in terrible runtimes.

Before:

gap> RecogniseClassical(SO(1,8,5));; time;
2665
gap> RecogniseClassical(maxes_cgo_plus_8_5[1]);; time;
29965

After:

gap> RecogniseClassical(SO(1,8,5));; time;
214
gap> RecogniseClassical(maxes_cgo_plus_8_5[1]);; time;
325

This is still not fantastic but at least acceptable. For reference, Magma takes 60 resp. 80 ms.

Resolves #380

... by using genss to compute projective stabilizer chains. This
is much faster than the GAP library, in parts because it doesn't
verify the result (but even if we allow the GAP library to also
omit the verification, genss still handily wins).

Moreover, in the Omega(+1,8,5) case, a return value was wrong,
meaning that for certain maximal subgroups of CGO^+(8,5) we
failed to give up, which resulted in terrible runtimes.

Before:

    gap> RecogniseClassical(SO(1,8,5));; time;
    2665
    gap> RecogniseClassical(maxes_cgo_plus_8_5[1]);; time;
    29965

After:

    gap> RecogniseClassical(SO(1,8,5));; time;
    214
    gap> RecogniseClassical(maxes_cgo_plus_8_5[1]);; time;
    325

This is still not fantastic but at least acceptable. For reference,
Magma takes 60 resp. 80 ms.
@codecov
Copy link

codecov bot commented Feb 16, 2026

Codecov Report

❌ Patch coverage is 62.50000% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 69.18%. Comparing base (37d64c7) to head (36e083f).
⚠️ Report is 3 commits behind head on master.

Files with missing lines Patch % Lines
gap/matrix/classical.gi 62.50% 6 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #386      +/-   ##
==========================================
+ Coverage   68.83%   69.18%   +0.35%     
==========================================
  Files          43       43              
  Lines       18409    18406       -3     
==========================================
+ Hits        12671    12734      +63     
+ Misses       5738     5672      -66     
Files with missing lines Coverage Δ
gap/matrix/classical.gi 58.13% <62.50%> (+0.64%) ⬆️

... and 4 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@fingolfin fingolfin merged commit 1d173f8 into master Feb 17, 2026
5 of 7 checks passed
@fingolfin fingolfin deleted the mh/speedup-proj-naming branch February 17, 2026 09:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

RecogniseClassical(SO(1,8,5)) is too slow

1 participant