[Next] [Prev] [_____] [Left] [Up] [Index] [Root]
Element Operations

Element Operations

Subsections

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 : FldFinntRest, 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
True if and only if the element a of F is a primitive element for F.
IsPrimitive(f) : RngUPolElt -> BoolElt
Given a univariate polynomial f in 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
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, a^q, ..., a^(q^(n - 1)) form a basis for F over the ground field G=GF(q).
IsNormal(a, E) : FldFinElt -> BoolElt
True if and only if the element a of F=GF(q^n) generates a normal basis for F over its subfield E=GF(q), that is, if and only if a, a^q, ..., a^(q^(n - 1)) form a basis for F over E.
IsSquare(a) : FldFinElt -> BoolElt
Given a finite field element a in F, this function returns either true and an element b in F such that b^2=a, or it returns false in the case that such an element does not exist.

Minimal and Characteristic Polynomial

MinimalPolynomial(a) : FldFinElt -> RngPolElt
The minimal polynomial of the element a of the field F, relative to the ground field of F. This is a polynomial with coefficients in the ground field, having a as a root.
MinimalPolynomial(a, E) : FldFinElt, FldFin -> RngPolElt
The minimal polynomial of the element a of the field F, relative to the subfield E of F. This is a 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 and Trace

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.

Log, Order and Roots

Log(a) : FldFinElt -> RngIntElt
The discrete logarithm of a non-zero element a from the field F, i.e., an integer k such that a = w^k, where w is the primitive element of F (as returned by PrimitiveElement).
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 y^2 = 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 y^n = a. An error results if no such root exists.
IsPower(a, n) : FldFinElt, RngIntElt -> BoolElt, FldFinElt
Given a finite field element a in F, and an integer n>0, this function returns either true and an element b in F such that b^n=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 in F, and an integer n>0, return a sequence containing all of the n-th roots of c which lie in the same field F.

Example FldFin_Functions (H27E3)

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);
0
> 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
[Next] [Prev] [_____] [Left] [Up] [Index] [Root]