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

Reply via email to