Dom::GaloisField
-- finite
fieldsDom::GaloisField
(p, n, f)
creates the
residue class field Zp[X]/〈f〉, a finite
field with pn elements. If f
is not
given, it is chosen at random among all irreducible polynomials of
degree n.
Dom::GaloisField
(q)
(where
q=pn) is equivalent to
Dom::GaloisField
(p,n)
.
Dom::GaloisField
(F, n, f)
creates the
residue class field F[X]/〈f〉, a finite field with
|F| n elements. If f
is not given,
it is chosen at random among all irreducible polynomials of degree
n.
Dom::GaloisField(q)
Dom::GaloisField(p, n)
Dom::GaloisField(p, n, f)
Dom::GaloisField(F, n)
Dom::GaloisField(F, n, f)
q |
- | prime power |
p |
- | prime |
n |
- | positive integer |
f |
- | univariate irreducible polynomial over Dom::IntegerMod (p) or
F , or polynomial expression convertible to such |
F |
- | finite field of type Dom::IntegerMod or
Dom::GaloisField . |
f
is not given, a random irreducible polynomial of
appropriate degree is used; some free identifier is chosen as its
variable, and this one must also be used when creating domain
elements.Dom::IntegerMod
should be used for
representing prime fields.F
is of type Dom::GaloisField
,
consisting of residue classes of polynomials, the variable of these
polynomials must be distinct from the variable of f
. If a
tower several of Galois fields is constructed, the variable used in the
uppermost Galois field must not equal any of those used in the tower. A
special entry "VariablesInUse"
serves to keep track of all
variables appearing somewhere in the tower.Dom::GaloisField
(p,n,f)(g)
(or,
respectively, Dom::GaloisField
(F,n,f)(g)
)
creates the residue class of g
modulo f
. It
is represented by the unique polynomial in that class that has smaller
degree than f
.
Dom::GaloisField
(p, n, f)(g)
g |
- | univariate polynomial over the ground field in the
same variable as f , or polynomial expression convertible
to such |
Cat::Field
, Cat::Algebra(F)
,
Cat::VectorSpace(F)
Dom::AlgebraicExtension
,
Dom::IntegerMod
the zero element of the field
the unit element of the field
the characteristic of the field
the number of elements of the field
the prime field, which equals Dom::IntegerMod
(p)
.
the variable of the polynomial f
.
a list consisting of "Variable"
and the variables used
by the ground field.
an n times n-matrix over the ground field,
where n is the degree of the field over its ground field. It
can be used for representing field elements as matrices since its
minimal polynomial is f
.
a list of the first n-1 powers of the companion matrix.
_power(dom a, integer
n)
_power
.frobenius(dom a)
conjugates(dom a)
a
.order(dom a)
isSquare(dom a)
TRUE
if there exists an
x in the field such that x2=a, and
FALSE
otherwise.ln(dom a, dom
b)
infinity
if such an integer does
not exist. b
must be nonzero.elementNumber(dom a)
Dom::GaloisField
itself, its method elementNumber
is used; if the ground
field is a prime field, φ is taken to be the mapping
that assigns, to each residue class modulo q, its smallest
nonnegative member.matrixRepresentation(dom a)
randomPrimitive()
isBasis(list of dom l)
l
constitute a basis of the field, viewed as vector space
over the ground field.isNormal(dom a)
TRUE
is returned; otherwise
the result is FALSE
.randomNormal()
isPrimitivePolynomial(univariate polynomial
over dom h)
h
is a polynomial in z, this
method returns TRUE
if h
is irreducible and
all nonzero elements of the extension field
G[z]/〈h〉 are powers of z. Otherwise,
FALSE
is returned.convert(any a)
a
can be converted to an element of the
Galois field exactly if it can be converted to an element of the
super-domain, Dom::AlgebraicExtension
.We define L
to be the field with 4
elements. Then a4=a for every a
∈L, by a well-known theorem.
>> L:=Dom::GaloisField(2, 2, u^2+u+1): L(u+1)^4
u + 1
Ax::canonicalRep