Repository navigation
Update ArithmeticVoronoi provider and expand Julia homology examples - #169
Merged
grahamknockillaree merged 3 commits intoNov 7, 2026
Merged
grahamknockillaree merged 3 commits into
grahamknockillaree merged 3 commits into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #169 +/- ##
=======================================
Coverage 43.00% 43.00%
=======================================
Files 383 383
Lines 69324 69324
=======================================
Hits 29816 29816
Misses 39508 39508
🚀 New features to boost your workflow:
|
Collaborator
|
Hi Dima, can your code produce a complex for SL_2 in the totally real quadratic case? This is something the Magma code doesn't do.
All the best,
Graham
…________________________________
From: Dima Pasechnik ***@***.***>
Sent: Friday, November 6, 2026 9:43 PM
To: gap-packages/hap ***@***.***>
Cc: Subscribed ***@***.***>
Subject: [gap-packages/hap] Update ArithmeticVoronoi provider and expand Julia homology examples (PR #169)
External Email: This email originated outside the University of Galway. Do not open attachments or click on links unless you believe the content is safe.
Ríomhphost Seachtrach: Níor tháinig an ríomhphost seo ó Ollscoil na Gaillimhe. Ná hoscail ceangaltáin agus ná cliceáil ar naisc mura gcreideann tú go bhfuil an t-ábhar sábháilte.
ArithmeticVoronoi is now registered in General<JuliaRegistries/General#174612>. Update the Julia provider from dimpase/arithmetic_voronoi to dimpase/ArithmeticVoronoi.jl and exercise fresh GL, SL and PSL complexes and integral homology using Julia and HAP, without Magma, a C++ build or stored complexes.
The Julia job runs seven record-based examples and a direct hap_voronoi_complex call in one process: quadratic GL/SL/PSL in rank two, GL/SL over the integers in rank three, Gaussian GL in rank three, and PSL(2,Z). It checks cell-orbit counts and H₁/H₂ where specified, and verifies that later computations preserve earlier complexes. The tutorial gives the shorter direct Julia calls, installation commands and the supported field/lattice scope. HAP's existing dispatcher already accepts the general records; its added test checks that a rational PSL request is passed through unchanged.
The provider is pinned to public commit c6942b9<dimpase/ArithmeticVoronoi.jl@c6942b9>. Its rational request and projective-complex API extends registered v0.1.0, so the tutorial explicitly installs that same revision. PSL quotients by the full scalar centre. Real-quadratic SL/PSL cell complexes, nonmaximal orders and nonfree lattices remain unsupported by this provider.
Also fix InverseMutable for IsHapQuotientElement: it currently constructs a HapOppositeElement. This breaks direct products of finite stabilizers in PSL homology. A separate GAP regression checks the inverse type, inverse identities and a finite direct product; it runs in ordinary HAP tests without Julia. Existing Magma defaults are unchanged.
Validation against HAP 85917bc:
* GAP dispatcher and quotient-element regressions pass; GAPDoc parses and validates the complete tutorial.
* Tutorial installation succeeds in a new Julia environment using the public pinned revision and Julia 1.13.3.
* Full HAP integration suite: 416 checks pass, including rational/PSL complexes, Gaussian rank-three homology and higher-rank presentations.
* Exact Julia CI script: all 39 checks pass in one process (7m08s for the examples, with package loading measured separately).
* The provider's prior independent Magma/VMH comparisons agree for SL/PSL H₁ and scalar centres over Z (rank 3), Q(sqrt(-7)) (rank 2), and the Gaussian and Eisenstein integers (rank 3), including the centre of order three.
________________________________
You can view, comment on, or merge this pull request online at:
#169
Commit Summary
* ee7d34a<ee7d34a> Preserve the quotient element type when taking inverses
* 8395b97<8395b97> Update ArithmeticVoronoi provider and broaden Julia examples
* c21e5fc<c21e5fc> Document installation of the tested Julia provider revision
File Changes
(6 files<https://github.com/gap-packages/hap/pull/169/files>)
* M .github/scripts/voronoi-julia.jl<https://github.com/gap-packages/hap/pull/169/files#diff-98b0f73e177e2d0826c199760038631b3e252e6a615285e2b5c3aaa876435785> (77)
* M .github/workflows/CI.yml<https://github.com/gap-packages/hap/pull/169/files#diff-3ab46ee209a127470fce3c2cf106b1a1dbadbb929a4b5b13656a4bc4ce19c0b8> (12)
* M lib/FreeGmodules/wordOperations.gi<https://github.com/gap-packages/hap/pull/169/files#diff-9d97274a2ac774e5e6535255ba0be9f1e3d4258f679d7dade9229c15c7c619ba> (2)
* A tst/testextra/quotient-elements.tst<https://github.com/gap-packages/hap/pull/169/files#diff-79db1e7b2d11a8ba36b9f60ebf59f32f37ad6cc95229ce05acfbac0951cde3df> (16)
* M tst/testextra/voronoi-backends.tst<https://github.com/gap-packages/hap/pull/169/files#diff-022be519be80ad158720f213011db292c3e1dc9ca58d4658114828f1739c9527> (4)
* M tutorial/tutorialBianchi.xml<https://github.com/gap-packages/hap/pull/169/files#diff-4629b9f3b1d64af68744fc90b7bd30127328bbada7767131afa88ec3d9576551> (44)
Patch Links:
* https://github.com/gap-packages/hap/pull/169.patch
* https://github.com/gap-packages/hap/pull/169.diff
—
Reply to this email directly, view it on GitHub<#169?email_source=notifications&email_token=AHGCWP5KAAZBIENA3G3PKPD5XZAXDA5CNFSNUABEM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UF42TCOJVGA3DCNZUG2THEZLBONXW5KTTOVRHGY3SNFRGKZFFMV3GK3TUVRTG633UMVZF6Y3MNFRWW>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AHGCWP5GV7IDSN6BOWFP2TT5XZAXDAVCNFSNUABFKJSXA33TNF2G64TZHMYTMOBVGM4TCNJQHNEXG43VMU5TMMRVGEYTMMZXGU4KC5QC>.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS<https://github.com/notifications/mobile/ios/AHGCWPZ6CYFTYCTXSRXQHYL5XZAXDA5CNFSNUABEM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UF42TCOJVGA3DCNZUG2THEZLBONXW5KTTOVRHGY3SNFRGKZFFMV3GK3TUVJTG633UMVZF62LPOM> and Android<https://github.com/notifications/mobile/android/AHGCWP2YXWMCEHQXCR7M4ID5XZAXDA5CNFSNUABEM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UF42TCOJVGA3DCNZUG2THEZLBONXW5KTTOVRHGY3SNFRGKZFFMV3GK3TUVZTG633UMVZF6YLOMRZG62LE>. Download it today!
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ArithmeticVoronoi is now registered in General. Update the Julia provider from
dimpase/arithmetic_voronoitodimpase/ArithmeticVoronoi.jland exercise fresh GL, SL and PSL complexes and integral homology using Julia and HAP, without Magma, a C++ build or stored complexes.The Julia job runs seven record-based examples and a direct
hap_voronoi_complexcall in one process: quadratic GL/SL/PSL in rank two, GL/SL over the integers in rank three, Gaussian GL in rank three, and PSL(2,Z). It checks cell-orbit counts and H₁/H₂ where specified, and verifies that later computations preserve earlier complexes. The tutorial gives the shorter direct Julia calls, installation commands and the supported field/lattice scope. HAP's existing dispatcher already accepts the general records; its added test checks that a rational PSL request is passed through unchanged.The provider is pinned to public commit c6942b9. Its rational request and projective-complex API extends registered v0.1.0, so the tutorial explicitly installs that same revision. PSL quotients by the full scalar centre. Real-quadratic SL/PSL cell complexes, nonmaximal orders and nonfree lattices remain unsupported by this provider.
Also fix
InverseMutableforIsHapQuotientElement: it currently constructs aHapOppositeElement. This breaks direct products of finite stabilizers in PSL homology. A separate GAP regression checks the inverse type, inverse identities and a finite direct product; it runs in ordinary HAP tests without Julia. Existing Magma defaults are unchanged.Validation against HAP
85917bcb:CI is green, and complete GAPDoc composition, parsing and validation passed locally, too.