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