galois.primitive_element¶
-
galois.primitive_element(irreducible_poly, start=
None
, stop=None
, reverse=False
)¶ Finds the smallest primitive element
of the Galois field with degree- irreducible polynomial over .- Parameters¶
- irreducible_poly : Poly¶
The degree-
irreducible polynomial over that defines the extension field .- start : Optional[int]¶
Starting value (inclusive, integer representation of the polynomial) in the search for a primitive element
of . The default isNone
which represents , which corresponds to over .- stop : Optional[int]¶
Stopping value (exclusive, integer representation of the polynomial) in the search for a primitive element
of . The default isNone
which represents , which corresponds to over .- reverse : bool¶
Search for a primitive element in reverse order, i.e. find the largest primitive element first. Default is
False
.
- Returns¶
A primitive element of
with irreducible polynomial . The primitive element is a polynomial over with degree less than .- Return type¶
Examples
In [1]: GF = galois.GF(3) In [2]: f = galois.Poly([1,1,2], field=GF); f Out[2]: Poly(x^2 + x + 2, GF(3)) In [3]: galois.is_irreducible(f) Out[3]: True In [4]: galois.is_primitive(f) Out[4]: True In [5]: galois.primitive_element(f) Out[5]: Poly(x, GF(3))
In [6]: GF = galois.GF(3) In [7]: f = galois.Poly([1,0,1], field=GF); f Out[7]: Poly(x^2 + 1, GF(3)) In [8]: galois.is_irreducible(f) Out[8]: True In [9]: galois.is_primitive(f) Out[9]: False In [10]: galois.primitive_element(f) Out[10]: Poly(x + 1, GF(3))