InnerNormalBasisFieldFunctions GF¶
ffdoms.spad line 2119 [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^einterpretingvas 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. Argumentkis a parameter of this algorithm.
- expPot: (Vector GF, SingleInteger, SingleInteger) -> Vector GF
expPot(v, e, d)returns the sum fromi = 0toe - 1ofv^(q^i*d), interpretingvas an element of a normal basis field and whereqis 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 lengthnover 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), interpretingvas an element of normal basis field,qthe 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^eby repeated squaring, interpretingvas an element of a normal basis field.
- setFieldInfo: (Vector List Record(value: GF, index: SingleInteger), GF) -> Void
setFieldInfo(m, p)initializes the field arithmetic, wheremis the multiplication table andpis 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.