#20938: Decoder for Reed Muller Codes
-------------------------------------+-------------------------------------
       Reporter:  panda314           |        Owner:
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-7.3
      Component:  coding theory      |   Resolution:
       Keywords:                     |    Merged in:
        Authors:  Parthasarathi      |    Reviewers:
  Panda                              |
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/dlucas/decoder_for_reed_muller_codes|  
86c1629afaa869dd2086b6dd569939a66e3e4ad4
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by panda314):

 What are ticket states? Is there a way to automate the merging with latest
 version?

 I will edit and apply the pep8 protocols..

 As far as i remember the reed solomon super code method is apllicable only
 for q-ary reed muller codes with order<field_size. It is applicable for
 binary reed muller code only if the order<=1. I guess i can allow for such
 binary reed muller codes.

 Yeah i will add the option for using a reed solomon decoder. I had
 arbitrarily picked Gao.

 Replying to [comment:3 dlucas]:
 > Hello,
 >
 > I pushed a new version of your branched merged with latest version
 (there was a conflict and I
 > allowed me to fix it myself).
 > I know this ticket was ready for review because you told me so by email,
 but would you please
 > use ticket states from now on? It makes the process smoother for
 everyone.
 >
 >
 > Here are my comments on reviewing your work:
 >
 > - a lot of lines are not in PEP8-compliance: for instance, you write
 `a=b` where it should be `a = b`. You can check the rules regarding
 whitespaces and operators
 [http://doc.sagemath.org/html/en/developer/coding_basics.html#python-code-
 style here].
 >
 > - There are some very long lines (95+ characters) in your file. See
 lines 1212-1215 for instance.
 > While I'm not adamant that the 80 characters rule should be followed
 everywhere (I tend to accept 85 characters), I think 95+ is too much.
 >
 > - In RSDecoder's constructor (line 1241), you copy-pasted the sentence
 illustrating your `TESTS` block from the class above. It should not
 mention Binary Reed-Muller code, but RM code, as it works for any RM code.
 >
 > - While I'm at it, you wrote ` if not isinstance(code,
 QAryReedMullerCode)`, but this works with any `q`, even `2`, doesn't it?
 Because if you try to build a RSDecoder with a binary RM code, it fails...
 >
 > - Same decoder: is there a reason to enforce the use of Gao decoder? I
 might be wrong,
 >  but I think  that as long as you manage to build your GRS code, you can
 use any decoder over it.
 >  Hence, I suggest to use the same kind of mechanism I used with
 `PuncturedCode`, `SubfieldSubcode`,
 >  `ExtendedCode` etc:
 >  allow the user to pass an instance of a decoder over the GRS code as
 input to RM code's decoder.
 >  Then use this decoder to perform decoding. This triggers some changes
 in your design: first, you
 >  have to implement a function to get the GRS code from a RM code,
 instead of computing it inplace
 >  in `decode_to_code`. I think it's nice to have such a feature anyway.
 >  Then, you have to add some input sanitization checks at construction
 time (which will ensure the
 >  decoder provided by the user is a decoder over the GRS code). You will
 also have to change
 >  `decoding_radius`, which now returns the result of `GRS's
 decoder.decoding_radius()`. And it also
 >  means `decoder_type` is now `{dynamic}`.
 >
 > I still need to read carefully your implementation of the majority vote
 decoder.
 > Otherwise, it looks quite good. Your documentation, especially, is well
 written and explains
 > very well to the user how each decoder works.
 >
 > Best,
 >
 > David
 >
 > ----
 > New commits:
 >
 
||[https://git.sagemath.org/sage.git/commit?id=b1642f8070adddf5d1a76e580b9b72faeea69794
 b1642f8]||{{{adding decoders for reed muller code}}}||
 >
 
||[https://git.sagemath.org/sage.git/commit?id=699b2e7496def5c155c53dbcc3b88a5c570631a3
 699b2e7]||{{{removing some unecessary imports}}}||
 >
 
||[https://git.sagemath.org/sage.git/commit?id=86c1629afaa869dd2086b6dd569939a66e3e4ad4
 86c1629]||{{{Updated to latest version and fixed conflict}}}||

--
Ticket URL: <https://trac.sagemath.org/ticket/20938#comment:4>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to