Element Operations

See also Section Generic Element Functions.

Contents

Arithmetic Operators

+ a : FldFinElt -> FldFinElt
- a : FldFinElt -> FldFinElt
a + b : FldFinElt, FldFinElt -> FldFinElt
a - b : FldFinElt, FldFinElt -> FldFinElt
a * b : FldFinElt, FldFinElt -> FldFinElt
a / b : FldFinElt, FldFinElt -> FldFinElt
a ^ k : FldFinElt, RngIntElt -> FldFinElt
a +:= b : FldFinElt, FldFinElt -> FldFinElt
a -:= b : FldFinElt, FldFinElt -> FldFinElt
a *:= b : FldFinElt, FldFinElt -> FldFinElt

Equality and Membership

a eq b : FldFinElt, FldFinElt -> BoolElt
a ne b : FldFinElt, FldFinElt -> BoolElt
a in F : FldFinElt, Rng -> BoolElt
a notin F : FldFinElt, Rng -> BoolElt

Parent and Category

Parent(a) : FldFinElt -> FldFin
Category(a) : FldFinElt -> Cat

Predicates on Ring Elements

IsZero(a) : FldFinElt -> BoolElt
IsOne(a) : FldFinElt -> BoolElt
IsMinusOne(a) : FldFinElt -> BoolElt
IsNilpotent(a) : FldFinElt -> BoolElt
IsIdempotent(a) : FldFinElt -> BoolElt
IsUnit(a) : FldFinElt -> BoolElt
IsZeroDivisor(a) : FldFinElt -> BoolElt
IsRegular(a) : FldFin -> BoolElt
IsIrreducible(a) : FldFinElt -> BoolElt
IsPrime(a) : FldFinElt -> BoolElt
IsPrimitive(a) : FldFinElt -> BoolElt
Returns true if and only if the element a of F is a primitive element for F (i.e., if and only if the multiplicative order of a is #F - 1).
IsPrimitive(f) : RngUPolElt -> BoolElt
Given a univariate polynomial f∈F[x], over a finite field F, such that the degree of f is greater than or equal to 1, this function returns true if and only if f defines a primitive extension G=F[x]/f of F (that is, x is primitive in G).
IsNormal(a) : FldFinElt -> BoolElt
Returns true if and only if the element a of F generates a normal basis for the field over the ground field, that is, if and only if a, aq, ..., a^(qn - 1) form a basis for F over the ground field G=GF(q).
IsNormal(a, E) : FldFinElt -> BoolElt
Returns true if and only if the element a of the finite field F with qn elements generates a normal basis for F over its subfield E, that is, if and only if a, aq, ..., a^(qn - 1) form a basis for F over E for q=#E.
IsSquare(a) : FldFinElt -> BoolElt
Given a finite field element a∈F, this function returns either true and an element b∈F such that b2=a, or it returns false in the case that such an element does not exist.

Minimal and Characteristic Polynomial

MinimalPolynomial(a) : FldFinElt -> RngUPolElt
The minimal polynomial of the element a of the field F, relative to the ground field of F. This is the unique minimal-degree monic polynomial with coefficients in the ground field, having a as a root.
MinimalPolynomial(a, E) : FldFinElt, FldFin -> RngUPolElt
The minimal polynomial of the element a of the field F, relative to the subfield E of F. This is the unique minimal-degree monic polynomial with coefficients in E, having a as a root.
CharacteristicPolynomial(a) : FldFinElt -> RngUPolElt
Given an element a of a finite field F, return the characteristic polynomial of a with respect to the ground field of F. (This polynomial is the characteristic polynomial of the companion matrix of a written as a polynomial over the ground field, and is a power of the minimal polynomial.)
CharacteristicPolynomial(a, E) : FldFinElt, FldFin -> RngUPolElt
Given an element a of a finite field F, return the characteristic polynomial of a with respect to the subfield E of F. (This polynomial is the characteristic polynomial of the companion matrix of a written as a polynomial over E, and is a power of the minimal polynomial over E.)

Norm, Trace and Frobenius

Norm(a) : FldFinElt -> FldFinElt
The norm of the element a from the field F to the ground field of F.
Norm(a, E) : FldFinElt, FldFin -> FldFinElt
The relative norm of the element a from the field F, with respect to the subfield E of F. The result is an element of E.
AbsoluteNorm(a) : FldFinElt -> FldFinElt
NormAbs(a) : FldFinElt -> FldFinElt
The absolute norm of the element a, that is, the norm to the prime subfield of the parent field F of a.
Trace(a) : FldFinElt -> FldFinElt
The trace of the element a from the field F to the ground field of F.
Trace(a, E) : FldFinElt, FldFin -> FldFinElt
The relative trace of the element a from field F, with respect to the subfield E of F. The result is an element of E.
AbsoluteTrace(a) : FldFinElt -> FldFinElt
TraceAbs(a) : FldFinElt -> FldFinElt
The trace of the element a, that is, the trace to the prime subfield of the parent field F of a.
Frobenius(a) : FldFinElt -> FldFinElt
The Frobenius image of a w.r.t. the ground field of K; i.e., a#G, where G is the ground field of the parent of a.
Frobenius(a, r) : FldFinElt, RngIntElt -> FldFinElt
The r-th Frobenius image of a w.r.t. the ground field of K; i.e., a(#G)r, where G is the ground field of the parent of a.
Frobenius(a, E) : FldFinElt, FldFin -> FldFinElt
The Frobenius image of x w.r.t. E; i.e., x#E.
Frobenius(a, E, r) : FldFinElt, FldFin, RngIntElt -> FldFinElt
The Frobenius image of x w.r.t. E; i.e., x(#E)r.
NormEquation(K, y) : FldFin, FldFin -> BoolElt, FldFinElt
Given a finite field K and an element y of a subfield S of K, return whether an element x∈K exists such that Norm(x, S) = y, and, if so, such an element x (in K).
Hilbert90(a, q) : FldFinElt, RngIntElt -> FldFinElt
Given an element a of some finite field k and a power q of the characteristic of k, return a solution of the Hilbert 90 equation xqx - 1=a. Note that the solution may be in a finite-degree extension of k.
AdditiveHilbert90(a, q) : FldFinElt, RngIntElt -> FldFinElt
Given an element a of some finite field k and a power q of the characteristic of k, return a solution of the additive Hilbert 90 equation xq - x=a. Note that the solution may be in a finite-degree extension of k.

Order and Roots

Order(a) : FldFinElt -> RngIntElt
The multiplicative order of the non-zero element a of the field F.
FactoredOrder(a) : FldFinElt -> RngIntElt
The multiplicative order of the non-zero element a of the field F as a factorization sequence.
SquareRoot(a) : FldFinElt -> FldFinElt
Sqrt(a) : FldFinElt -> FldFinElt
The square root of the non-zero element a from the field F, i.e., an element y of F such that y2 = a. An error results if a is not a square.
Root(a, n) : FldFinElt, RngIntElt -> FldFinElt
The n-th root of the non-zero element a from the field F, i.e., an element y of F such that yn = a. An error results if no such root exists.
IsPower(a, n) : FldFinElt, RngIntElt -> BoolElt, FldFinElt
Given a finite field element a∈F, and an integer n>0, this function returns either true and an element b∈F such that bn=a, or it returns false in the case that such an element does not exist.
AllRoots(a, n) : FldFinElt, RngIntElt -> SeqEnum
Given a finite field element a∈F, and an integer n>0, return a sequence containing all of the n-th roots of a which lie in the same field F.

Example FldFin_Functions (H22E4)

Given the fields F and F49 defined above, we can use the following functions:
> F7 := FiniteField(7);
> F49<w> := ext< F7 | 2 >;
> F<z> := ext< F49 | 2 >;
> Root(z^73, 7);
z^1039
> Trace(z^73);
1
> Trace(z^73, F49);
w^44
> Norm(z^73);
3
> Norm(z^73, F49);
w^37
> Norm(w^37);
3
> MinimalPolynomial(z^73);
x^2 + w^20*x + w^43
> MinimalPolynomial(z^73, F7);
x^4 + 4*x^2 + 4*x + 3
We now demonstrate the NormEquation function.
> Norm(z);
3
> NormEquation(F, F7!3);
true z
> Norm(z^30, F49);
w^30
> Parent(z) eq F;
true
> NormEquation(F, w^30);
true z^30
V2.28, 13 July 2023