property galois.ReedSolomon.is_systematic : bool

Indicates if the code is systematic, meaning the codewords have parity appended to the message.

Examples

Construct a non-primitive \(\textrm{RS}(13, 9)\) systematic code over \(\mathrm{GF}(3^3)\).

In [1]: rs = galois.ReedSolomon(13, 9, field=galois.GF(3**3)); rs
Out[1]: <Reed-Solomon Code: [13, 9, 5] over GF(3^3)>

In [2]: rs.is_systematic
Out[2]: True

In [3]: rs.G
Out[3]: 
GF([[ 1,  0,  0,  0,  0,  0,  0,  0,  0, 13, 20,  9, 16],
    [ 0,  1,  0,  0,  0,  0,  0,  0,  0, 14, 12,  7,  6],
    [ 0,  0,  1,  0,  0,  0,  0,  0,  0, 17, 15, 17, 21],
    [ 0,  0,  0,  1,  0,  0,  0,  0,  0, 12, 25, 19, 13],
    [ 0,  0,  0,  0,  1,  0,  0,  0,  0, 19, 15,  8,  3],
    [ 0,  0,  0,  0,  0,  1,  0,  0,  0, 22, 24, 13,  9],
    [ 0,  0,  0,  0,  0,  0,  1,  0,  0, 10, 10,  9, 18],
    [ 0,  0,  0,  0,  0,  0,  0,  1,  0, 20, 22, 25,  4],
    [ 0,  0,  0,  0,  0,  0,  0,  0,  1,  9,  8, 11, 22]], order=3^3)

Construct a non-primitive \(\textrm{RS}(13, 9)\) non-systematic code over \(\mathrm{GF}(3^3)\).

In [4]: rs = galois.ReedSolomon(13, 9, field=galois.GF(3**3), systematic=False); rs
Out[4]: <Reed-Solomon Code: [13, 9, 5] over GF(3^3)>

In [5]: rs.is_systematic
Out[5]: False

In [6]: rs.G
Out[6]: 
GF([[ 1,  9,  8, 11, 22,  0,  0,  0,  0,  0,  0,  0,  0],
    [ 0,  1,  9,  8, 11, 22,  0,  0,  0,  0,  0,  0,  0],
    [ 0,  0,  1,  9,  8, 11, 22,  0,  0,  0,  0,  0,  0],
    [ 0,  0,  0,  1,  9,  8, 11, 22,  0,  0,  0,  0,  0],
    [ 0,  0,  0,  0,  1,  9,  8, 11, 22,  0,  0,  0,  0],
    [ 0,  0,  0,  0,  0,  1,  9,  8, 11, 22,  0,  0,  0],
    [ 0,  0,  0,  0,  0,  0,  1,  9,  8, 11, 22,  0,  0],
    [ 0,  0,  0,  0,  0,  0,  0,  1,  9,  8, 11, 22,  0],
    [ 0,  0,  0,  0,  0,  0,  0,  0,  1,  9,  8, 11, 22]], order=3^3)

In [7]: rs.generator_poly
Out[7]: Poly(x^4 + 9x^3 + 8x^2 + 11x + 22, GF(3^3))