#18846: Meta-ticket: enhancement of the coding theory part of Sage
---------------------------------+------------------------
Reporter: dlucas | Owner:
Type: task | Status: new
Priority: major | Milestone: sage-7.3
Component: coding theory | Resolution:
Keywords: | Merged in:
Authors: | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
Dependencies: | Stopgaps:
---------------------------------+------------------------
Description changed by dlucas:
Old description:
> This ticket summarizes the work done in the
> [https://bitbucket.org/lucasdavid/sage_coding_project/wiki/Home ACTIS
> project].
>
> The main goal of this project is to enhance the decoding part of Sage,
> doing the following:
> - propose a new API to manage code families
> - propose a new API to manage multiple encoders for a given code family
> (i.e multiple message spaces)
> - propose a new API to manage multiple decoding algorithms for a given
> code family
> - implement numerous code families, alongside their encoders and decoders
>
> The following tables gives a quick access to all tickets related to the
> project:
>
> - The first table contains references to every ticket adding major
> features, like new code families, decoders...
> - The second table contains references to every small ticket: bug fixes,
> minor quality of life upgrades, etc
> - The last table contains references to every ticket which has been
> positive reviewed and/or closed.
>
> The `Nature` column gives the "type" of the ticket :
> - `Structure` means it's a structural ticket, which does not require any
> knowledge in coding theory. It will be for tickets which introduce new
> mechanisms in the API.
> - `Cleanup` means it's a ticket that refreshes old existing code of the
> coding library, and/or documentation. It does not require any knowledge
> in coding theory.
> - `Content` means it adds new mathematical content (code families,
> decoding algorithms, ...) to Sage. Some knowledge on the topic might be
> useful for these tickets.
> - `Documentation` means it's a ticket which adds some new documentation
> in the library. It does not require any particular knowledge in coding
> library, nor being familiar with our code.
> - `Enhancement` means it's a ticket which makes some existing code
> better, either in matter of speed or design.
>
> = Major features =
>
> || Topic || Ticket number || Nature ||
> || Linear codes and category framework || #18150|| Structure||
> || A class for subfield subcodes || #20039|| Content||
> || A class for cyclic codes || #20100|| Content||
> || Information set decoder || #20138|| Content||
> || A class for BCH codes || #20335|| Content||
> || Benchmarking tool for codes || #20526|| Content||
> || A class for Golay codes || #20787|| Content||
> || A class for a generic systematic encoder || #20835|| Content||
> || Base classes for Reed-Muller codes || #20705|| Content||
>
> = Small tickets =
>
> || Topic || Ticket number || Nature ||
> || Non-guava impl. for `covering_radius` || #19913|| Cleanup||
> || Clean `LinearCodeFromCheckMatrix` || #19975|| Cleanup||
> || Stop and restart features for benchmarks || #20684|| Content||
> || Multithread option for benchmarks || #20786|| Content||
> || Document decoder types || #20001|| Documentation||
> || Improve `grs.py`'s documentation || #20849|| Documentation||
> || `encode` as application to `Encoder` || #20087|| Enhancement||
> || Method for the rate of a linear code || #20342|| Enhancement||
> || Rework index and catalogs for sage.coding || #20908|| Enhancement||
> || `AbstractLinearCode.minimum_distance` fails with GAP message for
> large fields || #20233|| Bug||
> || `decoder_type` only works on class instances || #20443|| Bug||
> || GRS polynomial encoder fails if polynomial to encode is not in `x` ||
> #20744|| Bug||
> || Deprecate support for finite rings in `LinearCode` || #20387||
> Defect||
> || Syndrome decoder for a linear code sometimes sets wrong decoder type
> || #20898|| Defect||
> || `AbstractLinearCode` should throw sensible error messages on printing
> || #20899|| Defect||
> || `LinearCode.basis()` should be an immutable Sequence || #19251||
> Defect||
>
> = Old tickets =
>
> || Topic || Ticket number || Nature ||
> || Structure for code families || #18099|| Structure||
> || Encoding structure || #18376|| Structure||
> || Decoding structure || #18813|| Structure||
> || Better names in coding || #17973|| Cleanup||
> || Improve `__contains__` method || #18607|| Cleanup||
> || Clean imports || #19315|| Cleanup||
> || Clean `dual_code`, `__eq__` and removed debug traces || #19492||
> Cleanup||
> || Generic impl. for `__ne__` || #19743|| Cleanup||
> || Clean-up index of modules || #19907|| Cleanup||
> || Clean `AbstractLinearCode.zero` || #20113|| Cleanup||
> || Better checks in GRS decoders || #20177|| Cleanup||
> || Remove some deprecation warnings || #20685|| Cleanup||
> || Experimenting on codes || #18269|| Structure & Content||
> || GRS codes and dedicated encoders || #18928|| Content||
> || New decoders for GRS codes || #19653|| Content||
> || Guruswami-Sudan list-decoding || #19666|| Content||
> || Lee O'Sullivan for Guruswami-Sudan || #19722|| Content||
> || Punctured code + dedicated encoder and decoder || #19422|| Content||
> || Q-ary symmetric channel || #19511|| Content||
> || Syndrome decoder is a nearest neighbor decoder || #19623|| Content||
> || A proper class for Hamming codes || #19930|| Content||
> || A class for extended codes || #20124|| Content||
> || A class for non-prime fields embedding || #20284|| Content||
> || API thematic tutorial || #19745|| Documentation||
> || Introductory thematic tutorial || #19897|| Documentation||
> || `LinearCode(C)` for some code `C` should construct a code || #20198||
> Enhancement||
> || Rewrite module doc of `LinearCode` || #20232|| Enhancement||
> || Improve efficiency of nearest neighbor decoder || #20201||
> Enhancement||
> || Automatically register generic encoders/decoders in any code family ||
> #20840|| Enhancement||
> || Fix LinearCode.wtdist_gap method || #20565|| Defect||
New description:
This ticket summarizes the work done in the
[https://bitbucket.org/lucasdavid/sage_coding_project/wiki/Home ACTIS
project].
The main goal of this project is to enhance the decoding part of Sage,
doing the following:
- propose a new API to manage code families
- propose a new API to manage multiple encoders for a given code family
(i.e multiple message spaces)
- propose a new API to manage multiple decoding algorithms for a given
code family
- implement numerous code families, alongside their encoders and decoders
The following tables gives a quick access to all tickets related to the
project:
- The first table contains references to every ticket adding major
features, like new code families, decoders...
- The second table contains references to every small ticket: bug fixes,
minor quality of life upgrades, etc
- The last table contains references to every ticket which has been
positive reviewed and/or closed.
The `Nature` column gives the "type" of the ticket :
- `Structure` means it's a structural ticket, which does not require any
knowledge in coding theory. It will be for tickets which introduce new
mechanisms in the API.
- `Cleanup` means it's a ticket that refreshes old existing code of the
coding library, and/or documentation. It does not require any knowledge in
coding theory.
- `Content` means it adds new mathematical content (code families,
decoding algorithms, ...) to Sage. Some knowledge on the topic might be
useful for these tickets.
- `Documentation` means it's a ticket which adds some new documentation in
the library. It does not require any particular knowledge in coding
library, nor being familiar with our code.
- `Enhancement` means it's a ticket which makes some existing code better,
either in matter of speed or design.
= Major features =
|| Topic || Ticket number || Nature ||
|| Linear codes and category framework || #18150|| Structure||
|| A class for subfield subcodes || #20039|| Content||
|| A class for cyclic codes || #20100|| Content||
|| Information set decoder || #20138|| Content||
|| A class for BCH codes || #20335|| Content||
|| Benchmarking tool for codes || #20526|| Content||
|| A class for Golay codes || #20787|| Content||
|| A class for a generic systematic encoder || #20835|| Content||
|| Some decoders for Reed-Muller codes || #20938|| Content||
= Small tickets =
|| Topic || Ticket number || Nature ||
|| Non-guava impl. for `covering_radius` || #19913|| Cleanup||
|| Clean `LinearCodeFromCheckMatrix` || #19975|| Cleanup||
|| Stop and restart features for benchmarks || #20684|| Content||
|| Multithread option for benchmarks || #20786|| Content||
|| Document decoder types || #20001|| Documentation||
|| Improve `grs.py`'s documentation || #20849|| Documentation||
|| `encode` as application to `Encoder` || #20087|| Enhancement||
|| Method for the rate of a linear code || #20342|| Enhancement||
|| Rework index and catalogs for sage.coding || #20908|| Enhancement||
|| `AbstractLinearCode.minimum_distance` fails with GAP message for large
fields || #20233|| Bug||
|| `decoder_type` only works on class instances || #20443|| Bug||
|| GRS polynomial encoder fails if polynomial to encode is not in `x` ||
#20744|| Bug||
|| Deprecate support for finite rings in `LinearCode` || #20387|| Defect||
|| Syndrome decoder for a linear code sometimes sets wrong decoder type ||
#20898|| Defect||
|| `AbstractLinearCode` should throw sensible error messages on printing
|| #20899|| Defect||
|| `LinearCode.basis()` should be an immutable Sequence || #19251||
Defect||
= Old tickets =
|| Topic || Ticket number || Nature ||
|| Structure for code families || #18099|| Structure||
|| Encoding structure || #18376|| Structure||
|| Decoding structure || #18813|| Structure||
|| Better names in coding || #17973|| Cleanup||
|| Improve `__contains__` method || #18607|| Cleanup||
|| Clean imports || #19315|| Cleanup||
|| Clean `dual_code`, `__eq__` and removed debug traces || #19492||
Cleanup||
|| Generic impl. for `__ne__` || #19743|| Cleanup||
|| Clean-up index of modules || #19907|| Cleanup||
|| Clean `AbstractLinearCode.zero` || #20113|| Cleanup||
|| Better checks in GRS decoders || #20177|| Cleanup||
|| Remove some deprecation warnings || #20685|| Cleanup||
|| Experimenting on codes || #18269|| Structure & Content||
|| GRS codes and dedicated encoders || #18928|| Content||
|| New decoders for GRS codes || #19653|| Content||
|| Guruswami-Sudan list-decoding || #19666|| Content||
|| Lee O'Sullivan for Guruswami-Sudan || #19722|| Content||
|| Punctured code + dedicated encoder and decoder || #19422|| Content||
|| Q-ary symmetric channel || #19511|| Content||
|| Syndrome decoder is a nearest neighbor decoder || #19623|| Content||
|| A proper class for Hamming codes || #19930|| Content||
|| A class for extended codes || #20124|| Content||
|| A class for non-prime fields embedding || #20284|| Content||
|| Base classes for Reed-Muller codes || #20705|| Content||
|| API thematic tutorial || #19745|| Documentation||
|| Introductory thematic tutorial || #19897|| Documentation||
|| `LinearCode(C)` for some code `C` should construct a code || #20198||
Enhancement||
|| Rewrite module doc of `LinearCode` || #20232|| Enhancement||
|| Improve efficiency of nearest neighbor decoder || #20201||
Enhancement||
|| Automatically register generic encoders/decoders in any code family ||
#20840|| Enhancement||
|| Fix LinearCode.wtdist_gap method || #20565|| Defect||
--
--
Ticket URL: <https://trac.sagemath.org/ticket/18846#comment:51>
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 https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.