-
-
Notifications
You must be signed in to change notification settings - Fork 673
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 Prepare linear_code for inheritance #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.
Depends on #18376
Component: coding theory
Author: David Lucas, Johan Sebastian Rosenkilde Nielsen
Branch/Commit: eabe7e0
Reviewer: Johan Sebastian Rosenkilde Nielsen, David Lucas
Issue created by migration from https://trac.sagemath.org/ticket/18928