ModMonic(R, Rep)

modmon.spad line 1 [edit on github]

This domain implements quotient of ring of univariate polynomials by ideal generated by modulus polynomial. Modulus must be monic. Before performing any operations you need to set modulus, subsequent operations use this modulus.

* : (%, %) -> %
from Magma
* : (R, %) -> %
from LeftModule(R)
* : (Integer, %) -> %
from AbelianGroup
* : (NonNegativeInteger, %) -> %
from AbelianMonoid
* : (PositiveInteger, %) -> %
from AbelianSemiGroup
+ : (%, %) -> %
from AbelianSemiGroup
- : % -> %
from AbelianGroup
- : (%, %) -> %
from AbelianGroup
0 : () -> %
from AbelianMonoid
1 : () -> %
from MagmaWithUnit
= : (%, %) -> Boolean
from BasicType
UnVectorise : Vector(R) -> %

UnVectorise(v) converts vector of coefficients to %.

Vectorise : % -> Vector(R)

Vectorise(x) returns vector of coefficients of lift(x).

^ : (%, NonNegativeInteger) -> %
from MagmaWithUnit
^ : (%, PositiveInteger) -> %
from Magma
annihilate? : (%, %) -> Boolean
from Rng
antiCommutator : (%, %) -> %
from NonAssociativeSemiRng
associator : (%, %, %) -> %
from NonAssociativeRng
characteristic : () -> NonNegativeInteger
from NonAssociativeRing
coerce : % -> % if R has CommutativeRing
from Algebra(%)
coerce : R -> %
from CoercibleFrom(R)
coerce : Integer -> %
from NonAssociativeRing
coerce : % -> OutputForm
from CoercibleTo(OutputForm)
commutator : (%, %) -> %
from NonAssociativeRng
convert : % -> InputForm if R has Finite
from ConvertibleTo(InputForm)
enumerate : () -> List(%) if R has Finite
from Finite
frobenius : % -> % if R has FiniteFieldCategory

frobenius(x) computes x^q where q is the size of R.

hash : % -> SingleInteger if R has Finite
from Hashable
hashUpdate! : (HashState, %) -> HashState if R has Finite
from Hashable
index : PositiveInteger -> % if R has Finite
from Finite
latex : % -> String
from SetCategory
leftPower : (%, NonNegativeInteger) -> %
from MagmaWithUnit
leftPower : (%, PositiveInteger) -> %
from Magma
leftRecip : % -> Union(%, "failed")
from MagmaWithUnit
lift : % -> Rep

lift(x) returns x as a polynomial.

lookup : % -> PositiveInteger if R has Finite
from Finite
modulus : () -> Rep

modulus() returns current modulus.

one? : % -> Boolean
from MagmaWithUnit
opposite? : (%, %) -> Boolean
from AbelianMonoid
plenaryPower : (%, PositiveInteger) -> % if R has CommutativeRing
from NonAssociativeAlgebra(%)
pow : () -> PrimitiveArray(%)

pow() returns precomputed array of powers of variable modulo current modulus from defree d up to degree 2*d -1, where d is degree of the modulus. Note: element at index 0 is variable to power d.

random : () -> % if R has Finite
from Finite
recip : % -> Union(%, "failed")
from MagmaWithUnit
reduce : Rep -> %

reduce(x) reduces x modulo current modulus.

rightPower : (%, NonNegativeInteger) -> %
from MagmaWithUnit
rightPower : (%, PositiveInteger) -> %
from Magma
rightRecip : % -> Union(%, "failed")
from MagmaWithUnit
sample : () -> %
from AbelianMonoid
setPoly : Rep -> Rep

setPoly(x) sets modulus for subsequent operations.

size : () -> NonNegativeInteger if R has Finite
from Finite
smaller? : (%, %) -> Boolean if R has Finite
from Comparable
subtractIfCan : (%, %) -> Union(%, "failed")
from CancellationAbelianMonoid
zero? : % -> Boolean
from AbelianMonoid
~= : (%, %) -> Boolean
from BasicType

Comparable

ConvertibleTo(InputForm)

CoercibleFrom(R)

RightModule(%)

Monoid

Algebra(%)

AbelianMonoid

CancellationAbelianMonoid

MagmaWithUnit

NonAssociativeRing

CommutativeStar

LeftModule(%)

LeftModule(R)

Finite

Module(%)

SetCategory

CoercibleTo(OutputForm)

Rng

CommutativeRing

TwoSidedRecip

Magma

SemiGroup

BiModule(%, %)

unitsKnown

AbelianGroup

AbelianSemiGroup

NonAssociativeSemiRing

NonAssociativeAlgebra(%)

NonAssociativeRng

Ring

SemiRng

NonAssociativeSemiRng

Hashable

BasicType

SemiRing