- galois.FieldArray.field_norm() FieldArray
Computes the field norm \(\mathrm{N}_{L / K}(x)\) of the elements of \(x\).
- Returns:¶
The field norm of \(x\) in the prime subfield \(\mathrm{GF}(p)\).
Notes¶
The
self
array \(x\) is over the extension field \(L = \mathrm{GF}(p^m)\). The field norm of \(x\) is over the subfield \(K = \mathrm{GF}(p)\). In other words, \(\mathrm{N}_{L / K}(x) : L \rightarrow K\).For finite fields, since \(L\) is a Galois extension of \(K\), the field norm of \(x\) is defined as a product of the Galois conjugates of \(x\).
\[\mathrm{N}_{L / K}(x) = \prod_{i=0}^{m-1} x^{p^i} = x^{(p^m - 1) / (p - 1)}\]References¶
Examples¶
Compute the field norm of the elements of \(\mathrm{GF}(3^2)\).
In [1]: GF = galois.GF(3**2) In [2]: x = GF.elements; x Out[2]: GF([0, 1, 2, 3, 4, 5, 6, 7, 8], order=3^2) In [3]: y = x.field_norm(); y Out[3]: GF([0, 1, 1, 2, 1, 2, 2, 2, 1], order=3)
In [4]: GF = galois.GF(3**2, repr="poly") In [5]: x = GF.elements; x Out[5]: GF([ 0, 1, 2, α, α + 1, α + 2, 2α, 2α + 1, 2α + 2], order=3^2) In [6]: y = x.field_norm(); y Out[6]: GF([0, 1, 1, 2, 1, 2, 2, 2, 1], order=3)
In [7]: GF = galois.GF(3**2, repr="power") In [8]: x = GF.elements; x Out[8]: GF([ 0, 1, α^4, α, α^2, α^7, α^5, α^3, α^6], order=3^2) In [9]: y = x.field_norm(); y Out[9]: GF([0, 1, 1, 2, 1, 2, 2, 2, 1], order=3)