# galois.roots_to_parity_check_matrix¶

galois.roots_to_parity_check_matrix(n, roots)

Converts the generator polynomial roots into the parity-check matrix $$\mathbf{H}$$ for an $$[n, k]$$ cyclic code.

Parameters
• n (int) – The codeword size $$n$$.

• roots (galois.FieldArray) – The $$2t$$ roots of the generator polynomial $$g(x)$$.

Returns

The $$(2t, n)$$ parity-check matrix $$\mathbf{H}$$, such that given a codeword $$\mathbf{c}$$, the syndrome is defined by $$\mathbf{s} = \mathbf{c}\mathbf{H}^T$$.

Return type

galois.FieldArray

Examples

Compute the parity-check matrix for the $$\mathrm{RS}(15, 9)$$ code.

In [1]: GF = galois.GF(2**4)

In [2]: alpha = GF.primitive_element

In [3]: t = 3

In [4]: roots = alpha**np.arange(1, 2*t + 1); roots
Out[4]: GF([ 2,  4,  8,  3,  6, 12], order=2^4)

In [5]: g = galois.Poly.Roots(roots); g
Out[5]: Poly(x^6 + 7x^5 + 9x^4 + 3x^3 + 12x^2 + 10x + 12, GF(2^4))

In [6]: galois.roots_to_parity_check_matrix(15, roots)
Out[6]:
GF([[ 9, 13, 15, 14,  7, 10,  5, 11, 12,  6,  3,  8,  4,  2,  1],
[13, 14, 10, 11,  6,  8,  2,  9, 15,  7,  5, 12,  3,  4,  1],
[15, 10, 12,  8,  1, 15, 10, 12,  8,  1, 15, 10, 12,  8,  1],
[14, 11,  8,  9,  7, 12,  4, 13, 10,  6,  2, 15,  5,  3,  1],
[ 7,  6,  1,  7,  6,  1,  7,  6,  1,  7,  6,  1,  7,  6,  1],
[10,  8, 15, 12,  1, 10,  8, 15, 12,  1, 10,  8, 15, 12,  1]],
order=2^4)