Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A new structure for Cyclic codes #20100

Closed
sagetrac-dlucas mannequin opened this issue Feb 23, 2016 · 104 comments
Closed

A new structure for Cyclic codes #20100

sagetrac-dlucas mannequin opened this issue Feb 23, 2016 · 104 comments

Comments

@sagetrac-dlucas
Copy link
Mannequin

sagetrac-dlucas mannequin commented Feb 23, 2016

This ticket proposes a new implementation for cyclic codes.

It contains:

  • a new code class, CyclicCode,
  • a dedicated encoder to compute the generator matrix of a Cyclic Code, and
  • an encoder whose message space is a polynomial ring.

This new structure has the following features:

  • it is now possible to build a cyclic code in three different ways:
    • either by using the generator polynomial, which is passed as an argument,
    • either by using the defining set, which is passed as an argument (and can even be partial), or
    • by passing a linear code as argument. In that case, a generator polynomial will be computed (if possible) and used to reformat the input code as a cyclic code.
  • it also comes with a method to compute the BCH bound, either from a constructed code or directly from the necessary parameters.

Depends on #20284

CC: @johanrosenkilde @ClementPernet

Component: coding theory

Keywords: sd75

Author: David Lucas, Julien Lavauzelle

Branch/Commit: d6f6bde

Reviewer: Daniel Augot, Yann Laigle-Chapuy

Issue created by migration from https://trac.sagemath.org/ticket/20100

@sagetrac-dlucas sagetrac-dlucas mannequin added this to the sage-7.1 milestone Feb 23, 2016
@sagetrac-dlucas
Copy link
Mannequin Author

sagetrac-dlucas mannequin commented Feb 24, 2016

Branch: u/dlucas/cyclic_code

@sagetrac-dlucas
Copy link
Mannequin Author

sagetrac-dlucas mannequin commented Feb 24, 2016

Author: David Lucas

@sagetrac-dlucas
Copy link
Mannequin Author

sagetrac-dlucas mannequin commented Feb 24, 2016

Commit: 6bcc1e7

@sagetrac-dlucas
Copy link
Mannequin Author

sagetrac-dlucas mannequin commented Feb 24, 2016

Dependencies: #20039

@sagetrac-dlucas
Copy link
Mannequin Author

sagetrac-dlucas mannequin commented Feb 24, 2016

comment:2

I pushed my work, as it is almost done.
There's still one bug to fix, documented in defining_set's broken docstring.


Last 10 new commits:

77f0629Merged #19897
37bb7acUpdated introductory thematic tutorial with a paragraph on decoders and message spaces
1220403Merge branch 'develop' into grs_decoders
4340598Removed deprecated import
b840682Updated to 7.1beta3 and fixed conflict
d70d6aaRemoved `__ne__` methods
1808bb1Some fixes to the decoder. Merged with GRS decoders branch to have fast examples
9c5405fFixed a bug because of which it was impossible to build a PC matrix when the subfield was the prime field
f3ca628Merge branch 'subfield_subcode' into cyclic_code
6bcc1e7Class for cyclic and two encoders for this class

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Feb 24, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

d9618bfFixed bug in defining_set

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Feb 24, 2016

Changed commit from 6bcc1e7 to d9618bf

@sagetrac-dlucas
Copy link
Mannequin Author

sagetrac-dlucas mannequin commented Feb 24, 2016

comment:4

Ok, found it and fixed it. It's now open for review.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Mar 2, 2016

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

a074cb8Changed my helper methods into private methods
6ad583fFixed bug in KeyEquation decoder's decode_to_code, added sanity checks, enhanced doctests
fca099eAdded new sanity check on the output of BW and Gao decoder
57dbfbfRewrote random_element method
7953d60Proper sanity checks for output of decode_to_* methods
8673ac5Optimized a bit polynomial division in Gao and BW
e1b6b09Merged now postive reviewed #19666 and fixed conflicts
5093dceUpdate to 7.1beta5
f3b4b11Fixed typo in Guruswami-Sudan doc
bab6bf7Merge branch 'grs_decoders' into cyclic_code

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Mar 2, 2016

Changed commit from d9618bf to bab6bf7

@sagetrac-dlucas
Copy link
Mannequin Author

sagetrac-dlucas mannequin commented Mar 2, 2016

comment:6

I merged with latest beta, fixed conflicts with GRS branch, this is still open for review.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Mar 23, 2016

Changed commit from bab6bf7 to fbfcb9f

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Mar 23, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

c302015Update to 7.1beta6
0e148fdFixed some broken doctests
c7350e2Changed some doctests in code_construction
9de5ebfUpdated to 7.1
b034726Fixed doctests in code_constructions.py
fbfcb9fChanged imports in binary_code.pyx

@sagetrac-dlucas
Copy link
Mannequin Author

sagetrac-dlucas mannequin commented Mar 23, 2016

comment:8

