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 092b008
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
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
11 changes: 11 additions & 0 deletions ext/QuantumCliffordHeckeExt/lifted_product.jl
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,17 @@ function two_block_group_algebra_codes(a::GroupAlgebraElem, b::GroupAlgebraElem)
LPCode(A, B)
end

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 092b008

Please sign in to comment.