Skip to content

Commit 5b44b1c

Browse files
authored
Generalized Toric code on twisted tori via Oscar's Laurent polynomials (#574)
* Generalized Toric Code * more tests * improve documentation * test invariant properties (row and column weights) of the [[144,12,12]] Generalized Toric Code * add changelog
1 parent cd76712 commit 5b44b1c

File tree

9 files changed

+818
-9
lines changed

9 files changed

+818
-9
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
## v0.10.1-dev
99

10+
- The `GeneralizedToricCode` on twisted tori via `Oscar`'s Laurent polynomials is now implemented in the ECC submodule.
1011
- The `HomologicalProductCode` and `DoubleHomologicalProductCode` are now implemented via `Oscar`'s homological algebra in the ECC submodule.
1112
- Adapt.jl can now be used to convert various types to GPU-backed storage.
1213
- The `GeneralizedBicycleCode` and `ExtendedGeneralizedBicycleCode` are now implemented via `Hecke`'s polynomial ring in the ECC submodule.

docs/src/references.bib

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,3 +1056,27 @@ @article{Campbell_2019
10561056
year={2019},
10571057
month=feb, pages={025006}
10581058
}
1059+
1060+
@misc{liang2025generalizedtoriccodestwisted,
1061+
title={Generalized toric codes on twisted tori for quantum error correction},
1062+
author={Zijian Liang and Ke Liu and Hao Song and Yu-An Chen},
1063+
year={2025},
1064+
eprint={2503.03827},
1065+
archivePrefix={arXiv},
1066+
primaryClass={quant-ph},
1067+
url={https://arxiv.org/abs/2503.03827},
1068+
}
1069+
1070+
@article{Liang_2024,
1071+
title={Extracting Topological Orders of Generalized Pauli Stabilizer Codes in Two Dimensions},
1072+
volume={5},
1073+
ISSN={2691-3399},
1074+
url={http://dx.doi.org/10.1103/PRXQuantum.5.030328},
1075+
DOI={10.1103/prxquantum.5.030328},
1076+
number={3},
1077+
journal={PRX Quantum},
1078+
publisher={American Physical Society (APS)},
1079+
author={Liang, Zijian and Xu, Yijia and Iosue, Joseph T. and Chen, Yu-An},
1080+
year={2024},
1081+
month=aug
1082+
}

docs/src/references.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ For quantum code construction routines:
6969
- [Quintavalle_2021](@cite)
7070
- [xu2024fastparallelizablelogicalcomputation](@cite)
7171
- [bravyi2013homologicalproductcodes](@cite)
72+
- [liang2025generalizedtoriccodestwisted](@cite)
7273

7374
For classical code construction routines:
7475
- [muller1954application](@cite)

ext/QuantumCliffordOscarExt/QuantumCliffordOscarExt.jl

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,35 @@ import QuantumClifford: Stabilizer
99
import Nemo
1010
import Nemo: FqFieldElem
1111
import Hecke: group_algebra, GF, abelian_group, gens, quo, one, GroupAlgebra,
12-
GroupAlgebraElem, direct_product, sub, ZZ, lift
12+
GroupAlgebraElem, direct_product, sub, ZZ, lift, polynomial_ring
1313
import Oscar
1414
import Oscar: free_group, small_group_identification, describe, order, FPGroupElem, FPGroup,
1515
BasicGAPGroupElem, DirectProductGroup, cyclic_group, free_module, hom, transpose, tensor_product,
1616
chain_complex, total_complex, map, summands, MatElem, matrix, nrows, ncols, kernel, dim, range, image,
1717
base_ring, ComplexOfMorphisms, coefficients, zero_matrix, hcat, circshift, size, zeros, enumerate,
18-
kronecker_product, FqMatrix, identity_matrix, iszero, FqPolyRingElem
18+
kronecker_product, FqMatrix, identity_matrix, iszero, FqPolyRingElem, laurent_polynomial_ring,
19+
hnf_with_transform, ideal, intersect, ==, is_coprime, quo, groebner_basis, length, FqMPolyRingElem,
20+
first, length
1921
import Oscar.Generic.MatSpaceElem
22+
import Oscar.Generic.DirectSumModule
23+
import Oscar.Generic.LaurentMPolyWrap
24+
import Oscar.Generic.exponent_vectors
25+
import Oscar.IdealGens
2026

2127
import QuantumClifford.ECC: two_block_group_algebra_codes, twobga_from_direct_product, twobga_from_fp_group,
22-
boundary_maps
28+
boundary_maps, max_xy_exponents
2329

2430
import QECCore: AbstractECC, CSS, RepCode, AbstractCSSCode,
2531
hgp, code_k, code_n, code_s, distance, parity_matrix_x, parity_matrix_z, parity_matrix_xz, parity_matrix,
2632
metacheck_matrix_x, metacheck_matrix_z, metacheck_matrix
2733

2834
# exported from extension so that Documenter.jl sees them when autogenerating API lists
2935
export twobga_from_direct_product, twobga_from_fp_group, DDimensionalSurfaceCode, DDimensionalToricCode, boundary_maps,
30-
HomologicalProductCode, DoubleHomologicalProductCode
36+
HomologicalProductCode, DoubleHomologicalProductCode, GeneralizedToricCode
3137

3238
include("types.jl")
3339
include("direct_product.jl")
40+
include("generalized_toric.jl")
3441
include("group_presentation.jl")
3542
include("d_dimensional_codes.jl")
3643
include("homological_product_codes.jl")

0 commit comments

Comments
 (0)