InnerNormalBasisFieldFunctions GF¶
ffdoms.spad line 2000 [edit on github]
InnerNormalBasisFieldFunctions(GF
) (unexposed): This package has functions used by every normal basis finite field extension domain.
- basis: PositiveInteger -> Vector Vector GF
basis(n)
is undocumented. See basis
- dAndcExp: (Vector GF, NonNegativeInteger, SingleInteger) -> Vector GF
dAndcExp(v, n, k)
computesv^e
interpretingv
as an element of normal basis field. A divide and conquer algorithm similar to the one fromD
.R
.Stinson, “Some observations on parallel Algorithms for fast exponentiation inGF
(2^n)”, SiamJ
. Computation, Vol.19, No.4,pp
.711-717, August 1990 is used. Argumentk
is a parameter of this algorithm.
- expPot: (Vector GF, SingleInteger, SingleInteger) -> Vector GF
expPot(v, e, d)
returns the sum fromi = 0
toe - 1
ofv^(q^i*d)
, interpretingv
as an element of a normal basis field and whereq
is the size of the ground field. Note: for a description of the algorithm, seeT
.Itoh andS
.Tsujii, “A fast algorithm for computing multiplicative inverses inGF
(2^m) using normal bases”, Information and Computation 78,pp
.171-177, 1988.
- index: (PositiveInteger, PositiveInteger) -> Vector GF
index(n, m)
is a index function for vectors of lengthn
over the ground field.
- lookup: Vector GF -> PositiveInteger
lookup(x)
is undocumented. See lookup
- minimalPolynomial: Vector GF -> SparseUnivariatePolynomial GF
minimalPolynomial(x)
is undocumented. See minimalPolynomial
- norm: (Vector GF, PositiveInteger) -> Vector GF
norm(x, n)
is undocumented. See norm
- normalElement: PositiveInteger -> Vector GF
normalElement(n)
is undocumented. See normalElement
- pol: Vector GF -> SparseUnivariatePolynomial GF
pol(v)
turns the vector[v0, ..., vn]
into the polynomialv0+v1*x+ ... + vn*x^n
.
- qPot: (Vector GF, Integer) -> Vector GF
qPot(v, e)
computesv^(q^e)
, interpretingv
as an element of normal basis field,q
the size of the ground field. This is done by a cyclice
-shift of the vectorv
.
- random: PositiveInteger -> Vector GF
random(n)
creates a vector over the ground field with random entries.
- repSq: (Vector GF, NonNegativeInteger) -> Vector GF
repSq(v, e)
computesv^e
by repeated squaring, interpretingv
as an element of a normal basis field.
- setFieldInfo: (Vector List Record(value: GF, index: SingleInteger), GF) -> Void
setFieldInfo(m, p)
initializes the field arithmetic, wherem
is the multiplication table andp
is the respective normal element of the ground fieldGF
.
- trace: (Vector GF, PositiveInteger) -> Vector GF
trace(x, n)
is undocumented. See trace
- xn: NonNegativeInteger -> SparseUnivariatePolynomial GF
xn(n)
returns the polynomialx^n-1
.