-
-
Notifications
You must be signed in to change notification settings - Fork 480
Sage Coding Roadmap
See also the page on https://wiki.sagemath.org/Coding_Theory.
This page is meant to provide an overview of developments for Coding Theory in Sage. This includes existing trac tickets, with or without code, as well as wish-lists or long-term goals from interested developers.
Feel free to edit this page by adding trac tickets, more wish-lists, and add your names for topics you contributed to or would be interested in contributing to (this helps knowing who does what and who to contact for further collaborations).
The following is some wishes:
- Non-linear codes
- Support multilinear codes (i.e. a code over
GF(q^m)
which is linear overGF(q)
). Examples include Interleaved linear codes, Folded RS codes and Multiplicity codes. - Support codes over rings (see #20387 for admitting that we currently don't support this).
- Support multilinear codes (i.e. a code over
- Explicit class for binary codes, possibly building on the current Cython implementation.
Remove all binary code-specific methods from
AbstractLinearCode
.
- Reed--Muller codes
- Decoding algorithm for low-order q-ary or binary Reed-Muller codes #20938
- Goppa codes would be extremely nice to have.
- AG codes
To support Algebraic Geomety codes in Sage, we need the following building blocks:
- Representation of algebraic curves. Done:
Curve
andAffineSpace
/ProjectiveSpace
. - Representation of divisors. Done: see
Curve.divisor
. - Computation of Riemann-Roch space bases #22982
- Representation of algebraic curves. Done:
- Open a ticket for your favourite code family and add it here.
- Information set decoder #20138
- Non-guava implementation for
covering_radius
#19913 - Bounds and optimal codes: Not very easy, no support yet. What to do with http://codetables.de?
- Representing automorphisms of codes.
Sage is reasonably good at computing automorphisms of codes with the methods
automorphisms_group_gens
,permutation_automorphism_group
, and the related methodcanonical_representative
. These use an efficient C implementation written by Thomas Feuler, based on his PhD thesis. However, the representations of such automorphisms is very lacking. For instance, the "groups" returned by the above methods are simply a list of generators, with no group methods attached to them. And one cannot take an element of this group and apply it to e.g. a codeword or a whole code. Using a nice, Sage-wide algebraic representation would also make it much easier to implement the automorphism groups of special families for which it is known, e.g. Reed-Solomon codes. Insage.schemes
there has been some recent development in automorphism groups of curves. Perhaps this can serve as a base? - TestSet decoding algorithm #21339
- Benchmarking tool for codes #20526, #20684, #20786. After discussions at SageDays75, Miguel Marco and Johan Rosenkilde started the stand-alone Python project Bleachermark directly inspired by the work in these tickets. That project is meant to supersede these tickets.
- Improve coding theory thematic tutorial on writing new structures #21361
- Improve the documentation for
HammingCode
#21305
- Link to advanced fast polynomial arithmetic library functions such as multi-point evaluation and Lagrange interpolation.
- Link to fast
GF(2)[x]
library (currently used is NTL genericGF(p)[x]
). - Ring extension support (related to e.g. subfield subcodes) #21413
- Submodules of
(ZZ/nZZ)^r
(prerequisite for codes overZZ/nZZ
) #6452
- Clean
LinearCodeFromCheckMatrix
#19975
Arpit Merchant was the student for this project, with David Lucas and Johan Rosenkilde as mentors.
Readme | Version | Citation | Authors | Contributing | Code of Conduct | Copyright ©️ 2023 Sage Developer Community