Skip to content

Experimental IGS fix#129

Draft
stertooy wants to merge 3 commits into
gap-packages:masterfrom
stertooy:experiment-v1
Draft

Experimental IGS fix#129
stertooy wants to merge 3 commits into
gap-packages:masterfrom
stertooy:experiment-v1

Conversation

@stertooy

Copy link
Copy Markdown
Contributor

An attempt to fix #76 and #117 by fixing the igs algorithms. It would be much better to use Max Mayer's algorithms, but in the meantime perhaps this is worth considering?

The basic idea is that, in the current igs algorithms we do things like

e := Gcdex( LeadingExponent( g ), LeadingExponent( h ) );
k := g ^ e.coeff1 * h ^ e.coeff2;
l := g ^ e.coeff3 * h ^ e.coeff4;

which causes errors, because the group generated by k and l might be strictly contained inside the group generated by g and h. Instead, while performing the Euclidean algorithm on the leadining exponents, we multiply g and h at the same time. Essentially we are constantly repeating operations of the form

k := h;
l := g * h ^ -e;

so at every point the subgroup generated by k and l coincides with the subgroup generated by g and h.

I do think this is somewhat slower, and I also got rid of some optimisation which I wasn't sure how to "port"... but it doesn't seem too bad?

(Note: this PR includes #124, #126, and the suggestions from #127 and #128 to make tests more reliable... Most of my recent bug reports were discovered when trying to test this algorithm.)

@codecov

codecov Bot commented Jul 18, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 99.39024% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 57.00%. Comparing base (86cd79f) to head (1892d26).

Files with missing lines Patch % Lines
gap/basic/orbstab.gi 75.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #129      +/-   ##
==========================================
+ Coverage   56.39%   57.00%   +0.60%     
==========================================
  Files          87       87              
  Lines       12697    12770      +73     
==========================================
+ Hits         7161     7279     +118     
+ Misses       5536     5491      -45     
Files with missing lines Coverage Δ
gap/basic/pcppara.gi 93.78% <100.00%> (+3.84%) ⬆️
gap/basic/pcppcps.gi 82.92% <100.00%> (+4.74%) ⬆️
gap/cohom/grpcom.gi 75.64% <100.00%> (ø)
gap/pcpgrp/inters.gi 99.20% <100.00%> (+1.24%) ⬆️
gap/pcpgrp/normcon.gi 87.11% <100.00%> (+2.53%) ⬆️
gap/basic/orbstab.gi 89.86% <75.00%> (+1.35%) ⬆️

... 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

NormalIntersection runs forever on certain subgroups

1 participant