# 65.72 Generating Cyclic Codes

The elements of a cyclic code C are all multiples of a polynomial g(x), where calculations are carried out modulo x^n-1. Therefore, the elements always have a degree less than n. A cyclic code is an ideal in the ring of polynomials modulo x^<n> - 1. The polynomial g(x) is called the generator polynomial of C. This is the unique monic polynomial of least degree that generates C. It is a divisor of the polynomial x^<n>-1.

The check polynomial is the polynomial h(x) with g(x)*h(x)= x^n-1. Therefore it is also a divisor of x^n-1. The check polynomial has the property that c(x)*h(x) = 0 (mod (x^n-1)) for every codeword c(x).

The first two sections describe functions that generate cyclic codes from a given generator or check polynomial. All cyclic codes can be constructed using these functions.

The next sections describe the two cyclic Golay codes (see BinaryGolayCode and TernaryGolayCode).

The next sections describe functions that generate cyclic codes from a prescribed set of roots of the generator polynomial, among which the BCH codes. See RootsCode, BCHCode, ReedSolomonCode and QRCode.

The next sections describe the trivial codes (see WholeSpaceCode, NullCode, RepetitionCode).

GAP 3.4.4
April 1997