#11413: Decoding general linear codes with Groebner bases
-----------------------------+----------------------------------------------
   Reporter:  Niels          |          Owner:  T.b.a.                         
       Type:  enhancement    |         Status:  needs_work                     
   Priority:  minor          |      Milestone:  sage-4.7.1                     
  Component:  coding theory  |       Keywords:  general decoding groebner basis
Work_issues:                 |       Upstream:  N/A                            
   Reviewer:  Burcin Erocal  |         Author:  Niels Duif                     
     Merged:                 |   Dependencies:                                 
-----------------------------+----------------------------------------------
Changes (by burcin):

 * cc: Stanislav.Bulygin@…, g.r.pellikaan@… (removed)
 * cc: sbulygin (added)
  * reviewer:  => Burcin Erocal
  * status:  needs_review => needs_work


Comment:

 Thanks for the patch Niels. A little more work is needed to get this
 merged. Here are a few observations based on reading your code without any
 familiarity with the algorithm:

  * You can't have a comment after the output of a doctest. As the patchbot
 also noticed (click on the yellow dot at the issue header), this test
 fails.
  * The function `decode_BP()` doesn't have any doctests. You can find more
 information about how to write tests in the developer manual:
   http://sagemath.org/doc/developer/conventions.html#automated-testing
  * It would be good to include a reference to the paper in the docstring
 for `decode()`.
  * I don't see the advantage of assigning single variable names to
 `C.length()`, `C.dimension()`. This just makes the code unreadable since
 you have to look up what these variables mean.
  * There must be a more efficient way to create the Reed-Solomon matrix.
 You could at least store each `g^i` and compute `(g^i)^j` in the inner
 loop.
  * which brings me to the question, did you profile this function at all?
 It is entirely possible that GB computation is not the bottleneck and more
 time is spent elsewhere.
  * the `var()` function creates symbolic variables. You should create the
 polynomial ring up front and use the generators of that for all the
 computations. This would eliminate conversion between symbolic objects and
 Singular polynomials and make arithmetic faster.
  * the first `if` statement in `linear_code.py` should be changed to `if
 algorithm in ["syndrome", ...]`. It looks like the second `if` statement
 is really an `else`. The error message should be changed to include all
 implemented algorithms.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11413#comment:2>
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to