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.

0: %

from AbelianMonoid

1: %

from MagmaWithUnit

*: (%, %) -> %

from Magma

*: (Integer, %) -> %

from AbelianGroup

*: (NonNegativeInteger, %) -> %

from AbelianMonoid

*: (PositiveInteger, %) -> %

from AbelianSemiGroup

*: (R, %) -> %

from LeftModule R

+: (%, %) -> %

from AbelianSemiGroup

-: % -> %

from AbelianGroup

-: (%, %) -> %

from AbelianGroup

=: (%, %) -> Boolean

from BasicType

^: (%, NonNegativeInteger) -> %

from MagmaWithUnit

^: (%, PositiveInteger) -> %

from Magma

~=: (%, %) -> Boolean

from BasicType

annihilate?: (%, %) -> Boolean

from Rng

antiCommutator: (%, %) -> %

from NonAssociativeSemiRng

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

from NonAssociativeRng

characteristic: () -> NonNegativeInteger

from NonAssociativeRing

coerce: % -> % if R has CommutativeRing

from Algebra %

coerce: % -> OutputForm

from CoercibleTo OutputForm

coerce: Integer -> %

from NonAssociativeRing

coerce: R -> %

from CoercibleFrom R

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

UnVectorise: Vector R -> %

UnVectorise(v) converts vector of coefficients to \%.

Vectorise: % -> Vector R

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

zero?: % -> Boolean

from AbelianMonoid

AbelianGroup

AbelianMonoid

AbelianSemiGroup

Algebra % if R has CommutativeRing

BasicType

BiModule(%, %)

CancellationAbelianMonoid

CoercibleFrom R

CoercibleTo OutputForm

CommutativeRing if R has CommutativeRing

CommutativeStar if R has CommutativeRing

Comparable if R has Finite

ConvertibleTo InputForm if R has Finite

Finite if R has Finite

Hashable if R has Finite

LeftModule %

LeftModule R

Magma

MagmaWithUnit

Module % if R has CommutativeRing

Monoid

NonAssociativeAlgebra % if R has CommutativeRing

NonAssociativeRing

NonAssociativeRng

NonAssociativeSemiRing

NonAssociativeSemiRng

RightModule %

Ring

Rng

SemiGroup

SemiRing

SemiRng

SetCategory

TwoSidedRecip if R has CommutativeRing

unitsKnown