-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
examples of generalized bicycle codes #389
examples of generalized bicycle codes #389
Conversation
f697921
to
0906620
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #389 +/- ##
==========================================
+ Coverage 83.00% 83.07% +0.06%
==========================================
Files 71 71
Lines 4560 4560
==========================================
+ Hits 3785 3788 +3
+ Misses 775 772 -3 ☔ View full report in Codecov by Sentry. |
This is good to go from my POV @Krastanov P.S. The failing tests are unrelated to this PR. |
I think there is already a |
8a308a4
to
b0fbb53
Compare
b0fbb53
to
60016df
Compare
Oh... My bad. I knew this fact, but somehow overlooked it because working on two separate things simultaneously. Rebased this PR fixing the typo and verifying the test cases from aforementioned paper. Thanks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a great addition, thank you! I am a bit confused about where it is placed. Would it not make more sense in generalized_bicycle_codes
?
test/test_ecc_2bga.jl
Outdated
@testitem "ECC 2BGA" begin | ||
using Hecke | ||
using QuantumClifford.ECC: generalized_bicycle_codes, code_k, code_n | ||
|
||
# codes taken from Table 1 of [lin2024quantum](@cite) | ||
@test code_n(generalized_bicycle_codes([0 , 15, 16, 18], [0 , 1, 24, 27], 35)) == 70 | ||
@test code_k(generalized_bicycle_codes([0 , 15, 16, 18], [0 , 1, 24, 27], 35)) == 8 | ||
@test code_n(generalized_bicycle_codes([0 , 1, 3, 7], [0 , 1, 12, 19], 27)) == 54 | ||
@test code_k(generalized_bicycle_codes([0 , 1, 3, 7], [0 , 1, 12, 19], 27)) == 6 | ||
@test code_n(generalized_bicycle_codes([0 , 10, 6, 13], [0 , 25, 16, 12], 30)) == 60 | ||
@test code_k(generalized_bicycle_codes([0 , 10, 6, 13], [0 , 25, 16, 12], 30)) == 6 | ||
@test code_n(generalized_bicycle_codes([0 , 9, 28, 31], [0 , 1, 21, 34], 36)) == 72 | ||
@test code_k(generalized_bicycle_codes([0 , 9, 28, 31], [0 , 1, 21, 34], 36)) == 8 | ||
@test code_n(generalized_bicycle_codes([0 , 9, 28, 13], [0 , 1, 21, 34], 36)) == 72 | ||
@test code_k(generalized_bicycle_codes([0 , 9, 28, 13], [0 , 1, 3, 22], 36)) == 10 | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am a bit confused: these are "generalized_bicycle_codes". Shouldn't the test file be called "test_ecc_generalized_bicycle_codes.jl"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You are right.
[[70, 8, 10]] 2BGA code from Table 1 of [lin2024quantum](@cite) with cyclic group of | ||
order `l = 35`. | ||
|
||
```jldoctest | ||
julia> l = 35; | ||
|
||
julia> c1 = generalized_bicycle_codes([0, 15, 16, 18], [0, 1, 24, 27], l); | ||
|
||
julia> code_n(c1), code_k(c1) | ||
(70, 8) | ||
``` | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems like a docstring that should go in the function generalized_bicycle_codes
, not in two_block_group_algebra_codes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You are right. Let's put in docstring of BG codes.
In addition, GB codes are a subset of only abelian 2BGA codes. 2BGA codes are formed by a general, finite group. Also, this test is rather relaxed in a sense that this is not a test for 2BGA codes, only abelian version of 2BGA and also because the original paper used small groups to create 2BGA codes which is done in #406, and this is more like a subset test for GB codes.
e3b4964
to
e39689c
Compare
Thank you! I think I have now merged most of the batch of examples you have provided. Much appreciated! I will continue with reviews later in the week. |
This PR aims to add tests for 2BGA codes from Reference. Table 1: https://arxiv.org/pdf/2306.16400. I have verified all the appropriate code instance using this new method as well. I have created a test file for this as well.
@royess, just pinging you for reference.
Also, there was a typo, 2GBA was used, instead of 2BGA, fixed this as well.