-
Notifications
You must be signed in to change notification settings - Fork 65
Description
@Fe-r-oz , I see you have contributed quite a few different classes of classical ECCs. E.g. in:
[2ᵐ + 1 - 3, k, 2ᵐ ⁺ ¹ - 3 - k]shortenedMDS code #254- Convolutional code #256
- Adding classical Bose–Chaudhuri–Hocquenghem code to ECC module #263
- Goppa code #266
These are quite valuable contributions, but it will take me some time to review them. My chief difficulty in reviewing them would be figuring out some selfconsistency checks. What I mean by this is that the following would NOT be a good way to review:
I read the papers, then read your code and check whether your code follows the algorithms in the papers. You have already basically done the same, and me redoing it is not very valuable because then the contribution and the review would be susceptible to the exact same type of mistakes. Rereading some code is simply not a good way to review.
Instead, we need to figure out some self-correcting method. There are a few such self-correcting checks done for the quantum codes for instance. Checking that they have valid tableaux, checking ranks, verifying that encoding circuits work as expected, etc.
In order to merge all of these classical code contributions of yours, we need to figure out similar self-correctness checks. I do not have a lot of good ideas for that right now (hence this issue, so we can discuss), but a couple of options include:
- checking the rank of the binary matrices and verifying we do not have redundant rows
- checking that each column of a binary matrix has at least one non-zero entry
- finding some code database and comparing the binary matrices generated here to the matrices from the database (probably one of the most valuable options, although it also has potential complications if the database uses different bit order conventions)
- similarly to the database option, finding another piece of software that also generates these codes and running comparisons between the two
Do you know of such databases or alternative pieces of software?