-
Notifications
You must be signed in to change notification settings - Fork 44
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
Bug fix to the parity_checks(ReedMuller(r, m))
along with RecursiveReedMuller
code for cross-reference
#277
base: master
Are you sure you want to change the base?
Conversation
Benchmark ResultJudge resultBenchmark Report for /home/runner/work/QuantumClifford.jl/QuantumClifford.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/QuantumClifford.jl/QuantumClifford.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/QuantumClifford.jl/QuantumClifford.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
Architecture: x86_64
Benchmark ResultJudge resultBenchmark Report for /home/runner/work/QuantumClifford.jl/QuantumClifford.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/QuantumClifford.jl/QuantumClifford.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/QuantumClifford.jl/QuantumClifford.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
Architecture: x86_64
Benchmark ResultJudge resultBenchmark Report for /home/runner/work/QuantumClifford.jl/QuantumClifford.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/QuantumClifford.jl/QuantumClifford.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #277 +/- ##
==========================================
+ Coverage 83.01% 83.09% +0.08%
==========================================
Files 61 62 +1
Lines 4033 4065 +32
==========================================
+ Hits 3348 3378 +30
- Misses 685 687 +2 ☔ View full report in Codecov by Sentry. |
Please review so that we can apply the fix as soon as feasible! I have used reduced row echelon form test to compare all the cases of RecursiveReedMuller with ReedMuller,
The generator for RecursiveReedMuller is widely used as subroutine for construction of new quantum codes. Therefore, added this as well. |
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 pretty helpful set of additional implementation for cross reference. I did a quick first round of review -- there are some stylistic requests for improvement and a couple of questions on definitions and correctness checks.
I probably will be able to merge this shortly if I do not find any new issues besides what I just mentioned. Could you update the changelog so that it is ready for merge? Mention there is a bug fix to the parameter_checks matrix (if this was a public type this would have been a breaking change, so it is good to document these clearly) |
This was changelog of 244 "Implemented the classical Reed-Muller code" I think RM was not exported, so I am not sure about Public Type/Breaking change part. So, maybe Please feel free to update CHANGELOG accordingly. |
Upcoming PR discussionGood news, @Krastanov :) Sometime ago, I discussed a paper about code conversion between Quantum Reed Muller code and Steane Code. Turns out that the Quantum Reed Muller is really simple! Now, I understand what ECCZOO is talking about in their QRM page! There is a lot of rigorous testing that I am planning to do with these quantum codes and I think the entire paper can be implemented as upcoming PR. The parameters of the QRM are: [[n = 2^m − 1, k = 1, d = 3]]. Now, this are CSS Quantum Reed Muller codes! Please checkout the two examples! Example of the popular 15 qubit QRM code that is used in magic state distillation: From visual inspection, we can see it as two copies to steane code. Steanecode is QRM(3)
More exciting is this fact that QuantumReedMuller(3) is Steane Code. The proof is as follows:
I am very excited to work on this as soon as the RecursivePR is finished! |
Hello @Krastanov, the quantum CSS Reed Muller code PR is ready but I am waiting for this one to be finished so that I can use the constructors introuced in this PR in next one! Please review this one so I can polish the next quantum code PR for review 😬 I am excited to submit quantum codes from classical codes finally! |
parity_checks(ReedMuller(r, m))
along with RecursiveReedMuller
code for cross-reference
Hello @Krastanov, just a small reminder that the current implementation of Thank you for the valuable feedback that helped improved the PR significantly. In this PR, I have made sure to test two different representations (binomial polynomial rep vs recursive) for cross-reference and added several correctness tests and provided complete documentation. |
I tried to rename the branch to I was following your comments that "its good to document changes clearly" so I thought let's rename the branch. 🙄 |
Removing
|
Back then, I didn't had access to this book Fundamentals of Error Correcting codes by Huffman, that's why I skipped some details about Reed-Muller codes as now I am reading it now.
I have polished this PR #244 and added more details from the literature. This provides RM a complete introduction! Tested for all the cases.
@Krastanov Kindly please handle this small PR before reviewing ShortenedMDS! Thanks!