FiniteFieldFunctions(GF)

ffdoms.spad line 3152 [edit on github]

FiniteFieldFunctions(GF) is a package with functions concerning finite extension fields of the finite ground field GF, e.g. Zech logarithms.

createLowComplexityNormalBasis : PositiveInteger -> Union(SparseUnivariatePolynomial(GF), Vector(List(Record(value : GF, index : SingleInteger))))

createLowComplexityNormalBasis(n) tries to find a a low complexity normal basis of degree n over GF and returns its multiplication matrix If no low complexity basis is found it calls createNormalPoly(n) to produce a normal polynomial of degree n over GF

createLowComplexityTable : PositiveInteger -> Union(Vector(List(Record(value : GF, index : SingleInteger))), "failed")

createLowComplexityTable(n) tries to find a low complexity normal basis of degree n over GF and returns its multiplication matrix Fails, if it does not find a low complexity basis

createMultiplicationMatrix : Vector(List(Record(value : GF, index : SingleInteger))) -> Matrix(GF)

createMultiplicationMatrix(m) forms the multiplication table m into a matrix over the ground field.

createMultiplicationTable : SparseUnivariatePolynomial(GF) -> Vector(List(Record(value : GF, index : SingleInteger)))

createMultiplicationTable(f) generates a multiplication table for the normal basis of the field extension determined by f. This is needed to perform multiplications between elements represented as coordinate vectors to this basis. See FFNBP, FFNBX.

createZechTable : SparseUnivariatePolynomial(GF) -> PrimitiveArray(SingleInteger)

createZechTable(f) generates a Zech logarithm table for the cyclic group representation of a extension of the ground field by the primitive polynomial f(x), i.e. Z(i), defined by x^Z(i) = 1+x^i is stored at index i. This is needed in particular to perform addition of field elements in finite fields represented in this way. See FFCGP, FFCGX.

sizeMultiplication : Vector(List(Record(value : GF, index : SingleInteger))) -> NonNegativeInteger

sizeMultiplication(m) returns the number of entries of the multiplication table m.