-
Notifications
You must be signed in to change notification settings - Fork 49
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
adding classical Reed-Muller Code #244
Conversation
This is great! Thank you! I will leave some superficial comments today, just on style or more obvious things. I will try to review the more sophisticated math content later |
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.
Some minor style comments, nothing particularly significant.
It needs tests.
Could you let me know what you used as a reference when implementing this?
While updating the changelog, I found something odd. It has **(breaking) and **(fix) appears in the main master branch. Please see to it.
I do not see anything, let me know if I have missed something.
I verified the results of R(2,3) and R(1,3) from wiki: They have the complete matrices As for the logic and how we generate these codes, here is a proper reference from Google Scholar. This has been very helpful as it explained them very simply. This might not be the reference of person who invented them, but it was very helpful for understanding. |
I will create a test file. I was looking where were Rep Code tests were defined, but as you pointed out, I will tests all the functions in a new test file. As for changelog, I see this breaking at some lines,. This is just a general question, not related to #244 though. |
on "breaking": The changelog is there to tell other people about what has changed so they do not need to look at the git history. Last night I released version 0.9.0 (a "breaking" release as defined in SemVer https://semver.org/ ) and so the changelog has these breaking changes clearly marked up so that users know if they need to change something about their use of the library. on references: Add that paper to the bibtex and reference it in the docstring. Also, due to a current limitation of how bibtex references are managed, add a mention of it in the list at the bottom of references.md on tests: yeah, it is possible that When you add the tests, mark in comments where the "correct" results in the comparisons are coming from. |
For RM (r,m) How the generator matrix is created is on Page 5. This is the main reference used. ECC Zoo and paper main cited paper used the notation RM(r,m). Some paper uses RM(m,r). I have tested the code against all available RM(r,m) constructions available in Generator Matrix Form. The order of some rows change like as in Gottesman, but the matrices match exactly. Agorithm used is not homegrown. Standard reference from Reference |
I mentioned this before but just a reminder: do not send a ton of small commits one after the other. That causes a ton of emails and a ton of expensive test runs on unfinished code. Do a push when you have something ready. |
Sorry for that. I did send the first commit will most files. Actually, I missed some changes. |
Improvements as follows:
Sorry, it took 3 commits instead of 1, but all suggested changes are completed, |
you do not need to make a single commit, but please make sure you are making a single push, not a ton of frequent pushes |
This looks really great, thank you for contributing it! I have one very minor comment, but otherwise this seems ready to merge. |
Thank you! I learned a lot as well! |
there was another thing I fixed in the last commit. You were calling |
Thank you for the addition! |
Prof. Stefan,
Adding Classical Reed-Muller Code, RM (r, m ). This code will be the second addition after
RepCode
which is a important subroutine in already implemented codes such asToric.
Reed Muller Code will have a similar objective, as classical reed muller codes can be used to create quantum codes.
While updating the changelog, I found something odd. It has **(breaking) and **(fix) appears in the main master branch. Please see to it.
Added Test Throws as well.
I tested locally as well.