Skip to content

Commit

Permalink
introducing non-abelian groups via Hecke's small group with multiplic…
Browse files Browse the repository at this point in the history
…ation table
  • Loading branch information
Fe-r-oz committed Oct 14, 2024
1 parent 2b8e81f commit 818eb0a
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 1 deletion.
11 changes: 11 additions & 0 deletions docs/src/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -487,3 +487,14 @@ @article{anderson2014fault
year={2014},
publisher={APS}
}

@article{lin2024quantum,
title={Quantum two-block group algebra codes},
author={Lin, Hsiang-Ku and Pryadko, Leonid P},
journal={Physical Review A},
volume={109},
number={2},
pages={022407},
year={2024},
publisher={APS}
}
2 changes: 1 addition & 1 deletion ext/QuantumCliffordHeckeExt/QuantumCliffordHeckeExt.jl
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ using DocStringExtensions
import QuantumClifford, LinearAlgebra
import Hecke: Group, GroupElem, AdditiveGroup, AdditiveGroupElem,
GroupAlgebra, GroupAlgebraElem, FqFieldElem, representation_matrix, dim, base_ring,
multiplication_table, coefficients, abelian_group, group_algebra
multiplication_table, coefficients, abelian_group, group_algebra, small_group, direct_product
import Nemo
import Nemo: characteristic, matrix_repr, GF, ZZ, lift

Expand Down
22 changes: 22 additions & 0 deletions ext/QuantumCliffordHeckeExt/lifted_product.jl
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,28 @@ function two_block_group_algebra_codes(a::GroupAlgebraElem, b::GroupAlgebraElem)
LPCode(A, B)
end

"""
[[48, 8, 6]] 2BGA code from Table 1 of [lin2024quantum](@cite) with dihedral group of
order `l = 12`.
```jldoctest
julia> c = two_block_group_algebra_codes([0, 10], [0, 8, 9, 4, 2, 5], (12, 4), (2, 1));
julia> code_n(c), code_k(c)
(48, 8)
```
"""
function two_block_group_algebra_codes(a_shifts::Array{Int}, b_shifts::Array{Int}, sg1::Tuple{Int,Int}, sg2::Tuple{Int,Int})
m, i = sg1
l, i = sg2
g1 = small_group(m, i)
g2 = small_group(l, i)
GA = group_algebra(GF(2), direct_product(g1, g2))
a = sum(GA[n%dim(GA)+1] for n in a_shifts)
b = sum(GA[n%dim(GA)+1] for n in b_shifts)
two_block_group_algebra_codes(a, b)
end

"""
Generalized bicycle codes, which are a special case of 2GBA codes (and therefore of lifted product codes).
Here the group is chosen as the cyclic group of order `l`,
Expand Down

0 comments on commit 818eb0a

Please sign in to comment.