#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.