- class galois.GF2(galois.FieldArray)
A
FieldArray
subclass over \(\mathrm{GF}(2)\).Info
This class is a pre-generated
FieldArray
subclass generated withgalois.GF(2)
and is included in the API for convenience.Examples
This class is equivalent, and in fact identical, to the
FieldArray
subclass returned from the class factoryGF()
.In [1]: galois.GF2 is galois.GF(2) Out[1]: True In [2]: issubclass(galois.GF2, galois.FieldArray) Out[2]: True In [3]: print(galois.GF2.properties) Galois Field: name: GF(2) characteristic: 2 degree: 1 order: 2 irreducible_poly: x + 1 is_primitive_poly: True primitive_element: 1
Create a
FieldArray
instance usingGF2
’s constructor.In [4]: x = galois.GF2([1, 0, 1, 1]); x Out[4]: GF([1, 0, 1, 1], order=2) In [5]: isinstance(x, galois.GF2) Out[5]: True
Constructors¶
-
GF2(x: ElementLike | ArrayLike, dtype: DTypeLike | None =
None
, ...) Creates an array over \(\mathrm{GF}(p^m)\).
- classmethod Range(start: ElementLike, stop, ...) Self
Creates a 1-D array with a range of elements.
- classmethod Vandermonde(element: ElementLike, rows, ...) Self
Creates an \(m \times n\) Vandermonde matrix of \(a \in \mathrm{GF}(q)\).
Conversions¶
- classmethod Vector(array: ArrayLike, ...) FieldArray
Converts length-\(m\) vectors over the prime subfield \(\mathrm{GF}(p)\) to an array over \(\mathrm{GF}(p^m)\).
-
vector(dtype: DTypeLike | None =
None
) FieldArray Converts an array over \(\mathrm{GF}(p^m)\) to length-\(m\) vectors over the prime subfield \(\mathrm{GF}(p)\).
Elements¶
- class property elements : FieldArray
All of the finite field’s elements \(\{0, \dots, p^m-1\}\).
- class property non_squares : FieldArray
All non-squares in the Galois field.
- class property primitive_element : FieldArray
A primitive element \(\alpha\) of the Galois field \(\mathrm{GF}(p^m)\).
- class property primitive_elements : FieldArray
All primitive elements \(\alpha\) of the Galois field \(\mathrm{GF}(p^m)\).
- classmethod primitive_root_of_unity(n: int) Self
Finds a primitive \(n\)-th root of unity in the finite field.
- classmethod primitive_roots_of_unity(n: int) Self
Finds all primitive \(n\)-th roots of unity in the finite field.
- class property squares : FieldArray
All squares in the finite field.
- class property units : FieldArray
All of the finite field’s units \(\{1, \dots, p^m-1\}\).
String representation¶
- classmethod arithmetic_table(operation, ...) str
Generates the specified arithmetic table for the finite field.
- class property properties : str
A formatted string of relevant properties of the Galois field.
- classmethod repr_table(...) str
Generates a finite field element representation table comparing the power, polynomial, vector, and integer representations.
Element representation¶
- class property element_repr : 'int' | 'poly' | 'power'
The current finite field element representation.
- classmethod repr(...) Generator[None, None, None]
Sets the element representation for all arrays from this
FieldArray
subclass.
Arithmetic compilation¶
- class property default_ufunc_mode : 'jit-lookup' | 'jit-calculate' | 'python-calculate'
The default ufunc compilation mode for this
FieldArray
subclass.
- class property dtypes : list[numpy.dtype]
List of valid integer
numpy.dtype
values that are compatible with this finite field.
- class property ufunc_mode : 'jit-lookup' | 'jit-calculate' | 'python-calculate'
The current ufunc compilation mode for this
FieldArray
subclass.
- class property ufunc_modes : list[str]
All supported ufunc compilation modes for this
FieldArray
subclass.
Methods¶
- additive_order() int | numpy.ndarray
Computes the additive order of each element in \(x\).
- characteristic_poly() Poly
Computes the characteristic polynomial of a finite field element \(a\) or a square matrix \(\mathbf{A}\).
- field_norm() FieldArray
Computes the field norm \(\mathrm{N}_{L / K}(x)\) of the elements of \(x\).
- field_trace() FieldArray
Computes the field trace \(\mathrm{Tr}_{L / K}(x)\) of the elements of \(x\).
-
log(base: ElementLike | ArrayLike | None =
None
) int | ndarray Computes the discrete logarithm of the array \(x\) base \(\beta\).
- minimal_poly() Poly
Computes the minimal polynomial of a finite field element \(a\).
- multiplicative_order() int | numpy.ndarray
Computes the multiplicative order \(\textrm{ord}(x)\) of each element in \(x\).
Linear algebra¶
- column_space() Self
Computes the column space of the matrix \(\mathbf{A}\).
- left_null_space() Self
Computes the left null space of the matrix \(\mathbf{A}\).
- lu_decompose() tuple[Self, Self]
Decomposes the input array into the product of lower and upper triangular matrices.
- null_space() Self
Computes the null space of the matrix \(\mathbf{A}\).
- plu_decompose() tuple[Self, Self, Self]
Decomposes the input array into the product of lower and upper triangular matrices using partial pivoting.
-
row_reduce(ncols: int | None =
None
, ...) Self Performs Gaussian elimination on the matrix to achieve reduced row echelon form (RREF).
Properties¶
- class property characteristic : int
The prime characteristic \(p\) of the Galois field \(\mathrm{GF}(p^m)\).
- class property irreducible_poly : Poly
The irreducible polynomial \(f(x)\) of the Galois field \(\mathrm{GF}(p^m)\).
- class property prime_subfield : type[FieldArray]
The prime subfield \(\mathrm{GF}(p)\) of the extension field \(\mathrm{GF}(p^m)\).
Attributes¶
- class property is_extension_field : bool
Indicates if the finite field is an extension field, having prime power order.
- class property is_prime_field : bool
Indicates if the finite field is a prime field, having prime order.
- class property is_primitive_poly : bool
Indicates whether the
irreducible_poly
is a primitive polynomial.
- is_square() bool | numpy.ndarray
Determines if the elements of \(x\) are squares in the finite field.
-
GF2(x: ElementLike | ArrayLike, dtype: DTypeLike | None =