FiniteFieldCyclicGroup(p, extdeg)ΒΆ

ffcg.spad line 348 [edit on github]

FiniteFieldCyclicGroup(p, n) implements a finite field extension of degee n over the prime field with p elements. 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. The 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

*: (%, PrimeField p) -> %

from RightModule PrimeField p

*: (Fraction Integer, %) -> %

from LeftModule Fraction Integer

*: (Integer, %) -> %

from AbelianGroup

*: (NonNegativeInteger, %) -> %

from AbelianMonoid

*: (PositiveInteger, %) -> %

from AbelianSemiGroup

*: (PrimeField p, %) -> %

from LeftModule PrimeField p

+: (%, %) -> %

from AbelianSemiGroup

-: % -> %

from AbelianGroup

-: (%, %) -> %

from AbelianGroup

/: (%, %) -> %

from Field

/: (%, PrimeField p) -> %

from ExtensionField PrimeField p

=: (%, %) -> Boolean

from BasicType

^: (%, Integer) -> %

from DivisionRing

^: (%, NonNegativeInteger) -> %

from MagmaWithUnit

^: (%, PositiveInteger) -> %

from Magma

~=: (%, %) -> Boolean

from BasicType

algebraic?: % -> Boolean

from ExtensionField PrimeField p

annihilate?: (%, %) -> Boolean

from Rng

antiCommutator: (%, %) -> %

from NonAssociativeSemiRng

associates?: (%, %) -> Boolean

from EntireRing

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

from NonAssociativeRng

basis: () -> Vector %

from FramedModule PrimeField p

basis: PositiveInteger -> Vector %

from FiniteAlgebraicExtensionField PrimeField p

characteristic: () -> NonNegativeInteger

from NonAssociativeRing

characteristicPolynomial: % -> SparseUnivariatePolynomial PrimeField p

from FiniteRankAlgebra(PrimeField p, SparseUnivariatePolynomial PrimeField p)

charthRoot: % -> %

from FiniteFieldCategory

charthRoot: % -> Union(%, failed)

from CharacteristicNonZero

coerce: % -> %

from Algebra %

coerce: % -> OutputForm

from CoercibleTo OutputForm

coerce: Fraction Integer -> %

from Algebra Fraction Integer

coerce: Integer -> %

from NonAssociativeRing

coerce: PrimeField p -> %

from CoercibleFrom PrimeField p

commutator: (%, %) -> %

from NonAssociativeRng

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

from PolynomialFactorizationExplicit

convert: % -> InputForm

from ConvertibleTo InputForm

convert: % -> Vector PrimeField p

from FramedModule PrimeField p

convert: Vector PrimeField p -> %

from FramedModule PrimeField p

coordinates: % -> Vector PrimeField p

from FramedModule PrimeField p

coordinates: (%, Vector %) -> Vector PrimeField p

from FiniteRankAlgebra(PrimeField p, SparseUnivariatePolynomial PrimeField p)

coordinates: (Vector %, Vector %) -> Matrix PrimeField p

from FiniteRankAlgebra(PrimeField p, SparseUnivariatePolynomial PrimeField p)

coordinates: Vector % -> Matrix PrimeField p

from FramedModule PrimeField p

createNormalElement: () -> %

from FiniteAlgebraicExtensionField PrimeField p

createPrimitiveElement: () -> %

from FiniteFieldCategory

D: % -> %

from DifferentialRing

D: (%, NonNegativeInteger) -> %

from DifferentialRing

definingPolynomial: () -> SparseUnivariatePolynomial PrimeField p

from FiniteAlgebraicExtensionField PrimeField p

degree: % -> OnePointCompletion PositiveInteger

from ExtensionField PrimeField p

degree: % -> PositiveInteger

from FiniteAlgebraicExtensionField PrimeField p

differentiate: % -> %

from DifferentialRing

differentiate: (%, NonNegativeInteger) -> %

from DifferentialRing

discreteLog: % -> NonNegativeInteger

from FiniteFieldCategory

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

from FieldOfPrimeCharacteristic

discriminant: () -> PrimeField p

from FramedAlgebra(PrimeField p, SparseUnivariatePolynomial PrimeField p)

discriminant: Vector % -> PrimeField p

from FiniteRankAlgebra(PrimeField p, SparseUnivariatePolynomial PrimeField p)

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 PrimeField p

extensionDegree: () -> PositiveInteger

from FiniteAlgebraicExtensionField PrimeField p

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 PrimeField p

Frobenius: (%, NonNegativeInteger) -> %

from ExtensionField PrimeField p

gcd: (%, %) -> %

from GcdDomain

gcd: List % -> %

from GcdDomain

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

from PolynomialFactorizationExplicit

generator: () -> %

from FiniteAlgebraicExtensionField PrimeField p

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 PrimeField p

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

