# FiniteFieldCategoryÂ¶

FiniteFieldCategory is the category of finite fields

0: %

from AbelianMonoid

1: %

from MagmaWithUnit

*: (%, %) -> %

from LeftModule %

*: (%, Fraction Integer) -> %
*: (Fraction Integer, %) -> %
*: (Integer, %) -> %

from AbelianGroup

*: (NonNegativeInteger, %) -> %

from AbelianMonoid

*: (PositiveInteger, %) -> %

from AbelianSemiGroup

+: (%, %) -> %

from AbelianSemiGroup

-: % -> %

from AbelianGroup

-: (%, %) -> %

from AbelianGroup

/: (%, %) -> %

from Field

=: (%, %) -> Boolean

from BasicType

^: (%, Integer) -> %

from DivisionRing

^: (%, NonNegativeInteger) -> %

from MagmaWithUnit

^: (%, PositiveInteger) -> %

from Magma

~=: (%, %) -> Boolean

from BasicType

annihilate?: (%, %) -> Boolean

from Rng

antiCommutator: (%, %) -> %
associates?: (%, %) -> Boolean

from EntireRing

associator: (%, %, %) -> %
characteristic: () -> NonNegativeInteger
charthRoot: % -> %

`charthRoot(a)` takes the characteristicâ€™th root of a. Note: such a root is alway defined in finite fields.

charthRoot: % -> Union(%, failed)
coerce: % -> %

from Algebra %

coerce: % -> OutputForm
coerce: Fraction Integer -> %
coerce: Integer -> %
commutator: (%, %) -> %
conditionP: Matrix % -> Union(Vector %, failed)
convert: % -> InputForm
createPrimitiveElement: () -> %

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

D: % -> %

from DifferentialRing

D: (%, NonNegativeInteger) -> %

from DifferentialRing

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

factor: % -> Factored %
factorPolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial %
factorsOfCyclicGroupSize: () -> List Record(factor: Integer, exponent: NonNegativeInteger)

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

factorSquareFreePolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial %
gcd: (%, %) -> %

from GcdDomain

gcd: List % -> %

from GcdDomain

gcdPolynomial: (SparseUnivariatePolynomial %, SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
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
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) -> %
prime?: % -> Boolean
primeFrobenius: % -> %
primeFrobenius: (%, NonNegativeInteger) -> %
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: %)
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)
squareFree: % -> Factored %
squareFreePart: % -> %
squareFreePolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial %
subtractIfCan: (%, %) -> Union(%, failed)
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

AbelianGroup

AbelianMonoid

AbelianSemiGroup

BasicType

BiModule(%, %)

CancellationAbelianMonoid

canonicalsClosed

canonicalUnitNormal

CharacteristicNonZero

CommutativeRing

CommutativeStar

Comparable

DifferentialRing

DivisionRing

EntireRing

EuclideanDomain

Field

FieldOfPrimeCharacteristic

Finite

GcdDomain

Hashable

IntegralDomain

LeftOreRing

Magma

MagmaWithUnit

Monoid

NonAssociativeRing

NonAssociativeRng

NonAssociativeSemiRing

NonAssociativeSemiRng

noZeroDivisors

PolynomialFactorizationExplicit

PrincipalIdealDomain

Ring

Rng

SemiGroup

SemiRing

SemiRng

SetCategory

StepThrough

TwoSidedRecip

UniqueFactorizationDomain

unitsKnown