esabo / CodingTheory

A coding theory library for Julia.
https://esabo.github.io/CodingTheory/
BSD 3-Clause "New" or "Revised" License
26 stars 11 forks source link

Dedicated constructors for Cyclic codes #32

Open Fe-r-oz opened 2 months ago

Fe-r-oz commented 2 months ago

These are some of the dedicated cyclic code constructors that would be nice to have. This was brought up in an insightful discussion with Eric.

Chapter 6 of Error-Correction Coding and Decoding has a nice introduction on some of these cyclic codes. For more thorough reading, it is always best to follow MacWilliams Book on Theory on Error Correction Codes. Some of the cyclic codes are as follows:

I worked on an ugly implementation of Goppa codes here which as Eric notes, can be boiled down into ~20 lines. Eric correctly pointed out that I needed to focus on doing operations on matrix algebras rather than explicitly doing it on vectors/elements of matrices (the latter is a coarse approach). There seems to be two descriptions of Goppa codes in literature: Cyclic Construction which is most often found in the books. The other construction, taken from section 2 of Notes on Goppa Codes is shown as follows:

goppa

@esabo, please correct me if this construction does not seem like another formulation of Goppa codes from the cyclic construction. If I am not mistaken, in Goppa's original paper, he used the cyclic construction based on generator polynomials, etc. The paper is in Russian, so the next best paper is by Berlekamp. Thank you for your insights.