Skip to content

AddToIgs improvements 5: use smaller exponents when norming & sifting - #241

Merged
fingolfin merged 2 commits into
gap-packages:masterfrom
stertooy:igs-improv-5
Oct 17, 2026
Merged

fingolfin merged 2 commits into
gap-packages:masterfrom
stertooy:igs-improv-5

Conversation

@stertooy

Copy link
Copy Markdown
Collaborator

Extracted from #174, builds upon #236 and #240. I'll mark this a draft PR until those are merged and this has been rebased.

This PR introduces the SmallestResidue approach from #174. The idea is quite simple: if we're on a finite layer with relative exponent r, it's better to consider exponents in $\left(-\frac{r}{2},\frac{r}{2}\right]$ than in $[0,r)$. This approximately halves the average exponent, which leads to less/easier calculations.

Original PR disclaimer:
Assisted-by: Claude Code (Fable 5.1)

@codecov

codecov Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 69.65%. Comparing base (e426dee) to head (43db182).

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #241      +/-   ##
==========================================
+ Coverage   69.64%   69.65%   +0.01%     
==========================================
  Files          88       88              
  Lines       12899    12907       +8     
==========================================
+ Hits         8983     8991       +8     
  Misses       3916     3916              
Files with missing lines Coverage Δ
gap/basic/pcpelms.gi 86.20% <100.00%> (+0.20%) ⬆️
gap/basic/pcppara.gi 93.33% <100.00%> (+0.05%) ⬆️
gap/basic/pcppcps.gi 83.83% <100.00%> (+0.02%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@stertooy
stertooy marked this pull request as ready for review October 17, 2026 11:29
Comment thread doc/defins.xml
<Description>
returns an integer <M>e</M>, either positive or <M>-1</M>, such that the pcp-element
<A>g</A> raised to the power of <M>e</M> is normed.
returns an integer <M>e</M> such that the pcp-element <A>g</A> raised to the

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This changes documented results: NormingExponent can now be negative at finite depths, and NormedPcpElement, Ngs, Igs return different elements. E.g. G := PcGroupToPcpGroup(CyclicGroup(IsPcGroup, 25));; NormingExponent(G.1^2); gives 3 on master, -2 here; NormedPcpElement(G.1^2) gives g1*g2 vs g1*g2^4. #174 had a CHANGES.md entry for this; please carry it over. Optionally state the range here: in (-r/2, r/2] for relative order r > 0, ±1 for r = 0.

Choose residues in (-r/2, r/2] at finite depths.

Assisted-by: Claude Code (Fable 5.1)
@fingolfin
fingolfin merged commit 086dd79 into gap-packages:master Oct 17, 2026
5 checks passed
@stertooy
stertooy deleted the igs-improv-5 branch October 21, 2026 22:41
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.

2 participants