# InnerPrimeField pΒΆ

InnerPrimeField(p) implements the field with p elements by using IntegerMod p. Note: argument p MUST be a prime (this domain does not check). See PrimeField for a domain that does check. In addition to the inherited operations of IntegerMod p, the domain provides exploits the structure of the cyclic group of its invertible elements. It stores a primitive element w, i.a. generator of this group and it stores a logarithm table for w as soon as this is required. sqrt was added in 2018.

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

algebraic?: % -> Boolean

from ExtensionField %

annihilate?: (%, %) -> Boolean

from Rng

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

from EntireRing

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

from FramedModule %

basis: PositiveInteger -> Vector %
characteristic: () -> NonNegativeInteger
characteristicPolynomial: % -> SparseUnivariatePolynomial %
charthRoot: % -> %
charthRoot: % -> Union(%, failed)
coerce: % -> %

from Algebra %

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

from FramedModule %

convert: Vector % -> %

from FramedModule %

coordinates: % -> Vector %

from FramedModule %

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

from FramedModule %

createNormalElement: () -> %
createPrimitiveElement: () -> %
D: % -> %

from DifferentialRing

D: (%, NonNegativeInteger) -> %

from DifferentialRing

definingPolynomial: () -> SparseUnivariatePolynomial %
degree: % -> OnePointCompletion PositiveInteger

from ExtensionField %

degree: % -> PositiveInteger
differentiate: % -> %

from DifferentialRing

differentiate: (%, NonNegativeInteger) -> %

from DifferentialRing

discreteLog: % -> NonNegativeInteger
discreteLog: (%, %) -> Union(NonNegativeInteger, failed)
discriminant: () -> %
discriminant: Vector % -> %
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

extensionDegree: () -> OnePointCompletion PositiveInteger

from ExtensionField %

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

from ExtensionField %

Frobenius: (%, NonNegativeInteger) -> %

from ExtensionField %

gcd: (%, %) -> %

from GcdDomain

gcd: List % -> %

from GcdDomain

gcdPolynomial: (SparseUnivariatePolynomial %, SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial %
generator: () -> %
hash: % -> SingleInteger

from SetCategory

hashUpdate!: (HashState, %) -> HashState

from SetCategory

index: PositiveInteger -> %

from Finite

inGroundField?: % -> Boolean

from ExtensionField %

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 %) -> %
linearAssociatedLog: % -> SparseUnivariatePolynomial %
linearAssociatedLog: (%, %) -> Union(SparseUnivariatePolynomial %, failed)
linearAssociatedOrder: % -> SparseUnivariatePolynomial %
lookup: % -> PositiveInteger

from Finite

minimalPolynomial: % -> SparseUnivariatePolynomial %
minimalPolynomial: (%, PositiveInteger) -> SparseUnivariatePolynomial %
multiEuclidean: (List %, %) -> Union(List %, failed)

from EuclideanDomain

nextItem: % -> Union(%, failed)

from StepThrough

norm: % -> %
norm: (%, PositiveInteger) -> %
normal?: % -> Boolean
normalElement: () -> %
one?: % -> Boolean

from MagmaWithUnit

opposite?: (%, %) -> Boolean

from AbelianMonoid

order: % -> OnePointCompletion PositiveInteger
order: % -> PositiveInteger
prime?: % -> Boolean
primeFrobenius: % -> %
primeFrobenius: (%, NonNegativeInteger) -> %
primitive?: % -> Boolean
primitiveElement: () -> %
principalIdeal: List % -> Record(coef: List %, generator: %)

quadraticNonResidue() computes the smallest non negative integer, which represents a quadratic non residue.

quo: (%, %) -> %

from EuclideanDomain

random: () -> %

from Finite

rank: () -> PositiveInteger

from FramedModule %

recip: % -> Union(%, failed)

from MagmaWithUnit

regularRepresentation: % -> Matrix %
regularRepresentation: (%, Vector %) -> Matrix %
rem: (%, %) -> %

from EuclideanDomain

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

from FramedModule %

retract: % -> %

from RetractableTo %

retractIfCan: % -> Union(%, failed)

from RetractableTo %

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

sqrt(x) computes one y such that y^2 = x, error if there is no square root, i.e. jacobi(x,p) = -1. Implementation according to http://www.staff.uni-mainz.de/pommeren/Cryptology/Asymmetric/5_NTh/

squareFree: % -> Factored %
squareFreePart: % -> %
squareFreePolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial %
subtractIfCan: (%, %) -> Union(%, failed)
tableForDiscreteLogarithm: Integer -> Table(PositiveInteger, NonNegativeInteger)
trace: % -> %
trace: (%, PositiveInteger) -> %
traceMatrix: () -> Matrix %
traceMatrix: Vector % -> Matrix %
transcendenceDegree: () -> NonNegativeInteger

from ExtensionField %

transcendent?: % -> Boolean

from ExtensionField %

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

FiniteFieldCategory

GcdDomain

IntegralDomain

LeftOreRing

Magma

MagmaWithUnit

Monoid

NonAssociativeRing

NonAssociativeRng

NonAssociativeSemiRing

NonAssociativeSemiRng

noZeroDivisors

PolynomialFactorizationExplicit

PrincipalIdealDomain

Ring

Rng

SemiGroup

SemiRing

SemiRng

SetCategory

StepThrough

TwoSidedRecip

UniqueFactorizationDomain

unitsKnown