# FiniteFieldCyclicGroupExtension(GF, extdeg)ΒΆ

FiniteFieldCyclicGroupExtension(`GF`, `n`) implements a extension of degree `n` over the ground field GF. Its elements are represented by powers of a primitive element, i.e. a generator of the multiplicative (cyclic) group. As primitive element we choose the root of the extension polynomial, which is created by createPrimitivePoly from FiniteFieldPolynomialPackage. Zech logarithms are stored in a table of size half of the field size, and use SingleInteger for representing field elements, hence, there are restrictions on the size of the field.

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: () -> %
getZechTable: () -> PrimitiveArray SingleInteger

`getZechTable()` returns the zech logarithm table of the field. This table is used to perform additions in the field quickly.

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

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