Feature: Added SHGP and SHYPS Subsystem Quantum Codes#710
Feature: Added SHGP and SHYPS Subsystem Quantum Codes#710the-punisher-29 wants to merge 9 commits into
Conversation
…rides, and SHYPS - Fixed Nemo.kernel API (transpose convention, row-based output) - Added gauge_generators and code_g interface for BBS and SHP - Added correct code_k overrides (BBS: rank(A), SHP: nullity product) - Improved docstrings with citations and ECC Zoo links - Added bibtex entries for bravyi2011, quintavalle2021, malcolm2025 - Expanded test suite with Simplex, BBS, SHP, and SHYPS(2,3) tests
Benchmark Results (Julia v1)Time benchmarks
Memory benchmarks
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #710 +/- ##
==========================================
- Coverage 73.82% 72.99% -0.84%
==========================================
Files 111 115 +4
Lines 7725 8053 +328
==========================================
+ Hits 5703 5878 +175
- Misses 2022 2175 +153 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Fe-r-oz
left a comment
There was a problem hiding this comment.
Thanks, @the-punisher-29! I have not looked into the codes yet, but I had a few quick comments on the GF(2) nullspace method. I had implemented and tested this earlier, anticipating it could be useful down the line
635f5eb to
00deb6b
Compare
- Removed unnecessary docstrings on internal helper methods - Fixed SHYPS docstring: gauge weight bound is r+1 (O(log n)), not 3 - Added comprehensive tests: stabilizer-gauge commutativity, weight bounds, concrete code_g values - Fixed gauge weight calculation in tests, remove unused Hamming import
00deb6b to
93d8b07
Compare
I am glad you found the document useful. I would recommend looking into more recent work by the author as well, for further context on related developments in quantum low-density parity check codes. I am happy to help further review this PR pretty soon, but please do not hesitate to request review from other members from the ECC Team if convenient |
Resolves Issue: #480
This PR adds support for Subsystem Quantum Codes in
QuantumClifford.jl— specifically Bravyi-Bacon-Shor (BBS), Subsystem Hypergraph Product (SHGP), and Subsystem Hypergraph Product Simplex (SHYPS).As discussed with @Krastanov and @Fe-r-oz in #480, I've intentionally skipped the generalized
SubsystemCodeTableaupath for these families. They have exact closed-form geometry, so building them natively avoids unnecessary solver overhead and produces tighter internal structure.Architecture & Design Decisions
1. New Classical Seed
Added
Simplex(r)tolib/QECCore, structured as the dual of the Hamming code.2. Direct Analytical Framework
BravyiBaconShor,SubsystemHypergraphProduct, andSubsystemHypergraphProductSimplexall subtypeAbstractCSSCodedirectly. Each holdsTableauobjects forgauge_generatorsandStabilizerobjects forparity_checks. Subsystem geometry is computed via GF(2) matrix operations (Nemo.kernelfor nullspaces);3. Subsystem Ecosystem Integration
Added
gauge_generators(c)andcode_g(c)overrides to theECC.jllayer for generic subsystem support._stabilizer_rank()connects the rank bounds between stabilizers and gauges.Verification & Test Suite
Tests are in
test_ecc_subsystem.jl:@Fe-r-oz ,the
BScThesisPhysicsdoc you recommended was genuinely useful, especially for the final round of debugging. Looking forward to your thoughts.Note:I have removed the BBS Code from here,and have raise a separate PR for the same