FiniteFieldCyclicGroup(p, extdeg)

ffdoms.spad line 1962 [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.

* : (%, %) -> %
from Magma
* : (%, 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))
0 : () -> %
from AbelianMonoid
1 : () -> %
from MagmaWithUnit
= : (%, %) -> Boolean
from BasicType
D : % -> %
from DifferentialRing
D : (%, NonNegativeInteger) -> %
from DifferentialRing
Frobenius : % -> %
from ExtensionField(PrimeField(p))
Frobenius : (%, NonNegativeInteger) -> %
from ExtensionField(PrimeField(p))
^ : (%, Integer) -> %
from DivisionRing
^ : (%, NonNegativeInteger) -> %
from MagmaWithUnit
^ : (%, PositiveInteger) -> %
from Magma
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 : Fraction(Integer) -> %
from Algebra(Fraction(Integer))
coerce : Integer -> %
from NonAssociativeRing
coerce : PrimeField(p) -> %
from CoercibleFrom(PrimeField(p))
coerce : % -> OutputForm
from CoercibleTo(OutputForm)
commutator : (%, %) -> %
from NonAssociativeRng
conditionP : Matrix(%) -> Union(Vector(%), "failed")
from PolynomialFactorizationExplicit
convert : Vector(PrimeField(p)) -> %
from FramedModule(PrimeField(p))
convert : % -> InputForm
from ConvertibleTo(InputForm)
convert : % -> Vector(PrimeField(p))
from FramedModule(PrimeField(p))
coordinates : Vector(%) -> Matrix(PrimeField(p))
from FramedModule(PrimeField(p))
coordinates : (Vector(%), Vector(%)) -> Matrix(PrimeField(p))
from FiniteRankAlgebra(PrimeField(p), SparseUnivariatePolynomial(PrimeField(p)))
coordinates : % -> Vector(PrimeField(p))
from FramedModule(PrimeField(p))
coordinates : (%, Vector(%)) -> Vector(PrimeField(p))
from FiniteRankAlgebra(PrimeField(p), SparseUnivariatePolynomial(PrimeField(p)))
createNormalElement : () -> %
from FiniteAlgebraicExtensionField(PrimeField(p))
createPrimitiveElement : () -> %
from FiniteFieldCategory
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
factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%))
from PolynomialFactorizationExplicit
factorsOfCyclicGroupSize : () -> List(Record(factor : Integer, exponent : NonNegativeInteger))
from FiniteFieldCategory
gcd : (%, %) -> %
from GcdDomain
gcd : List(%) -> %
from GcdDomain
gcdPolynomial : (SparseUnivariatePolynomial(%), SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
from GcdDomain
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 Hashable
hashUpdate! : (HashState, %) -> HashState
from Hashable
inGroundField? : % -> Boolean
from ExtensionField(PrimeField(p))
index : PositiveInteger -> %
from Finite
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 : (%, PositiveInteger) -> SparseUnivariatePolynomial(%)
from FiniteAlgebraicExtensionField(PrimeField(p))
minimalPolynomial : % -> SparseUnivariatePolynomial(PrimeField(p))
from FiniteRankAlgebra(PrimeField(p), SparseUnivariatePolynomial(PrimeField(p)))
multiEuclidean : (List(%), %) -> Union(List(%), "failed")
from EuclideanDomain
nextItem : % -> Union(%, "failed")
from StepThrough
norm : (%, PositiveInteger) -> %
from FiniteAlgebraicExtensionField(PrimeField(p))
norm : % -> PrimeField(p)
from FiniteRankAlgebra(PrimeField(p), SparseUnivariatePolynomial(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
plenaryPower : (%, PositiveInteger) -> %
from NonAssociativeAlgebra(%)
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(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)) -> %
from FramedModule(PrimeField(p))
represents : (Vector(PrimeField(p)), Vector(%)) -> %
from FiniteRankAlgebra(PrimeField(p), SparseUnivariatePolynomial(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 : (%, PositiveInteger) -> %
from FiniteAlgebraicExtensionField(PrimeField(p))
trace : % -> PrimeField(p)
from FiniteRankAlgebra(PrimeField(p), SparseUnivariatePolynomial(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
~= : (%, %) -> Boolean
from BasicType

Module(Fraction(Integer))

PrincipalIdealDomain

NonAssociativeSemiRing

BiModule(%, %)

ConvertibleTo(InputForm)

Field

canonicalUnitNormal

Rng

AbelianMonoid

TwoSidedRecip

SemiRing

EntireRing

NonAssociativeAlgebra(Fraction(Integer))

CharacteristicNonZero

unitsKnown

Algebra(PrimeField(p))

noZeroDivisors

Module(PrimeField(p))

UniqueFactorizationDomain

Finite

SemiGroup

RightModule(Fraction(Integer))

Magma

GcdDomain

LeftModule(%)

NonAssociativeRing

CharacteristicZero

Algebra(%)

CommutativeRing

DifferentialRing

DivisionRing

IntegralDomain

LeftOreRing

NonAssociativeSemiRng

CancellationAbelianMonoid

EuclideanDomain

canonicalsClosed

FiniteAlgebraicExtensionField(PrimeField(p))

CommutativeStar

MagmaWithUnit

Comparable

RightModule(%)

ExtensionField(PrimeField(p))

Hashable

NonAssociativeAlgebra(PrimeField(p))

RightModule(PrimeField(p))

SemiRng

CoercibleFrom(PrimeField(p))

Module(%)

FramedModule(PrimeField(p))

FramedAlgebra(PrimeField(p), SparseUnivariatePolynomial(PrimeField(p)))

CoercibleTo(OutputForm)

Ring

FiniteRankAlgebra(PrimeField(p), SparseUnivariatePolynomial(PrimeField(p)))

Monoid

PolynomialFactorizationExplicit

FiniteFieldCategory

NonAssociativeAlgebra(%)

Algebra(Fraction(Integer))

BasicType

LeftModule(Fraction(Integer))

AbelianSemiGroup

SetCategory

RetractableTo(PrimeField(p))

BiModule(PrimeField(p), PrimeField(p))

LeftModule(PrimeField(p))

NonAssociativeRng

FieldOfPrimeCharacteristic

BiModule(Fraction(Integer), Fraction(Integer))

StepThrough

AbelianGroup