from FiniteAlgebraicExtensionField PrimeField p

linearAssociatedLog: % -> SparseUnivariatePolynomial PrimeField p

from FiniteAlgebraicExtensionField PrimeField p

linearAssociatedLog: (%, %) -> Union(SparseUnivariatePolynomial PrimeField p, failed)

from FiniteAlgebraicExtensionField PrimeField p

linearAssociatedOrder: % -> SparseUnivariatePolynomial PrimeField p

from FiniteAlgebraicExtensionField PrimeField p

lookup: % -> PositiveInteger

from Finite

minimalPolynomial: % -> SparseUnivariatePolynomial PrimeField p

from FiniteRankAlgebra(PrimeField p, SparseUnivariatePolynomial PrimeField p)

minimalPolynomial: (%, PositiveInteger) -> SparseUnivariatePolynomial %

from FiniteAlgebraicExtensionField PrimeField p

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

from EuclideanDomain

nextItem: % -> Union(%, failed)

from StepThrough

norm: % -> PrimeField p

from FiniteRankAlgebra(PrimeField p, SparseUnivariatePolynomial PrimeField p)

norm: (%, PositiveInteger) -> %

from FiniteAlgebraicExtensionField PrimeField p

normal?: % -> Boolean

from FiniteAlgebraicExtensionField PrimeField p

normalElement: () -> %

from FiniteAlgebraicExtensionField PrimeField p

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 FiniteRankAlgebra(PrimeField p, SparseUnivariatePolynomial PrimeField p)

recip: % -> Union(%, failed)

from MagmaWithUnit

regularRepresentation: % -> Matrix PrimeField p

from FramedAlgebra(PrimeField p, SparseUnivariatePolynomial PrimeField p)

regularRepresentation: (%, Vector %) -> Matrix PrimeField p

from FiniteRankAlgebra(PrimeField p, SparseUnivariatePolynomial PrimeField p)

rem: (%, %) -> %

from EuclideanDomain

representationType: () -> Union(prime, polynomial, normal, cyclic)

from FiniteFieldCategory

represents: (Vector PrimeField p, Vector %) -> %

from FiniteRankAlgebra(PrimeField p, SparseUnivariatePolynomial PrimeField p)

represents: Vector PrimeField p -> %

from FramedModule PrimeField p

retract: % -> PrimeField p

from RetractableTo PrimeField p

retractIfCan: % -> Union(PrimeField p, failed)

from RetractableTo PrimeField p

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: % -> PrimeField p

from FiniteRankAlgebra(PrimeField p, SparseUnivariatePolynomial PrimeField p)

trace: (%, PositiveInteger) -> %

from FiniteAlgebraicExtensionField PrimeField p

traceMatrix: () -> Matrix PrimeField p

from FramedAlgebra(PrimeField p, SparseUnivariatePolynomial PrimeField p)

traceMatrix: Vector % -> Matrix PrimeField p

from FiniteRankAlgebra(PrimeField p, SparseUnivariatePolynomial PrimeField p)

transcendenceDegree: () -> NonNegativeInteger

from ExtensionField PrimeField p

transcendent?: % -> Boolean

from ExtensionField PrimeField p

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 PrimeField p

BasicType

BiModule(%, %)

BiModule(Fraction Integer, Fraction Integer)

BiModule(PrimeField p, PrimeField p)

CancellationAbelianMonoid

canonicalsClosed

canonicalUnitNormal

CharacteristicNonZero

CharacteristicZero if PrimeField p has CharacteristicZero

CoercibleFrom PrimeField p

CoercibleTo OutputForm

CommutativeRing

CommutativeStar

Comparable

ConvertibleTo InputForm

DifferentialRing

DivisionRing

EntireRing

EuclideanDomain

ExtensionField PrimeField p

Field

FieldOfPrimeCharacteristic

Finite

FiniteAlgebraicExtensionField PrimeField p

FiniteFieldCategory

FiniteRankAlgebra(PrimeField p, SparseUnivariatePolynomial PrimeField p)

FramedAlgebra(PrimeField p, SparseUnivariatePolynomial PrimeField p)

FramedModule PrimeField p

GcdDomain

IntegralDomain

LeftModule %

LeftModule Fraction Integer

LeftModule PrimeField p

LeftOreRing

Magma

MagmaWithUnit

Module %

Module Fraction Integer

Module PrimeField p

Monoid

NonAssociativeRing

NonAssociativeRng

NonAssociativeSemiRing

NonAssociativeSemiRng

noZeroDivisors

PolynomialFactorizationExplicit

PrincipalIdealDomain

RetractableTo PrimeField p

RightModule %

RightModule Fraction Integer

RightModule PrimeField p

Ring

Rng

SemiGroup

SemiRing

SemiRng

SetCategory

StepThrough

TwoSidedRecip

UniqueFactorizationDomain

unitsKnown