# FiniteFieldNormalBasisExtensionByPolynomial(GF, uni)ΒΆ

FiniteFieldNormalBasisExtensionByPolynomial(`GF`, uni) implements a finite extension of the ground field GF. The elements are represented by coordinate vectors with respect to. a normal basis, i.e. a basis consisting of the conjugates (`q`-powers) of an element, in this case called normal element, where `q` is the size of GF. The normal element is chosen as a root of the extension polynomial, which MUST be normal over GF (user responsibility)

0: %

from AbelianMonoid

1: %

from MagmaWithUnit

*: (%, %) -> %

from LeftModule %

*: (%, Fraction Integer) -> %
*: (%, GF) -> %

from RightModule GF

*: (Fraction Integer, %) -> %
*: (GF, %) -> %

from LeftModule GF

*: (Integer, %) -> %

from AbelianGroup

*: (NonNegativeInteger, %) -> %

from AbelianMonoid

*: (PositiveInteger, %) -> %

from AbelianSemiGroup

+: (%, %) -> %

from AbelianSemiGroup

-: % -> %

from AbelianGroup

-: (%, %) -> %

from AbelianGroup

/: (%, %) -> %

from Field

/: (%, GF) -> %

from ExtensionField GF

=: (%, %) -> Boolean

from BasicType

^: (%, Integer) -> %

from DivisionRing

^: (%, NonNegativeInteger) -> %

from MagmaWithUnit

^: (%, PositiveInteger) -> %

from Magma

~=: (%, %) -> Boolean

from BasicType

algebraic?: % -> Boolean

from ExtensionField GF

annihilate?: (%, %) -> Boolean

from Rng

antiCommutator: (%, %) -> %
associates?: (%, %) -> Boolean

from EntireRing

associator: (%, %, %) -> %
basis: () -> Vector %

from FramedModule GF

basis: PositiveInteger -> Vector %
characteristic: () -> NonNegativeInteger
characteristicPolynomial: % -> SparseUnivariatePolynomial GF

from FiniteRankAlgebra(GF, SparseUnivariatePolynomial GF)

charthRoot: % -> %
charthRoot: % -> Union(%, failed)
coerce: % -> %

from Algebra %

coerce: % -> OutputForm
coerce: Fraction Integer -> %
coerce: GF -> %

from CoercibleFrom GF

coerce: Integer -> %
commutator: (%, %) -> %
conditionP: Matrix % -> Union(Vector %, failed)
convert: % -> InputForm
convert: % -> Vector GF

from FramedModule GF

convert: Vector GF -> %

from FramedModule GF

coordinates: % -> Vector GF

from FramedModule GF

coordinates: (%, Vector %) -> Vector GF

from FiniteRankAlgebra(GF, SparseUnivariatePolynomial GF)

coordinates: (Vector %, Vector %) -> Matrix GF

from FiniteRankAlgebra(GF, SparseUnivariatePolynomial GF)

coordinates: Vector % -> Matrix GF

from FramedModule GF

createNormalElement: () -> %
createPrimitiveElement: () -> %
D: % -> %

from DifferentialRing

D: (%, NonNegativeInteger) -> %

from DifferentialRing

definingPolynomial: () -> SparseUnivariatePolynomial GF
degree: % -> OnePointCompletion PositiveInteger

from ExtensionField GF

degree: % -> PositiveInteger
differentiate: % -> %

from DifferentialRing

differentiate: (%, NonNegativeInteger) -> %

from DifferentialRing

discreteLog: % -> NonNegativeInteger
discreteLog: (%, %) -> Union(NonNegativeInteger, failed)
discriminant: () -> GF

from FramedAlgebra(GF, SparseUnivariatePolynomial GF)

discriminant: Vector % -> GF

from FiniteRankAlgebra(GF, SparseUnivariatePolynomial GF)

divide: (%, %) -> Record(quotient: %, remainder: %)

from EuclideanDomain

enumerate: () -> List %

from Finite

euclideanSize: % -> NonNegativeInteger

from EuclideanDomain

expressIdealMember: (List %, %) -> Union(List %, failed)
exquo: (%, %) -> Union(%, failed)

from EntireRing

extendedEuclidean: (%, %) -> Record(coef1: %, coef2: %, generator: %)

from EuclideanDomain

extendedEuclidean: (%, %, %) -> Union(Record(coef1: %, coef2: %), failed)

from EuclideanDomain

extensionDegree: () -> OnePointCompletion PositiveInteger

from ExtensionField GF

extensionDegree: () -> PositiveInteger
factor: % -> Factored %
factorPolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial %
factorsOfCyclicGroupSize: () -> List Record(factor: Integer, exponent: NonNegativeInteger)
factorSquareFreePolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial %
Frobenius: % -> %

from ExtensionField GF

Frobenius: (%, NonNegativeInteger) -> %

from ExtensionField GF

gcd: (%, %) -> %

from GcdDomain

gcd: List % -> %

from GcdDomain