I fixed the broken doctests in code_constructions.py.
They occured because the old implementation of CyclicCode allowed to use generator polynomials which do not divide x^n - 1, n being the length of the code.
I fixed this by replacing these polynomials (say, g) by gcd(g, x^n - 1).

This is still open for review.

@sagetrac-dlucas sagetrac-dlucas mannequin modified the milestones: sage-7.1, sage-7.2 Mar 23, 2016
@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Mar 31, 2016

Changed commit from fbfcb9f to 0ee7bb6

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Mar 31, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

beadf6dMerge branch 'develop' into cyclic_code
0ee7bb6It is now possible to choose the primitive element to use as a root

@sagetrac-dlucas
Copy link
Mannequin Author

sagetrac-dlucas mannequin commented Mar 31, 2016

comment:11

I updated to the latest beta.
I also added a new optional argument: primitive_element. If filled, it will be used as the "base root" for the consecutive root sequence of the generator polynomial over the splitting field.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 28, 2016

Changed commit from 0ee7bb6 to e459f10

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 28, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

97484cfMerged into 7.3beta5, fixed conflicts, removed old field_embedding.py file
ea19a06Removed subfield_subcode.py
61976d3cyclic_code.py now uses relative_finite_field_extension.py
6335358Fixed doctests in code_constructions.py
7366cbeEnhanced module documentation, class' and global method's documentation
c328827Removed `__ne__` methods
141bb64Enhanced documentation of various methods in CyclicCode
a210e73Improved documentation of both encoders
e459f10Helper methods are now private methods

@sagetrac-dlucas
Copy link
Mannequin Author

sagetrac-dlucas mannequin commented Jun 28, 2016

Changed dependencies from #20039 to #20284

@sagetrac-dlucas
Copy link
Mannequin Author

sagetrac-dlucas mannequin commented Jun 28, 2016

comment:13

Hello,

I updated this ticket to latest beta version (7.3b5) and made some changes:

  • I removed dependency to Subfield subcodes #20039.
  • I improved documentation in many places, by defining terms more precisely.
  • I removed now useless __ne__ methods
  • I changed helper methods and made them private methods.

This is open for review.

David

@sagetrac-dlucas sagetrac-dlucas mannequin modified the milestones: sage-7.2, sage-7.3 Jun 28, 2016
@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 25, 2016

Changed commit from 0f4fe27 to 6f235d6

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 25, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

2161696Merged to latest beta (7.4.beta6).
75a222dRewrote doctest of two deprecated functions for best test coverage.
6f235d6Doctests now pass.

@jlavauzelle
Copy link
Contributor

comment:64

Hi,

I updated to the latest beta (7.4.beta6).

Still open for review.

Julien

@jlavauzelle
Copy link
Contributor

Changed keywords from none to sd75

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 19, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

e74c828Updated to latest beta (7.4.rc0).
8ee0d57Updated to latest beta (7.4).

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 19, 2016

Changed commit from 6f235d6 to 8ee0d57

@sagetrac-ylchapuy
Copy link
Mannequin

sagetrac-ylchapuy mannequin commented Oct 20, 2016

Reviewer: Daniel Augot, Yann Laigle-Chapuy

@sagetrac-ylchapuy
Copy link
Mannequin

sagetrac-ylchapuy mannequin commented Oct 20, 2016

comment:66

Previous comments have been taken into account, tests pass (failures on gentoo seem unrelated), coverage for the new file is 100%, doc builds and looks OK.

All good for me.

@sagetrac-ylchapuy sagetrac-ylchapuy mannequin modified the milestones: sage-7.4, sage-7.5 Oct 20, 2016
@vbraun
Copy link
Member

vbraun commented Oct 20, 2016

comment:67

Conflicts; Please wait for next beta and then fix the references:

[dochtml] [coding   ] /mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/coding/cyclic_code.py:docstring of sage.coding.cyclic_code:1: WARNING: citation not found: R06
[dochtml] [coding   ] /mnt/disk/home/release/Sage/local/lib/python2.7/site-packages/sage/coding/cyclic_code.py:docstring of sage.coding.cyclic_code:24: WARNING: citation not found: R06

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 22, 2016

Changed commit from 8ee0d57 to 75144a4

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 22, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

3bf1515Updated to latest beta (7.5.beta0).
75144a4Fixed references.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 10, 2016

Changed commit from 75144a4 to d6f6bde

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 10, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

cc97a23Merged with latest beta (7.5.beta2) and fixed conflicts.
d6f6bdeShorter print for cyclic codes

@jlavauzelle
Copy link
Contributor

comment:71

Hi,

I updated to the latest beta (7.5.beta2) and fixed conflicts.

Following #21691, I also produced shorter printing for cyclic codes (basically, I removed the generator polynomial which can have a quite long printing).

Best,

Julien

@vbraun
Copy link
Member

vbraun commented Jan 18, 2017

Changed branch from u/jlavauzelle/cyclic_code to d6f6bde

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants