# SparseMultivariatePolynomial(R, VarSet)ΒΆ

multpoly.spad line 79 [edit on github]

R: Join(SemiRng, AbelianMonoid)

VarSet: OrderedSet

This type is the basic representation of sparse recursive multivariate polynomials. It is parameterized by the coefficient ring and the variable set which may be infinite. The variable ordering is determined by the variable set parameter. The coefficient ring may be non-commutative, but the variables are assumed to commute.

- 0: %
from AbelianMonoid

- 1: % if R has SemiRing
from MagmaWithUnit

- *: (%, %) -> %
from LeftModule %

- *: (%, Fraction Integer) -> % if R has Algebra Fraction Integer
from RightModule Fraction Integer

- *: (%, R) -> %
from RightModule R

- *: (Fraction Integer, %) -> % if R has Algebra Fraction Integer
from LeftModule Fraction Integer

- *: (Integer, %) -> % if R has AbelianGroup or % has AbelianGroup
from AbelianGroup

- *: (NonNegativeInteger, %) -> %
from AbelianMonoid

- *: (PositiveInteger, %) -> %
from AbelianSemiGroup

- *: (R, %) -> %
from LeftModule R

- +: (%, %) -> %
from AbelianSemiGroup

- -: % -> % if R has AbelianGroup or % has AbelianGroup
from AbelianGroup

- -: (%, %) -> % if R has AbelianGroup or % has AbelianGroup
from AbelianGroup

- /: (%, R) -> % if R has Field
from AbelianMonoidRing(R, IndexedExponents VarSet)

- ^: (%, NonNegativeInteger) -> % if R has SemiRing
from MagmaWithUnit

- ^: (%, PositiveInteger) -> %
from Magma

- annihilate?: (%, %) -> Boolean if R has Ring
from Rng

- antiCommutator: (%, %) -> %

- associates?: (%, %) -> Boolean if R has EntireRing
from EntireRing

- associator: (%, %, %) -> % if R has Ring
from NonAssociativeRng

- binomThmExpt: (%, %, NonNegativeInteger) -> % if % has CommutativeRing
from FiniteAbelianMonoidRing(R, IndexedExponents VarSet)

- characteristic: () -> NonNegativeInteger if R has Ring
from NonAssociativeRing

- charthRoot: % -> Union(%, failed) if R has CharacteristicNonZero or % has CharacteristicNonZero and R has PolynomialFactorizationExplicit

- coefficient: (%, IndexedExponents VarSet) -> R
from FreeModuleCategory(R, IndexedExponents VarSet)

- coefficient: (%, List VarSet, List NonNegativeInteger) -> %
from MaybeSkewPolynomialCategory(R, IndexedExponents VarSet, VarSet)

- coefficient: (%, VarSet, NonNegativeInteger) -> %
from MaybeSkewPolynomialCategory(R, IndexedExponents VarSet, VarSet)

- coefficients: % -> List R
from FreeModuleCategory(R, IndexedExponents VarSet)

- coerce: % -> % if R has CommutativeRing
from Algebra %

- coerce: % -> OutputForm
from CoercibleTo OutputForm

- coerce: Fraction Integer -> % if R has Algebra Fraction Integer or R has RetractableTo Fraction Integer
- coerce: Integer -> % if R has Ring or R has RetractableTo Integer
from NonAssociativeRing

- coerce: R -> %
from Algebra R

- coerce: VarSet -> % if R has SemiRing
from CoercibleFrom VarSet

- commutator: (%, %) -> % if R has Ring
from NonAssociativeRng

- conditionP: Matrix % -> Union(Vector %, failed) if % has CharacteristicNonZero and R has PolynomialFactorizationExplicit

- construct: List Record(k: IndexedExponents VarSet, c: R) -> %
from IndexedProductCategory(R, IndexedExponents VarSet)

- constructOrdered: List Record(k: IndexedExponents VarSet, c: R) -> %
from IndexedProductCategory(R, IndexedExponents VarSet)

- content: % -> R if R has GcdDomain
from FiniteAbelianMonoidRing(R, IndexedExponents VarSet)

- content: (%, VarSet) -> % if R has GcdDomain
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- convert: % -> InputForm if R has ConvertibleTo InputForm and VarSet has ConvertibleTo InputForm
from ConvertibleTo InputForm

- convert: % -> Pattern Float if R has ConvertibleTo Pattern Float and R has Ring and VarSet has ConvertibleTo Pattern Float
from ConvertibleTo Pattern Float

- convert: % -> Pattern Integer if R has ConvertibleTo Pattern Integer and R has Ring and VarSet has ConvertibleTo Pattern Integer
from ConvertibleTo Pattern Integer

- D: (%, List VarSet) -> % if R has Ring
from PartialDifferentialRing VarSet

- D: (%, List VarSet, List NonNegativeInteger) -> % if R has Ring
from PartialDifferentialRing VarSet

- D: (%, VarSet) -> % if R has Ring
from PartialDifferentialRing VarSet

- D: (%, VarSet, NonNegativeInteger) -> % if R has Ring
from PartialDifferentialRing VarSet

- degree: % -> IndexedExponents VarSet
from AbelianMonoidRing(R, IndexedExponents VarSet)

- degree: (%, List VarSet) -> List NonNegativeInteger
from MaybeSkewPolynomialCategory(R, IndexedExponents VarSet, VarSet)

- degree: (%, VarSet) -> NonNegativeInteger
from MaybeSkewPolynomialCategory(R, IndexedExponents VarSet, VarSet)

- differentiate: (%, List VarSet) -> % if R has Ring
from PartialDifferentialRing VarSet

- differentiate: (%, List VarSet, List NonNegativeInteger) -> % if R has Ring
from PartialDifferentialRing VarSet

- differentiate: (%, VarSet) -> % if R has Ring
from PartialDifferentialRing VarSet

- differentiate: (%, VarSet, NonNegativeInteger) -> % if R has Ring
from PartialDifferentialRing VarSet

- discriminant: (%, VarSet) -> % if R has CommutativeRing
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- eval: (%, %, %) -> % if R has SemiRing
from InnerEvalable(%, %)

- eval: (%, Equation %) -> % if R has SemiRing
from Evalable %

- eval: (%, List %, List %) -> % if R has SemiRing
from InnerEvalable(%, %)

- eval: (%, List Equation %) -> % if R has SemiRing
from Evalable %

- eval: (%, List VarSet, List %) -> %
from InnerEvalable(VarSet, %)

- eval: (%, List VarSet, List R) -> %
from InnerEvalable(VarSet, R)

- eval: (%, VarSet, %) -> %
from InnerEvalable(VarSet, %)

- eval: (%, VarSet, R) -> %
from InnerEvalable(VarSet, R)

- exquo: (%, %) -> Union(%, failed) if R has EntireRing
from EntireRing

- exquo: (%, R) -> Union(%, failed) if R has EntireRing
from FiniteAbelianMonoidRing(R, IndexedExponents VarSet)

- factor: % -> Factored % if R has PolynomialFactorizationExplicit

- factorPolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PolynomialFactorizationExplicit

- factorSquareFreePolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PolynomialFactorizationExplicit

- fmecg: (%, IndexedExponents VarSet, R, %) -> % if R has Ring
from FiniteAbelianMonoidRing(R, IndexedExponents VarSet)

- gcdPolynomial: (SparseUnivariatePolynomial %, SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if R has GcdDomain
from GcdDomain

- ground?: % -> Boolean
from FiniteAbelianMonoidRing(R, IndexedExponents VarSet)

- ground: % -> R
from FiniteAbelianMonoidRing(R, IndexedExponents VarSet)

- hash: % -> SingleInteger
from SetCategory

- hashUpdate!: (HashState, %) -> HashState
from SetCategory

- isExpt: % -> Union(Record(var: VarSet, exponent: NonNegativeInteger), failed) if R has SemiRing
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- isPlus: % -> Union(List %, failed)
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- isTimes: % -> Union(List %, failed) if R has SemiRing
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- latex: % -> String
from SetCategory

- lcmCoef: (%, %) -> Record(llcm_res: %, coeff1: %, coeff2: %) if R has GcdDomain
from LeftOreRing

- leadingCoefficient: % -> R
from IndexedProductCategory(R, IndexedExponents VarSet)

- leadingMonomial: % -> %
from IndexedProductCategory(R, IndexedExponents VarSet)

- leadingSupport: % -> IndexedExponents VarSet
from IndexedProductCategory(R, IndexedExponents VarSet)

- leadingTerm: % -> Record(k: IndexedExponents VarSet, c: R)
from IndexedProductCategory(R, IndexedExponents VarSet)

- leftPower: (%, NonNegativeInteger) -> % if R has SemiRing
from MagmaWithUnit

- leftPower: (%, PositiveInteger) -> %
from Magma

- leftRecip: % -> Union(%, failed) if R has SemiRing
from MagmaWithUnit

- linearExtend: (IndexedExponents VarSet -> R, %) -> R if R has CommutativeRing
from FreeModuleCategory(R, IndexedExponents VarSet)

- listOfTerms: % -> List Record(k: IndexedExponents VarSet, c: R)
from IndexedDirectProductCategory(R, IndexedExponents VarSet)

- mainVariable: % -> Union(VarSet, failed)
from MaybeSkewPolynomialCategory(R, IndexedExponents VarSet, VarSet)

- map: (R -> R, %) -> %
from IndexedProductCategory(R, IndexedExponents VarSet)

- mapExponents: (IndexedExponents VarSet -> IndexedExponents VarSet, %) -> %
from FiniteAbelianMonoidRing(R, IndexedExponents VarSet)

- minimumDegree: % -> IndexedExponents VarSet
from FiniteAbelianMonoidRing(R, IndexedExponents VarSet)

- minimumDegree: (%, List VarSet) -> List NonNegativeInteger
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- minimumDegree: (%, VarSet) -> NonNegativeInteger
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- monicDivide: (%, %, VarSet) -> Record(quotient: %, remainder: %) if R has Ring
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- monomial?: % -> Boolean
from IndexedProductCategory(R, IndexedExponents VarSet)

- monomial: (%, List VarSet, List NonNegativeInteger) -> %
from MaybeSkewPolynomialCategory(R, IndexedExponents VarSet, VarSet)

- monomial: (%, VarSet, NonNegativeInteger) -> %
from MaybeSkewPolynomialCategory(R, IndexedExponents VarSet, VarSet)

- monomial: (R, IndexedExponents VarSet) -> %
from IndexedProductCategory(R, IndexedExponents VarSet)

- monomials: % -> List %
from MaybeSkewPolynomialCategory(R, IndexedExponents VarSet, VarSet)

- multivariate: (SparseUnivariatePolynomial %, VarSet) -> %
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- multivariate: (SparseUnivariatePolynomial R, VarSet) -> %
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- numberOfMonomials: % -> NonNegativeInteger
from IndexedDirectProductCategory(R, IndexedExponents VarSet)

- one?: % -> Boolean if R has SemiRing
from MagmaWithUnit

- opposite?: (%, %) -> Boolean
from AbelianMonoid

- patternMatch: (%, Pattern Float, PatternMatchResult(Float, %)) -> PatternMatchResult(Float, %) if VarSet has PatternMatchable Float and R has PatternMatchable Float and R has Ring
from PatternMatchable Float

- patternMatch: (%, Pattern Integer, PatternMatchResult(Integer, %)) -> PatternMatchResult(Integer, %) if VarSet has PatternMatchable Integer and R has PatternMatchable Integer and R has Ring
from PatternMatchable Integer

- pomopo!: (%, R, IndexedExponents VarSet, %) -> %
from FiniteAbelianMonoidRing(R, IndexedExponents VarSet)

- prime?: % -> Boolean if R has PolynomialFactorizationExplicit

- primitiveMonomials: % -> List % if R has SemiRing
from MaybeSkewPolynomialCategory(R, IndexedExponents VarSet, VarSet)

- primitivePart: % -> % if R has GcdDomain
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- primitivePart: (%, VarSet) -> % if R has GcdDomain
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- recip: % -> Union(%, failed) if R has SemiRing
from MagmaWithUnit

- reducedSystem: (Matrix %, Vector %) -> Record(mat: Matrix Integer, vec: Vector Integer) if R has LinearlyExplicitOver Integer and R has Ring
- reducedSystem: (Matrix %, Vector %) -> Record(mat: Matrix R, vec: Vector R) if R has Ring
from LinearlyExplicitOver R

- reducedSystem: Matrix % -> Matrix Integer if R has LinearlyExplicitOver Integer and R has Ring
- reducedSystem: Matrix % -> Matrix R if R has Ring
from LinearlyExplicitOver R

- reductum: % -> %
from IndexedProductCategory(R, IndexedExponents VarSet)

- resultant: (%, %, VarSet) -> % if R has CommutativeRing
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- retract: % -> Fraction Integer if R has RetractableTo Fraction Integer
from RetractableTo Fraction Integer

- retract: % -> Integer if R has RetractableTo Integer
from RetractableTo Integer

- retract: % -> R
from RetractableTo R

- retract: % -> VarSet if R has SemiRing
from RetractableTo VarSet

- retractIfCan: % -> Union(Fraction Integer, failed) if R has RetractableTo Fraction Integer
from RetractableTo Fraction Integer

- retractIfCan: % -> Union(Integer, failed) if R has RetractableTo Integer
from RetractableTo Integer

- retractIfCan: % -> Union(R, failed)
from RetractableTo R

- retractIfCan: % -> Union(VarSet, failed) if R has SemiRing
from RetractableTo VarSet

- rightPower: (%, NonNegativeInteger) -> % if R has SemiRing
from MagmaWithUnit

- rightPower: (%, PositiveInteger) -> %
from Magma

- rightRecip: % -> Union(%, failed) if R has SemiRing
from MagmaWithUnit

- sample: %
from AbelianMonoid

- smaller?: (%, %) -> Boolean if R has Comparable
from Comparable

- solveLinearPolynomialEquation: (List SparseUnivariatePolynomial %, SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %, failed) if R has PolynomialFactorizationExplicit

- squareFree: % -> Factored % if R has GcdDomain
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- squareFreePart: % -> % if R has GcdDomain
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- squareFreePolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PolynomialFactorizationExplicit

- subtractIfCan: (%, %) -> Union(%, failed)

- support: % -> List IndexedExponents VarSet
from FreeModuleCategory(R, IndexedExponents VarSet)

- totalDegree: % -> NonNegativeInteger
from MaybeSkewPolynomialCategory(R, IndexedExponents VarSet, VarSet)

- totalDegree: (%, List VarSet) -> NonNegativeInteger
from MaybeSkewPolynomialCategory(R, IndexedExponents VarSet, VarSet)

- totalDegreeSorted: (%, List VarSet) -> NonNegativeInteger
from MaybeSkewPolynomialCategory(R, IndexedExponents VarSet, VarSet)

- unit?: % -> Boolean if R has EntireRing
from EntireRing

- unitCanonical: % -> % if R has EntireRing
from EntireRing

- unitNormal: % -> Record(unit: %, canonical: %, associate: %) if R has EntireRing
from EntireRing

- univariate: % -> SparseUnivariatePolynomial R
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- univariate: (%, VarSet) -> SparseUnivariatePolynomial %
from PolynomialCategory(R, IndexedExponents VarSet, VarSet)

- variables: % -> List VarSet
from MaybeSkewPolynomialCategory(R, IndexedExponents VarSet, VarSet)

- zero?: % -> Boolean
from AbelianMonoid

AbelianGroup if R has AbelianGroup

AbelianMonoidRing(R, IndexedExponents VarSet)

Algebra % if R has CommutativeRing

Algebra Fraction Integer if R has Algebra Fraction Integer

Algebra R if R has CommutativeRing

BiModule(%, %)

BiModule(Fraction Integer, Fraction Integer) if R has Algebra Fraction Integer

BiModule(R, R)

canonicalUnitNormal if R has canonicalUnitNormal

CharacteristicNonZero if R has CharacteristicNonZero

CharacteristicZero if R has CharacteristicZero

CoercibleFrom Fraction Integer if R has RetractableTo Fraction Integer

CoercibleFrom Integer if R has RetractableTo Integer

CoercibleFrom VarSet if R has SemiRing

CommutativeRing if R has CommutativeRing

CommutativeStar if R has CommutativeRing

Comparable if R has Comparable

ConvertibleTo InputForm if R has ConvertibleTo InputForm and VarSet has ConvertibleTo InputForm

ConvertibleTo Pattern Float if R has ConvertibleTo Pattern Float and R has Ring and VarSet has ConvertibleTo Pattern Float

ConvertibleTo Pattern Integer if R has ConvertibleTo Pattern Integer and R has Ring and VarSet has ConvertibleTo Pattern Integer

EntireRing if R has EntireRing

FiniteAbelianMonoidRing(R, IndexedExponents VarSet)

FreeModuleCategory(R, IndexedExponents VarSet)

FullyLinearlyExplicitOver R if R has Ring

IndexedDirectProductCategory(R, IndexedExponents VarSet)

IndexedProductCategory(R, IndexedExponents VarSet)

InnerEvalable(%, %) if R has SemiRing

InnerEvalable(VarSet, %)

InnerEvalable(VarSet, R)

IntegralDomain if R has IntegralDomain

LeftModule Fraction Integer if R has Algebra Fraction Integer

LeftOreRing if R has GcdDomain

LinearlyExplicitOver Integer if R has LinearlyExplicitOver Integer and R has Ring

LinearlyExplicitOver R if R has Ring

MagmaWithUnit if R has SemiRing

MaybeSkewPolynomialCategory(R, IndexedExponents VarSet, VarSet)

Module % if R has CommutativeRing

Module Fraction Integer if R has Algebra Fraction Integer

Module R if R has CommutativeRing

NonAssociativeRing if R has Ring

NonAssociativeRng if R has Ring

NonAssociativeSemiRing if R has SemiRing

noZeroDivisors if R has EntireRing

PartialDifferentialRing VarSet if R has Ring

PatternMatchable Float if VarSet has PatternMatchable Float and R has PatternMatchable Float and R has Ring

PatternMatchable Integer if VarSet has PatternMatchable Integer and R has PatternMatchable Integer and R has Ring

PolynomialCategory(R, IndexedExponents VarSet, VarSet)

PolynomialFactorizationExplicit if R has PolynomialFactorizationExplicit

RetractableTo Fraction Integer if R has RetractableTo Fraction Integer

RetractableTo Integer if R has RetractableTo Integer

RetractableTo VarSet if R has SemiRing

RightModule Fraction Integer if R has Algebra Fraction Integer

TwoSidedRecip if R has CommutativeRing

UniqueFactorizationDomain if R has PolynomialFactorizationExplicit

unitsKnown if R has Ring