Skip to content

Commit 4112a5f

Browse files
authored
Merge branch 'dev' into doctests
2 parents ca3b726 + b91bb92 commit 4112a5f

File tree

2 files changed

+66
-67
lines changed

2 files changed

+66
-67
lines changed

src/Quantum/product_codes.jl

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1197,16 +1197,15 @@ function CoprimeBivariateBicycleCode(a::ResElem, b::ResElem)
11971197

11981198
P = x * y
11991199
A = zero_matrix(F, deg_P, deg_P)
1200-
for ex in exponents(lift(a))
1201-
# println(ex)
1202-
power, _ = findmax(ex)
1203-
A += P^power
1200+
exps = findall(i -> !is_zero(i), collect(coefficients(lift(a)))) .- 1
1201+
for ex in exps
1202+
A += P^ex
12041203
end
12051204

12061205
B = zero_matrix(F, deg_P, deg_P)
1207-
for ex in exponents(lift(b))
1208-
power, _ = findmax(ex)
1209-
B += P^power
1206+
exps = findall(i -> !is_zero(i), collect(coefficients(lift(b)))) .- 1
1207+
for ex in exps
1208+
B += P^ex
12101209
end
12111210

12121211
return CSSCode(hcat(A, B), hcat(transpose(B), transpose(A)))

test/Quantum/product_codes_test.jl

Lines changed: 60 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -606,66 +606,66 @@
606606
@test_broken minimum_distance(S) == 8
607607
end
608608

609-
# @testset "CoprimeBivariateBicycleCode" begin
610-
# # coprime bivariate bicycle codes
611-
# S, P = polynomial_ring(Oscar.Nemo.Native.GF(2), :P)
612-
613-
# # Table 2 of https://arxiv.org/pdf/2408.10001v1
614-
# # [[30, 4, 6]]
615-
# l = 3
616-
# m = 5
617-
# R, _ = residue_ring(S, P^(l * m) - 1)
618-
# a = R(1 + P + P^2)
619-
# b = R(P + P^3 + P^8)
620-
# Q = CoprimeBivariateBicycleCode(a, b)
621-
# @test length(Q) == 30
622-
# @test dimension(Q) == 4
623-
# @test_broken minimum_distance(Q) == 6
624-
625-
# # [[42, 6, 6]]
626-
# l = 3
627-
# m = 7
628-
# R, _ = residue_ring(S, P^(l * m) - 1)
629-
# a = R(1 + P^2 + P^3)
630-
# b = R(P + P^3 + P^11)
631-
# Q = CoprimeBivariateBicycleCode(a, b)
632-
# @test length(Q) == 42
633-
# @test dimension(Q) == 6
634-
# @test_broken minimum_distance(Q) == 6
635-
636-
# # [[70, 6, 8]]
637-
# l = 5
638-
# m = 7
639-
# R, _ = residue_ring(S, P^(l * m) - 1)
640-
# a = R(1 + P + P^5)
641-
# b = R(1 + P + P^12)
642-
# Q = CoprimeBivariateBicycleCode(a, b)
643-
# @test length(Q) == 70
644-
# @test dimension(Q) == 6
645-
# @test_broken minimum_distance(Q) == 8
646-
647-
# # [[108, 12, 6]]
648-
# l = 2
649-
# m = 27
650-
# R, _ = residue_ring(S, P^(l * m) - 1)
651-
# a = R(P^2 + P^5 + P^44)
652-
# b = R(P^8 + P^14 + P^47)
653-
# Q = CoprimeBivariateBicycleCode(a, b)
654-
# @test length(Q) == 108
655-
# @test dimension(Q) == 12
656-
# @test_broken minimum_distance(Q) == 6
657-
658-
# # [[126, 12, 10]]
659-
# l = 7
660-
# m = 9
661-
# R, _ = residue_ring(S, P^(l * m) - 1)
662-
# a = R(1 + P + P^58)
663-
# b = R(P^3 + P^16 + P^44)
664-
# Q = CoprimeBivariateBicycleCode(a, b)
665-
# @test length(Q) == 126
666-
# @test dimension(Q) == 12
667-
# @test_broken minimum_distance(Q) == 10
668-
# end
609+
@testset "CoprimeBivariateBicycleCode" begin
610+
# coprime bivariate bicycle codes
611+
S, P = polynomial_ring(Oscar.Nemo.Native.GF(2), :P)
612+
613+
# Table 2 of https://arxiv.org/pdf/2408.10001v1
614+
# [[30, 4, 6]]
615+
l = 3
616+
m = 5
617+
R, _ = residue_ring(S, P^(l * m) - 1)
618+
a = R(1 + P + P^2)
619+
b = R(P + P^3 + P^8)
620+
Q = CoprimeBivariateBicycleCode(a, b)
621+
@test length(Q) == 30
622+
@test dimension(Q) == 4
623+
@test_broken minimum_distance(Q) == 6
624+
625+
# [[42, 6, 6]]
626+
l = 3
627+
m = 7
628+
R, _ = residue_ring(S, P^(l * m) - 1)
629+
a = R(1 + P^2 + P^3)
630+
b = R(P + P^3 + P^11)
631+
Q = CoprimeBivariateBicycleCode(a, b)
632+
@test length(Q) == 42
633+
@test dimension(Q) == 6
634+
@test_broken minimum_distance(Q) == 6
635+
636+
# [[70, 6, 8]]
637+
l = 5
638+
m = 7
639+
R, _ = residue_ring(S, P^(l * m) - 1)
640+
a = R(1 + P + P^5)
641+
b = R(1 + P + P^12)
642+
Q = CoprimeBivariateBicycleCode(a, b)
643+
@test length(Q) == 70
644+
@test dimension(Q) == 6
645+
@test_broken minimum_distance(Q) == 8
646+
647+
# [[108, 12, 6]]
648+
l = 2
649+
m = 27
650+
R, _ = residue_ring(S, P^(l * m) - 1)
651+
a = R(P^2 + P^5 + P^44)
652+
b = R(P^8 + P^14 + P^47)
653+
Q = CoprimeBivariateBicycleCode(a, b)
654+
@test length(Q) == 108
655+
@test dimension(Q) == 12
656+
@test_broken minimum_distance(Q) == 6
657+
658+
# [[126, 12, 10]]
659+
l = 7
660+
m = 9
661+
R, _ = residue_ring(S, P^(l * m) - 1)
662+
a = R(1 + P + P^58)
663+
b = R(P^3 + P^16 + P^44)
664+
Q = CoprimeBivariateBicycleCode(a, b)
665+
@test length(Q) == 126
666+
@test dimension(Q) == 12
667+
@test_broken minimum_distance(Q) == 10
668+
end
669669

670670
@testset "BiasTailoredLiftedProductCode" begin
671671
# [[882, 24, d ≤ 24]] from Appendix B of https://arxiv.org/pdf/2202.01702

0 commit comments

Comments
 (0)