- galois.FieldArray.field_trace() FieldArray
Computes the field trace \(\mathrm{Tr}_{L / K}(x)\) of the elements of \(x\).
- Returns¶
The field trace 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 trace of \(x\) is over the subfield \(K = \mathrm{GF}(p)\). In other words, \(\mathrm{Tr}_{L / K}(x) : L \rightarrow K\).For finite fields, since \(L\) is a Galois extension of \(K\), the field trace of \(x\) is defined as a sum of the Galois conjugates of \(x\).
\[\mathrm{Tr}_{L / K}(x) = \sum_{i=0}^{m-1} x^{p^i}\]References¶
Examples¶
Compute the field trace 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_trace(); y Out[3]: GF([0, 2, 1, 1, 0, 2, 2, 1, 0], order=3)
In [4]: GF = galois.GF(3**2, display="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_trace(); y Out[6]: GF([0, 2, 1, 1, 0, 2, 2, 1, 0], order=3)
In [7]: GF = galois.GF(3**2, display="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_trace(); y Out[9]: GF([0, 2, 1, 1, 0, 2, 2, 1, 0], order=3)