FiniteFieldCyclicGroupExtension(GF, extdeg)ΒΆ

ffcg.spad line 308 [edit on github]

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) -> %

from RightModule Fraction Integer

*: (%, GF) -> %

from RightModule GF

*: (Fraction Integer, %) -> %

from LeftModule 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: (%, %) -> %

from NonAssociativeSemiRng

associates?: (%, %) -> Boolean

from EntireRing

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

from NonAssociativeRng

basis: () -> Vector %

from FramedModule GF

basis: PositiveInteger -> Vector %

from FiniteAlgebraicExtensionField GF

characteristic: () -> NonNegativeInteger

from NonAssociativeRing

characteristicPolynomial: % -> SparseUnivariatePolynomial GF

from FiniteRankAlgebra(GF, SparseUnivariatePolynomial GF)

charthRoot: % -> %

from FiniteFieldCategory

charthRoot: % -> Union(%, failed)

from CharacteristicNonZero

coerce: % -> %

from Algebra %

coerce: % -> OutputForm

from CoercibleTo OutputForm

coerce: Fraction Integer -> %

from Algebra Fraction Integer

coerce: GF -> %

from CoercibleFrom GF

coerce: Integer -> %

from NonAssociativeRing

commutator: (%, %) -> %

from NonAssociativeRng

conditionP: Matrix % -> Union(Vector %, failed)

from PolynomialFactorizationExplicit

convert: % -> InputForm

from ConvertibleTo 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: () -> %

from FiniteAlgebraicExtensionField GF

createPrimitiveElement: () -> %

from FiniteFieldCategory

D: % -> %

from DifferentialRing

D: (%, NonNegativeInteger) -> %

from DifferentialRing

definingPolynomial: () -> SparseUnivariatePolynomial GF

from FiniteAlgebraicExtensionField GF

degree: % -> OnePointCompletion PositiveInteger

from ExtensionField GF

degree: % -> PositiveInteger

from FiniteAlgebraicExtensionField GF

differentiate: % -> %

from DifferentialRing

differentiate: (%, NonNegativeInteger) -> %

from DifferentialRing

discreteLog: % -> NonNegativeInteger

from FiniteFieldCategory

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

from FieldOfPrimeCharacteristic

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)

from PrincipalIdealDomain

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

from FiniteAlgebraicExtensionField GF

factor: % -> Factored %

from UniqueFactorizationDomain

factorPolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial %

from PolynomialFactorizationExplicit

factorsOfCyclicGroupSize: () -> List Record(factor: Integer, exponent: NonNegativeInteger)

from FiniteFieldCategory

factorSquareFreePolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial %

from PolynomialFactorizationExplicit

Frobenius: % -> %

from ExtensionField GF

Frobenius: (%, NonNegativeInteger) -> %

from ExtensionField GF

gcd: (%, %) -> %

from GcdDomain

gcd: List % -> %

from GcdDomain

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

from GcdDomain

generator: () -> %

from FiniteAlgebraicExtensionField GF

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 SetCategory

hashUpdate!: (HashState, %) -> HashState

from SetCategory

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) -> %

from FiniteAlgebraicExtensionField GF

linearAssociatedLog: % -> SparseUnivariatePolynomial GF

from FiniteAlgebraicExtensionField GF

linearAssociatedLog: (%, %) -> Union(SparseUnivariatePolynomial GF, failed)

from FiniteAlgebraicExtensionField GF

linearAssociatedOrder: % -> SparseUnivariatePolynomial GF

from FiniteAlgebraicExtensionField GF

lookup: % -> PositiveInteger

from Finite

minimalPolynomial: % -> SparseUnivariatePolynomial GF

from FiniteRankAlgebra(GF, SparseUnivariatePolynomial GF)

minimalPolynomial: (%, PositiveInteger) -> SparseUnivariatePolynomial %

from FiniteAlgebraicExtensionField GF

multiEuclidean: (List %, %) -> Union(List %, failed)

from EuclideanDomain

nextItem: % -> Union(%, failed)

from StepThrough

norm: % -> GF

from FiniteRankAlgebra(GF, SparseUnivariatePolynomial GF)

norm: (%, PositiveInteger) -> %

from FiniteAlgebraicExtensionField GF

normal?: % -> Boolean

from FiniteAlgebraicExtensionField GF

normalElement: () -> %

from FiniteAlgebraicExtensionField GF

one?: % -> Boolean

from MagmaWithUnit

opposite?: (%, %) -> Boolean

from AbelianMonoid

order: % -> OnePointCompletion PositiveInteger

from FieldOfPrimeCharacteristic

order: % -> PositiveInteger

from FiniteFieldCategory

prime?: % -> Boolean

from UniqueFactorizationDomain

primeFrobenius: % -> %

from FieldOfPrimeCharacteristic

primeFrobenius: (%, NonNegativeInteger) -> %

from FieldOfPrimeCharacteristic

primitive?: % -> Boolean

from FiniteFieldCategory

primitiveElement: () -> %

from FiniteFieldCategory

principalIdeal: List % -> Record(coef: List %, generator: %)

from PrincipalIdealDomain

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)

from FiniteFieldCategory

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)

from PolynomialFactorizationExplicit

squareFree: % -> Factored %

from UniqueFactorizationDomain

squareFreePart: % -> %

from UniqueFactorizationDomain

squareFreePolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial %

from PolynomialFactorizationExplicit

subtractIfCan: (%, %) -> Union(%, failed)

from CancellationAbelianMonoid

tableForDiscreteLogarithm: Integer -> Table(PositiveInteger, NonNegativeInteger)

from FiniteFieldCategory

trace: % -> GF

from FiniteRankAlgebra(GF, SparseUnivariatePolynomial GF)

trace: (%, PositiveInteger) -> %

from FiniteAlgebraicExtensionField GF

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 %

Algebra Fraction Integer

Algebra GF

BasicType

BiModule(%, %)

BiModule(Fraction Integer, Fraction Integer)

BiModule(GF, GF)

CancellationAbelianMonoid

canonicalsClosed

canonicalUnitNormal

CharacteristicNonZero

CharacteristicZero if GF has CharacteristicZero

CoercibleFrom GF

CoercibleTo OutputForm

CommutativeRing

CommutativeStar

Comparable

ConvertibleTo InputForm

DifferentialRing

DivisionRing

EntireRing

EuclideanDomain

ExtensionField GF

Field

FieldOfPrimeCharacteristic

Finite

FiniteAlgebraicExtensionField GF

FiniteFieldCategory

FiniteRankAlgebra(GF, SparseUnivariatePolynomial GF)

FramedAlgebra(GF, SparseUnivariatePolynomial GF)

FramedModule GF

GcdDomain

IntegralDomain

LeftModule %

LeftModule Fraction Integer

LeftModule GF

LeftOreRing

Magma

MagmaWithUnit

Module %

Module Fraction Integer

Module GF

Monoid

NonAssociativeRing

NonAssociativeRng

NonAssociativeSemiRing

NonAssociativeSemiRng

noZeroDivisors

PolynomialFactorizationExplicit

PrincipalIdealDomain

RetractableTo GF

RightModule %

RightModule Fraction Integer

RightModule GF

Ring

Rng

SemiGroup

SemiRing

SemiRng

SetCategory

StepThrough

TwoSidedRecip

UniqueFactorizationDomain

unitsKnown