gcdPolynomial: (SparseUnivariatePolynomial %, SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %

from GcdDomain

generator: () -> %
getMultiplicationMatrix: () -> Matrix GF

`getMultiplicationMatrix()` returns the multiplication table in form of a matrix.

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

`getMultiplicationTable()` returns the multiplication table for the normal basis of the field. This table is used to perform multiplications between field elements.

hash: % -> SingleInteger

from Hashable

hashUpdate!: (HashState, %) -> HashState

from Hashable

index: PositiveInteger -> %

from Finite

inGroundField?: % -> Boolean

from ExtensionField GF

init: %

from StepThrough

inv: % -> %

from DivisionRing

latex: % -> String

from SetCategory

lcm: (%, %) -> %

from GcdDomain

lcm: List % -> %

from GcdDomain

lcmCoef: (%, %) -> Record(llcm_res: %, coeff1: %, coeff2: %)

from LeftOreRing

leftPower: (%, NonNegativeInteger) -> %

from MagmaWithUnit

leftPower: (%, PositiveInteger) -> %

from Magma

leftRecip: % -> Union(%, failed)

from MagmaWithUnit

linearAssociatedExp: (%, SparseUnivariatePolynomial GF) -> %
linearAssociatedLog: % -> SparseUnivariatePolynomial GF
linearAssociatedLog: (%, %) -> Union(SparseUnivariatePolynomial GF, failed)
linearAssociatedOrder: % -> SparseUnivariatePolynomial GF
lookup: % -> PositiveInteger

from Finite

minimalPolynomial: % -> SparseUnivariatePolynomial GF

from FiniteRankAlgebra(GF, SparseUnivariatePolynomial GF)

minimalPolynomial: (%, PositiveInteger) -> SparseUnivariatePolynomial %
multiEuclidean: (List %, %) -> Union(List %, failed)

from EuclideanDomain

nextItem: % -> Union(%, failed)

from StepThrough

norm: % -> GF

from FiniteRankAlgebra(GF, SparseUnivariatePolynomial GF)

norm: (%, PositiveInteger) -> %
normal?: % -> Boolean
normalElement: () -> %
one?: % -> Boolean

from MagmaWithUnit

opposite?: (%, %) -> Boolean

from AbelianMonoid

order: % -> OnePointCompletion PositiveInteger
order: % -> PositiveInteger
plenaryPower: (%, PositiveInteger) -> %
prime?: % -> Boolean
primeFrobenius: % -> %
primeFrobenius: (%, NonNegativeInteger) -> %
primitive?: % -> Boolean
primitiveElement: () -> %
principalIdeal: List % -> Record(coef: List %, generator: %)
quo: (%, %) -> %

from EuclideanDomain

random: () -> %

from Finite

rank: () -> PositiveInteger

from FramedModule GF

recip: % -> Union(%, failed)

from MagmaWithUnit

regularRepresentation: % -> Matrix GF

from FramedAlgebra(GF, SparseUnivariatePolynomial GF)

regularRepresentation: (%, Vector %) -> Matrix GF

from FiniteRankAlgebra(GF, SparseUnivariatePolynomial GF)

rem: (%, %) -> %

from EuclideanDomain

representationType: () -> Union(prime, polynomial, normal, cyclic)
represents: (Vector GF, Vector %) -> %

from FiniteRankAlgebra(GF, SparseUnivariatePolynomial GF)

represents: Vector GF -> %

from FramedModule GF

retract: % -> GF

from RetractableTo GF

retractIfCan: % -> Union(GF, failed)

from RetractableTo GF

rightPower: (%, NonNegativeInteger) -> %

from MagmaWithUnit

rightPower: (%, PositiveInteger) -> %

from Magma

rightRecip: % -> Union(%, failed)

from MagmaWithUnit

sample: %

from AbelianMonoid

size: () -> NonNegativeInteger

from Finite

sizeLess?: (%, %) -> Boolean

from EuclideanDomain

sizeMultiplication: () -> NonNegativeInteger

`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.

smaller?: (%, %) -> Boolean

from Comparable

solveLinearPolynomialEquation: (List SparseUnivariatePolynomial %, SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %, failed)
squareFree: % -> Factored %
squareFreePart: % -> %
squareFreePolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial %
subtractIfCan: (%, %) -> Union(%, failed)
tableForDiscreteLogarithm: Integer -> Table(PositiveInteger, NonNegativeInteger)
trace: % -> GF

from FiniteRankAlgebra(GF, SparseUnivariatePolynomial GF)

trace: (%, PositiveInteger) -> %
traceMatrix: () -> Matrix GF

from FramedAlgebra(GF, SparseUnivariatePolynomial GF)

traceMatrix: Vector % -> Matrix GF

from FiniteRankAlgebra(GF, SparseUnivariatePolynomial GF)

transcendenceDegree: () -> NonNegativeInteger

from ExtensionField GF

transcendent?: % -> Boolean

from ExtensionField GF

unit?: % -> Boolean

from EntireRing

unitCanonical: % -> %

from EntireRing

unitNormal: % -> Record(unit: %, canonical: %, associate: %)

from EntireRing

zero?: % -> Boolean

from AbelianMonoid

AbelianGroup

AbelianMonoid

AbelianSemiGroup

Algebra GF

BasicType

BiModule(%, %)

BiModule(GF, GF)

CancellationAbelianMonoid

canonicalsClosed

canonicalUnitNormal

CharacteristicNonZero

CharacteristicZero if GF has CharacteristicZero

CommutativeRing

CommutativeStar

Comparable

DifferentialRing

DivisionRing

EntireRing

EuclideanDomain

Field

FieldOfPrimeCharacteristic

Finite

FiniteFieldCategory

GcdDomain

Hashable

IntegralDomain

LeftOreRing

Magma

MagmaWithUnit

Module GF

Monoid

NonAssociativeRing

NonAssociativeRng

NonAssociativeSemiRing

NonAssociativeSemiRng

noZeroDivisors

PolynomialFactorizationExplicit

PrincipalIdealDomain

Ring

Rng

SemiGroup

SemiRing

SemiRng

SetCategory

StepThrough

TwoSidedRecip

UniqueFactorizationDomain

unitsKnown