InnerNormalBasisFieldFunctions GFΒΆ

ffnb.spad line 1

InnerNormalBasisFieldFunctions(GF) (unexposed): This package has functions used by every normal basis finite field extension domain.

*: (Vector GF, Vector GF) -> Vector GF
x*y is undocumented. See *
/: (Vector GF, Vector GF) -> Vector GF
x/y is undocumented. See /
^: (Vector GF, Integer) -> Vector GF
x^n is undocumented. See ^
basis: PositiveInteger -> Vector Vector GF
basis(n) is undocumented. See basis
dAndcExp: (Vector GF, NonNegativeInteger, SingleInteger) -> Vector GF
dAndcExp(v, n, k) computes v^e interpreting v as an element of normal basis field. A divide and conquer algorithm similar to the one from D.R.Stinson, “Some observations on parallel Algorithms for fast exponentiation in GF(2^n)”, Siam J. Computation, Vol.19, No.4, pp.711-717, August 1990 is used. Argument k is a parameter of this algorithm.
expPot: (Vector GF, SingleInteger, SingleInteger) -> Vector GF
expPot(v, e, d) returns the sum from i = 0 to e - 1 of v^(q^i*d), interpreting v as an element of a normal basis field and where q is the size of the ground field. Note: for a description of the algorithm, see T.Itoh and S.Tsujii, “A fast algorithm for computing multiplicative inverses in GF(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 length n over the ground field.
inv: Vector GF -> Vector GF
inv x is undocumented. See inv
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
normal?: Vector GF -> Boolean
normal?(x) is undocumented. See normal?
normalElement: PositiveInteger -> Vector GF
normalElement(n) is undocumented. See normalElement
pol: Vector GF -> SparseUnivariatePolynomial GF
pol(v) turns the vector [v0, ..., vn] into the polynomial v0+v1*x+ ... + vn*x^n.
qPot: (Vector GF, Integer) -> Vector GF
qPot(v, e) computes v^(q^e), interpreting v as an element of normal basis field, q the size of the ground field. This is done by a cyclic e-shift of the vector v.
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) computes v^e by repeated squaring, interpreting v 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, where m is the multiplication table and p is the respective normal element of the ground field GF.
trace: (Vector GF, PositiveInteger) -> Vector GF
trace(x, n) is undocumented. See trace
xn: NonNegativeInteger -> SparseUnivariatePolynomial GF
xn(n) returns the polynomial x^n-1.