This repository was archived by the owner on Jan 31, 2023. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 2
SageCodingRoadMap
Matthias Koeppe edited this page Nov 14, 2022
·
5 revisions
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).
- Linear codes and category framework #18150
- Deprecate support for finite rings in
LinearCode
#20387
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.
- Advanced skew polynomial methods and optimised implementation for finite field base rings #21088, #21259, #21262, #21264. Perhaps these should be closed as wont-fix: Xavier Caruso has expressed a wish to rewrite all this.
- Gabidulin codes #20970
- Abstract class for rank-metric codes #21226