-
Notifications
You must be signed in to change notification settings - Fork 50
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
[[2ᵐ - 1, 1, 3]]
quantum Reed-Muller code
#302
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #302 +/- ##
==========================================
- Coverage 82.85% 82.79% -0.06%
==========================================
Files 60 62 +2
Lines 3971 4010 +39
==========================================
+ Hits 3290 3320 +30
- Misses 681 690 +9 ☔ View full report in Codecov by Sentry. |
[[2ᵐ - 1, 1, 3]]
quantum Reed-Muller code
3ebf2d8
to
fcd3cb5
Compare
The PR is now ready for review, Thank you! |
…(the user can run out of memory if they want to)
…e permitted as separators -- this is kinda a bug)
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 looks like a great addition and pretty close to ready for merge (hopefully the test change I made did not break anything -- these were meant as stylistic changes mostly).
I think there is only one thing left to do. You showed that the belief propagation decoder seems to work well for this code. Let's add it to the list of codes that are actually tested with the belief propagation decoder.
@@ -28,7 +28,7 @@ | |||
@test code_n(QuantumReedMuller(m)) == 2^m - 1 | |||
@test code_k(QuantumReedMuller(m)) == 1 | |||
@test distance(QuantumReedMuller(m)) == 3 | |||
@test H == parity_checks(CSS(parity_checks_x(QuantumReedMuller(m)), parity_checks_z(QuantumReedMuller(m)))) | |||
@test H == stab_to_gf2(parity_checks(CSS(parity_checks_x(QuantumReedMuller(m)), parity_checks_z(QuantumReedMuller(m))))) |
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.
ah, good catch
julia> mem_errors = 0.001:0.005:0.1;
julia> codes = [QuantumReedMuller(3), QuantumReedMuller(4), QuantumReedMuller(5)];
julia> results = zeros(length(codes), length(mem_errors), 2);
julia> for (ic, c) in pairs(codes)
for (i,m) in pairs(mem_errors)
setup = ShorSyndromeECCSetup(m, 0)
decoder = BitFlipDecoder(c)
r = evaluate_decoder(decoder, setup, 1000)
results[ic,i,:] .= r
end
end
julia> make_decoder_figure(mem_errors, results, "QRM(3), QRM(4), QRM(5) code with a BitFlipDecoder decoder")
julia> for (ic, c) in pairs(codes)
for (i,m) in pairs(mem_errors)
setup = ShorSyndromeECCSetup(m, 0)
decoder = BeliefPropDecoder(c)
r = evaluate_decoder(decoder, setup, 1000)
results[ic,i,:] .= r
end
end
julia> make_decoder_figure(mem_errors, results, "QRM(3), QRM(4), QRM(5) code with a BeliefPropDecoder decoder") |
Thanks for polishing the PR. That is very much appreciated! |
Initial Results
goal: implement most things from the paper as part of testing. I am waiting for RecursiveReedMuller to be reviewed so that I can use it to built these codes.