FiniteFieldCategory

ffcat.spad line 426 [edit on github]

FiniteFieldCategory is the category of finite fields

* : (%, %) -> %
from Magma
* : (%, Fraction(Integer)) -> %
from RightModule(Fraction(Integer))
* : (Fraction(Integer), %) -> %
from LeftModule(Fraction(Integer))
* : (Integer, %) -> %
from AbelianGroup
* : (NonNegativeInteger, %) -> %
from AbelianMonoid
* : (PositiveInteger, %) -> %
from AbelianSemiGroup
+ : (%, %) -> %
from AbelianSemiGroup
- : % -> %
from AbelianGroup
- : (%, %) -> %
from AbelianGroup
/ : (%, %) -> %
from Field
0 : () -> %
from AbelianMonoid
1 : () -> %
from MagmaWithUnit
= : (%, %) -> Boolean
from BasicType
D : % -> %
from DifferentialRing
D : (%, NonNegativeInteger) -> %
from DifferentialRing
^ : (%, Integer) -> %
from DivisionRing
^ : (%, NonNegativeInteger) -> %
from MagmaWithUnit
^ : (%, PositiveInteger) -> %
from Magma
annihilate? : (%, %) -> Boolean
from Rng
antiCommutator : (%, %) -> %
from NonAssociativeSemiRng
associates? : (%, %) -> Boolean
from EntireRing
associator : (%, %, %) -> %
from NonAssociativeRng
characteristic : () -> NonNegativeInteger
from NonAssociativeRing
charthRoot : % -> %

charthRoot(a) takes the characteristic'th root of a. Note: such a root is always defined in finite fields.

charthRoot : % -> Union(%, "failed")
from PolynomialFactorizationExplicit
coerce : % -> %
from Algebra(%)
coerce : Fraction(Integer) -> %
from Algebra(Fraction(Integer))
coerce : Integer -> %
from NonAssociativeRing
coerce : % -> OutputForm
from CoercibleTo(OutputForm)
commutator : (%, %) -> %
from NonAssociativeRng
conditionP : Matrix(%) -> Union(Vector(%), "failed")
from PolynomialFactorizationExplicit
convert : % -> InputForm
from ConvertibleTo(InputForm)
createPrimitiveElement : () -> %

createPrimitiveElement() computes a generator of the (cyclic) multiplicative group of the field.

differentiate : % -> %
from DifferentialRing
differentiate : (%, NonNegativeInteger) -> %
from DifferentialRing
discreteLog : % -> NonNegativeInteger

discreteLog(a) computes the discrete logarithm of a with respect to primitiveElement() of the field.

discreteLog : (%, %) -> Union(NonNegativeInteger, "failed")
from FieldOfPrimeCharacteristic
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
factor : % -> Factored(%)
from UniqueFactorizationDomain
factorPolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%))
from PolynomialFactorizationExplicit
factorSquareFreePolynomial : SparseUnivariatePolynomial(%) -> Factored(SparseUnivariatePolynomial(%))
from PolynomialFactorizationExplicit
factorsOfCyclicGroupSize : () -> List(Record(factor : Integer, exponent : NonNegativeInteger))

factorsOfCyclicGroupSize() returns the factorization of size()-1

gcd : (%, %) -> %
from GcdDomain
gcd : List(%) -> %
from GcdDomain
gcdPolynomial : (SparseUnivariatePolynomial(%), SparseUnivariatePolynomial(%)) -> SparseUnivariatePolynomial(%)
from PolynomialFactorizationExplicit
hash : % -> SingleInteger
from Hashable
hashUpdate! : (HashState, %) -> HashState
from Hashable
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
lookup : % -> PositiveInteger
from Finite
multiEuclidean : (List(%), %) -> Union(List(%), "failed")
from EuclideanDomain
nextItem : % -> Union(%, "failed")
from StepThrough
one? : % -> Boolean
from MagmaWithUnit
opposite? : (%, %) -> Boolean
from AbelianMonoid
order : % -> OnePointCompletion(PositiveInteger)
from FieldOfPrimeCharacteristic
order : % -> PositiveInteger

order(b) computes the order of an element b in the multiplicative group of the field. Error: if b equals 0.

plenaryPower : (%, PositiveInteger) -> %
from NonAssociativeAlgebra(%)
prime? : % -> Boolean
from UniqueFactorizationDomain
primeFrobenius : % -> %
from FieldOfPrimeCharacteristic
primeFrobenius : (%, NonNegativeInteger) -> %
from FieldOfPrimeCharacteristic
primitive? : % -> Boolean

primitive?(b) tests whether the element b is a generator of the (cyclic) multiplicative group of the field, i.e. is a primitive element. Implementation Note: see ch.IX.1.3, th.2 in D. Lipson.

primitiveElement : () -> %

primitiveElement() returns a primitive element stored in a global variable in the domain. At first call, the primitive element is computed by calling createPrimitiveElement.

principalIdeal : List(%) -> Record(coef : List(%), generator : %)
from PrincipalIdealDomain
quo : (%, %) -> %
from EuclideanDomain
random : () -> %
from Finite
recip : % -> Union(%, "failed")
from MagmaWithUnit
rem : (%, %) -> %
from EuclideanDomain
representationType : () -> Union("prime", "polynomial", "normal", "cyclic")

representationType() returns the type of the representation, one of: prime, polynomial, normal, or cyclic.

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)

tableForDiscreteLogarithm(a, n) returns a table of the discrete logarithms of a^0 up to a^(n-1) which, called with key lookup(a^i) returns i for i in 0..n-1. Error: if not called for prime divisors of order of multiplicative group.

unit? : % -> Boolean
from EntireRing
unitCanonical : % -> %
from EntireRing
unitNormal : % -> Record(unit : %, canonical : %, associate : %)
from EntireRing
zero? : % -> Boolean
from AbelianMonoid
~= : (%, %) -> Boolean
from BasicType

IntegralDomain

Module(Fraction(Integer))

Comparable

ConvertibleTo(InputForm)

NonAssociativeSemiRng

Algebra(%)

RightModule(%)

Monoid

LeftModule(Fraction(Integer))

GcdDomain

UniqueFactorizationDomain

EuclideanDomain

CancellationAbelianMonoid

CharacteristicNonZero

NonAssociativeRing

MagmaWithUnit

RightModule(Fraction(Integer))

StepThrough

AbelianSemiGroup

LeftModule(%)

canonicalUnitNormal

CommutativeStar

Module(%)

Algebra(Fraction(Integer))

SetCategory

LeftOreRing

CoercibleTo(OutputForm)

SemiRing

Rng

Field

CommutativeRing

PolynomialFactorizationExplicit

TwoSidedRecip

Magma

PrincipalIdealDomain

SemiGroup

DivisionRing

BiModule(%, %)

AbelianGroup

AbelianMonoid

noZeroDivisors

NonAssociativeSemiRing

canonicalsClosed

NonAssociativeAlgebra(%)

NonAssociativeAlgebra(Fraction(Integer))

FieldOfPrimeCharacteristic

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

DifferentialRing

NonAssociativeRng

unitsKnown

Ring

SemiRng

EntireRing

Hashable

Finite

BasicType