Skip to content

Commit

Permalink
Trac #18269: A new structure for experimentation on decoding: communi…
Browse files Browse the repository at this point in the history
…cation channels

For now, there is no structure to easily add errors in codewords. If one
wants to experiment with decoding algorithms on codes, the only possible
way is to add errors "by hand", which is rather tedious.

We propose here a new structure, based on communication channels, on
purpose to facilitate the experimentation process with decoding
algorithms.

For now, our structure consists of:

- an abstract class for channels,
- a channel which adds a specific number of errors at random positions
to each provided vector
- a channel which adds a specific number of errors at random positions
to each provided vector, and erases a specific number of random
positions

With this new structure, creating `n` errors in a vector can be done in
one line of code into Sage.
Adding a new Channel class should also be easy: all one needs to do is
to inherit from the abstract class, and override and implement a method.

For better consistency, channels can only be accessed using
channels.<name> (see #15445) from the global namespace.

URL: http://trac.sagemath.org/18269
Reported by: dlucas
Ticket author(s): David Lucas
Reviewer(s): Vincent Delecroix
  • Loading branch information
Release Manager authored and vbraun committed Apr 29, 2015
2 parents 8d1e738 + 383e67c commit 41230fd
Show file tree
Hide file tree
Showing 4 changed files with 667 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/doc/en/reference/coding/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ Coding Theory
.. toctree::
:maxdepth: 1

sage/coding/channels_catalog
sage/coding/channel_constructions
sage/coding/codes_catalog
sage/coding/linear_code
sage/coding/code_constructions
Expand Down
3 changes: 3 additions & 0 deletions src/sage/coding/all.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,6 @@
["Krawtchouk", "delsarte_bound_hamming_space", "delsarte_bound_additive_hamming_space"])

lazy_import('sage.coding', 'codes_catalog', 'codes')
lazy_import('sage.coding', 'channels_catalog', 'channels')

import sage.coding.channel_constructions
Loading

0 comments on commit 41230fd

Please sign in to comment.