Skip to content

Commit 092b008

Browse files
committed
introducing non-abelian groups via Hecke's small group with multiplication table
1 parent 2b8e81f commit 092b008

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

ext/QuantumCliffordHeckeExt/QuantumCliffordHeckeExt.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ using DocStringExtensions
55
import QuantumClifford, LinearAlgebra
66
import Hecke: Group, GroupElem, AdditiveGroup, AdditiveGroupElem,
77
GroupAlgebra, GroupAlgebraElem, FqFieldElem, representation_matrix, dim, base_ring,
8-
multiplication_table, coefficients, abelian_group, group_algebra
8+
multiplication_table, coefficients, abelian_group, group_algebra, small_group, direct_product
99
import Nemo
1010
import Nemo: characteristic, matrix_repr, GF, ZZ, lift
1111

ext/QuantumCliffordHeckeExt/lifted_product.jl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,17 @@ function two_block_group_algebra_codes(a::GroupAlgebraElem, b::GroupAlgebraElem)
150150
LPCode(A, B)
151151
end
152152

153+
function two_block_group_algebra_codes(a_shifts::Array{Int}, b_shifts::Array{Int}, sg1::Tuple{Int,Int}, sg2::Tuple{Int,Int})
154+
m, i = sg1
155+
l, i = sg2
156+
g1 = small_group(m, i)
157+
g2 = small_group(l, i)
158+
GA = group_algebra(GF(2), direct_product(g1, g2))
159+
a = sum(GA[n%dim(GA)+1] for n in a_shifts)
160+
b = sum(GA[n%dim(GA)+1] for n in b_shifts)
161+
two_block_group_algebra_codes(a, b)
162+
end
163+
153164
"""
154165
Generalized bicycle codes, which are a special case of 2GBA codes (and therefore of lifted product codes).
155166
Here the group is chosen as the cyclic group of order `l`,

0 commit comments

Comments
 (0)