Skip to content

Speed up FactorGroup and NaturalHomomorphismByNormalSubgroup for pc groups when the normal subgroup lies in an elementary abelian tail of the pcgs - #6576

Open
fingolfin wants to merge 1 commit into
mh-claude/pc-normal-closure-normalityfrom
mh-claude/pc-factor-perf-handoff-d11831
Open

fingolfin wants to merge 1 commit into
mh-claude/pc-normal-closure-normalityfrom
mh-claude/pc-factor-perf-handoff-d11831

Conversation

@fingolfin

Copy link
Copy Markdown
Member

When the denominator of a modulo pcgs lies in a tail of the numerator that generates an elementary abelian group, exponents above the tail are those of the numerator, and tail exponents follow by reduction with a row-reduced basis of the denominator. IndexOfElementaryAbelianTail finds the tail, for family pcgs from the collector's avector, and GROUP_BY_PCGS_FINITE_ORDERS skips the trivial relations inside it.

For a group of order 5^2133 modulo a normal subgroup of order 5^787, building the quotient took about 9 hours and now takes 11.5 s.

Assisted-by: Claude Code (Opus 5)

@fingolfin fingolfin added kind: enhancement Label for issues suggesting enhancements; and for pull requests implementing enhancements topic: performance bugs or enhancements related to performance (improvements or regressions) topic: library release notes: use title For PRs: the title of this PR is suitable for direct use in the release notes labels Sep 16, 2026
@codecov

codecov Bot commented Sep 16, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.92035% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 79.03%. Comparing base (9ffc3f4) to head (369070f).

Files with missing lines Patch % Lines
lib/pcgsmodu.gi 92.85% 5 Missing ⚠️
lib/pcgspcg.gi 89.47% 2 Missing ⚠️
lib/pcgsind.gi 90.90% 1 Missing ⚠️
Additional details and impacted files
@@                            Coverage Diff                            @@
##           mh-claude/pc-normal-closure-normality    #6576      +/-   ##
=========================================================================
+ Coverage                                  79.02%   79.03%   +0.01%     
=========================================================================
  Files                                        683      683              
  Lines                                     295223   295335     +112     
  Branches                                    8637     8661      +24     
=========================================================================
+ Hits                                      233292   233414     +122     
+ Misses                                     60113    60106       -7     
+ Partials                                    1818     1815       -3     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

When the denominator of a modulo pcgs lies in a tail of the numerator
that generates an elementary abelian group, exponents above the tail
are those of the numerator, and tail exponents follow by reduction with
a row-reduced basis of the denominator. IndexOfElementaryAbelianTail
finds the tail, for family pcgs from the collector's avector, and
GROUP_BY_PCGS_FINITE_ORDERS skips the trivial relations inside it.

For a group of order 5^2133 modulo a normal subgroup of order 5^787,
building the quotient took about 9 hours and now takes 11.5 s.

Assisted-by: Claude Code (Opus 5)
@fingolfin
fingolfin force-pushed the mh-claude/pc-factor-perf-handoff-d11831 branch from a43f75e to 369070f Compare September 16, 2026 07:17
@fingolfin fingolfin added this to the GAP 4.17.0 milestone Sep 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind: enhancement Label for issues suggesting enhancements; and for pull requests implementing enhancements release notes: use title For PRs: the title of this PR is suitable for direct use in the release notes topic: library topic: performance bugs or enhancements related to performance (improvements or regressions)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant