#18928: A new structure for Reed-Solomon codes in Sage
-------------------------+-------------------------------------------------
Reporter: | Owner:
dlucas | Status: needs_review
Type: | Milestone: sage-6.9
enhancement | Resolution:
Priority: major | Merged in:
Component: | Reviewers:
coding theory | Work issues:
Keywords: | Commit:
Authors: David | dc470becd64eeba63d64f328de5152c7aed83403
Lucas | Stopgaps:
Report Upstream: N/A |
Branch: |
u/dlucas/grs |
Dependencies: |
#18376, #18813 |
-------------------------+-------------------------------------------------
Old description:
> This ticket proposes a new implementation for Generalized Reed-Solomon
> codes in Sage.
> It contains:
>
> - a new code class, `GeneralizedReedSolomonCode`, which wraps Reed-
> Solomon code in the object-oriented structure introduced in #18099,
> - a first new encoder, `GRSEvaluationVectorEncoder`, which can encode
> words from a message space which is a vector space, and
> - a second new encoder, `GRSEvaluationPolynomialEncoder`, which can
> encode words from a message space which is a polynomial ring.
>
> This new implementation properly sets GRS codes in the object-oriented
> structure, which allows the user to use specific methods and algorithms
> to encode (and later decode) words. It also introduces the notion of
> generalized Reed-Solomon codes, which means that the user can now set a
> list of column multipliers for the code.
>
> It also allows to compute parity-check matrix and generator matrix from
> the parameters of the code, through dedicated methods.
>
> As GRS codes are now objects in Sage, it is also possible to ask a GRS
> code for its specific parameters (like the list of its evaluation points,
> or its column multipliers).
>
> The two provided encoders follow the structure introduced in #18376.
>
> This ticket also removes the old `ReedSolomonCode` method from the global
> namespace as it was deprecated more than a year ago (see #15445).
>
> More details about GRS codes can be found in the docstring of the
> provided code.
New description:
This ticket proposes a new implementation for Generalized Reed-Solomon
codes in Sage.
It contains:
- a new code class, `GeneralizedReedSolomonCode`, which wraps Reed-Solomon
code in the object-oriented structure introduced in #18099,
- a first new encoder, `GRSEvaluationVectorEncoder`, which can encode
words from a message space which is a vector space, and
- a second new encoder, `GRSEvaluationPolynomialEncoder`, which can encode
words from a message space which is a polynomial ring.
This new implementation properly sets GRS codes in the object-oriented
structure, which allows the user to use specific methods and algorithms to
encode (and later decode) words. It also introduces the notion of
generalized Reed-Solomon codes, which means that the user can now set a
list of column multipliers for the code.
It also allows to compute parity-check matrix and generator matrix from
the parameters of the code, through dedicated methods. It allows super-
fast computation of certain - usually exponential - properties, such as
weight distribution.
As GRS codes are now objects in Sage, it is also possible to ask a GRS
code for its specific parameters (like the list of its evaluation points,
or its column multipliers).
The two provided encoders follow the structure introduced in #18376.
This ticket also removes the old `ReedSolomonCode` method from the global
namespace as it was deprecated more than a year ago (see #15445).
More details about GRS codes can be found in the docstring of the provided
code.
--
Comment (by jsrn):
This is not a review: just a comment. I slightly modified the description
to underline the awesomeness of your latest commit ("overwrote a few
methods"). Perhaps you could also add to the docstring of those
overwritten methods that they are fast for this code (since a user would
otherwise assume they are slow)?
Johan
--
Ticket URL: <http://trac.sagemath.org/ticket/18928#comment:7>
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 http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.