/usr/share/axiom-20170501/src/algebra/FFNB.spad is in axiom-source 20170501-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | )abbrev domain FFNB FiniteFieldNormalBasis
++ Authors: J.Grabmeier, A.Scheerhorn
++ Date Created: 26.03.1991
++ References:
++ Grab92 Finite Fields in Axiom
++ Lidl83 Finite Field, Encyclopedia of Mathematics and Its Applications
++ Description:
++ FiniteFieldNormalBasis(p,n) implements a
++ finite extension field of degree n over the prime field with p elements.
++ The elements are represented by coordinate vectors with respect to
++ a normal basis,
++ a basis consisting of the conjugates (q-powers) of an element, in
++ this case called normal element.
++ This is chosen as a root of the extension polynomial
++ created by createNormalPoly
FiniteFieldNormalBasis(p,extdeg) : SIG == CODE where
p : PositiveInteger
extdeg: PositiveInteger -- the extension degree
NNI ==> NonNegativeInteger
FFF ==> FiniteFieldFunctions(PrimeField(p))
TERM ==> Record(value:PrimeField(p),index:SingleInteger)
SIG ==> FiniteAlgebraicExtensionField(PrimeField(p)) with
getMultiplicationTable : () -> Vector List TERM
++ getMultiplicationTable() returns the multiplication
++ table for the normal basis of the field.
++ This table is used to perform multiplications between field elements.
getMultiplicationMatrix : () -> Matrix PrimeField(p)
++ getMultiplicationMatrix() returns the multiplication table in
++ form of a matrix.
sizeMultiplication : () -> NNI
++ sizeMultiplication() returns the number of entries in the
++ multiplication table of the field. Note: The time of multiplication
++ of field elements depends on this size.
CODE ==>
FiniteFieldNormalBasisExtensionByPolynomial(PrimeField(p),_
createLowComplexityNormalBasis(extdeg)$FFF)
|