# UnivariatePolynomialCategory R¶

- R: Join(SemiRng, AbelianMonoid)

The category of univariate polynomials over a ring `R`

. No particular model is assumed - implementations can be either sparse or dense.

- 0: %
- from AbelianMonoid
- 1: % if R has SemiRing
- from MagmaWithUnit
- *: (%, %) -> %
- from Magma
- *: (%, 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, NonNegativeInteger)
- =: (%, %) -> Boolean
- from BasicType
- ^: (%, NonNegativeInteger) -> % if R has SemiRing
- from MagmaWithUnit
- ^: (%, PositiveInteger) -> %
- from Magma
- ~=: (%, %) -> Boolean
- from BasicType
- annihilate?: (%, %) -> Boolean if R has Ring
- from Rng
- antiCommutator: (%, %) -> %
- from NonAssociativeSemiRng
- associates?: (%, %) -> Boolean if R has EntireRing
- from EntireRing
- associator: (%, %, %) -> % if R has Ring
- from NonAssociativeRng
- binomThmExpt: (%, %, NonNegativeInteger) -> % if % has CommutativeRing
- from FiniteAbelianMonoidRing(R, NonNegativeInteger)
- characteristic: () -> NonNegativeInteger if R has Ring
- from NonAssociativeRing
- charthRoot: % -> Union(%, failed) if % has CharacteristicNonZero and R has PolynomialFactorizationExplicit or R has CharacteristicNonZero
- from PolynomialFactorizationExplicit
- coefficient: (%, List SingletonAsOrderedSet, List NonNegativeInteger) -> %
- from MaybeSkewPolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- coefficient: (%, NonNegativeInteger) -> R
- from AbelianMonoidRing(R, NonNegativeInteger)
- coefficient: (%, SingletonAsOrderedSet, NonNegativeInteger) -> %
- from MaybeSkewPolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- coefficients: % -> List R
- from FiniteAbelianMonoidRing(R, NonNegativeInteger)
- 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
- from Algebra Fraction Integer
- coerce: Integer -> % if R has Ring or R has RetractableTo Integer
- from NonAssociativeRing
- coerce: R -> %
- from Algebra R
- coerce: SingletonAsOrderedSet -> % if R has SemiRing
- from RetractableTo SingletonAsOrderedSet
- commutator: (%, %) -> % if R has Ring
- from NonAssociativeRng

- composite: (%, %) -> Union(%, failed) if R has IntegralDomain
`composite(p, q)`

returns`h`

if`p = h(q)`

, and “failed” no such`h`

exists.

- composite: (Fraction %, %) -> Union(Fraction %, failed) if R has IntegralDomain
`composite(f, q)`

returns`h`

if`f`

=`h`

(`q`

), and “failed” is no such`h`

exists.- conditionP: Matrix % -> Union(Vector %, failed) if % has CharacteristicNonZero and R has PolynomialFactorizationExplicit
- from PolynomialFactorizationExplicit
- content: % -> R if R has GcdDomain
- from FiniteAbelianMonoidRing(R, NonNegativeInteger)
- content: (%, SingletonAsOrderedSet) -> % if R has GcdDomain
- from PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- convert: % -> InputForm if SingletonAsOrderedSet has ConvertibleTo InputForm and R has ConvertibleTo InputForm
- from ConvertibleTo InputForm
- convert: % -> Pattern Float if R has Ring and SingletonAsOrderedSet has ConvertibleTo Pattern Float and R has ConvertibleTo Pattern Float
- from ConvertibleTo Pattern Float
- convert: % -> Pattern Integer if R has Ring and SingletonAsOrderedSet has ConvertibleTo Pattern Integer and R has ConvertibleTo Pattern Integer
- from ConvertibleTo Pattern Integer
- D: % -> % if R has Ring
- from DifferentialRing
- D: (%, List SingletonAsOrderedSet) -> % if R has Ring
- from PartialDifferentialRing SingletonAsOrderedSet
- D: (%, List SingletonAsOrderedSet, List NonNegativeInteger) -> % if R has Ring
- from PartialDifferentialRing SingletonAsOrderedSet
- D: (%, List Symbol) -> % if R has Ring and R has PartialDifferentialRing Symbol
- from PartialDifferentialRing Symbol
- D: (%, List Symbol, List NonNegativeInteger) -> % if R has Ring and R has PartialDifferentialRing Symbol
- from PartialDifferentialRing Symbol
- D: (%, NonNegativeInteger) -> % if R has Ring
- from DifferentialRing
- D: (%, R -> R) -> % if R has Ring
- from DifferentialExtension R
- D: (%, R -> R, NonNegativeInteger) -> % if R has Ring
- from DifferentialExtension R
- D: (%, SingletonAsOrderedSet) -> % if R has Ring
- from PartialDifferentialRing SingletonAsOrderedSet
- D: (%, SingletonAsOrderedSet, NonNegativeInteger) -> % if R has Ring
- from PartialDifferentialRing SingletonAsOrderedSet
- D: (%, Symbol) -> % if R has Ring and R has PartialDifferentialRing Symbol
- from PartialDifferentialRing Symbol
- D: (%, Symbol, NonNegativeInteger) -> % if R has Ring and R has PartialDifferentialRing Symbol
- from PartialDifferentialRing Symbol
- degree: % -> NonNegativeInteger
- from AbelianMonoidRing(R, NonNegativeInteger)
- degree: (%, List SingletonAsOrderedSet) -> List NonNegativeInteger
- from MaybeSkewPolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- degree: (%, SingletonAsOrderedSet) -> NonNegativeInteger
- from MaybeSkewPolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- differentiate: % -> % if R has Ring
- from DifferentialRing
- differentiate: (%, List SingletonAsOrderedSet) -> % if R has Ring
- from PartialDifferentialRing SingletonAsOrderedSet
- differentiate: (%, List SingletonAsOrderedSet, List NonNegativeInteger) -> % if R has Ring
- from PartialDifferentialRing SingletonAsOrderedSet
- differentiate: (%, List Symbol) -> % if R has Ring and R has PartialDifferentialRing Symbol
- from PartialDifferentialRing Symbol
- differentiate: (%, List Symbol, List NonNegativeInteger) -> % if R has Ring and R has PartialDifferentialRing Symbol
- from PartialDifferentialRing Symbol
- differentiate: (%, NonNegativeInteger) -> % if R has Ring
- from DifferentialRing
- differentiate: (%, R -> R) -> % if R has Ring
- from DifferentialExtension R

- differentiate: (%, R -> R, %) -> % if R has Ring
`differentiate(p, d, x')`

extends the`R`

-derivation`d`

to an extension`D`

in`R[x]`

where`Dx`

is given by`x'`

, and returns`Dp`

.- differentiate: (%, R -> R, NonNegativeInteger) -> % if R has Ring
- from DifferentialExtension R
- differentiate: (%, SingletonAsOrderedSet) -> % if R has Ring
- from PartialDifferentialRing SingletonAsOrderedSet
- differentiate: (%, SingletonAsOrderedSet, NonNegativeInteger) -> % if R has Ring
- from PartialDifferentialRing SingletonAsOrderedSet
- differentiate: (%, Symbol) -> % if R has Ring and R has PartialDifferentialRing Symbol
- from PartialDifferentialRing Symbol
- differentiate: (%, Symbol, NonNegativeInteger) -> % if R has Ring and R has PartialDifferentialRing Symbol
- from PartialDifferentialRing Symbol

- discriminant: % -> R if R has CommutativeRing
`discriminant(p)`

returns the discriminant of the polynomial`p`

.- discriminant: (%, SingletonAsOrderedSet) -> % if R has CommutativeRing
- from PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- divide: (%, %) -> Record(quotient: %, remainder: %) if R has Field
- from EuclideanDomain

- divideExponents: (%, NonNegativeInteger) -> Union(%, failed)
`divideExponents(p, n)`

returns a new polynomial resulting from dividing all exponents of the polynomial`p`

by the non negative integer`n`

, or “failed” if some exponent is not exactly divisible by`n`

.- elt: (%, %) -> %
- from Eltable(%, %)
- elt: (%, Fraction %) -> Fraction % if R has IntegralDomain
- from Eltable(Fraction %, Fraction %)
- elt: (%, R) -> R
- from Eltable(R, R)

- elt: (Fraction %, Fraction %) -> Fraction % if R has IntegralDomain
`elt(a, b)`

evaluates the fraction of univariate polynomials`a`

with the distinguished variable replaced by`b`

.

- elt: (Fraction %, R) -> R if R has Field
`elt(a, r)`

evaluates the fraction of univariate polynomials`a`

with the distinguished variable replaced by the constant`r`

.- euclideanSize: % -> NonNegativeInteger if R has Field
- from EuclideanDomain
- 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 SingletonAsOrderedSet, List %) -> %
- from InnerEvalable(SingletonAsOrderedSet, %)
- eval: (%, List SingletonAsOrderedSet, List R) -> %
- from InnerEvalable(SingletonAsOrderedSet, R)
- eval: (%, SingletonAsOrderedSet, %) -> %
- from InnerEvalable(SingletonAsOrderedSet, %)
- eval: (%, SingletonAsOrderedSet, R) -> %
- from InnerEvalable(SingletonAsOrderedSet, R)
- expressIdealMember: (List %, %) -> Union(List %, failed) if R has Field
- from PrincipalIdealDomain
- exquo: (%, %) -> Union(%, failed) if R has EntireRing
- from EntireRing
- exquo: (%, R) -> Union(%, failed) if R has EntireRing
- from FiniteAbelianMonoidRing(R, NonNegativeInteger)
- extendedEuclidean: (%, %) -> Record(coef1: %, coef2: %, generator: %) if R has Field
- from EuclideanDomain
- extendedEuclidean: (%, %, %) -> Union(Record(coef1: %, coef2: %), failed) if R has Field
- from EuclideanDomain
- factor: % -> Factored % if R has PolynomialFactorizationExplicit
- from UniqueFactorizationDomain
- factorPolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PolynomialFactorizationExplicit
- from PolynomialFactorizationExplicit
- factorSquareFreePolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PolynomialFactorizationExplicit
- from PolynomialFactorizationExplicit
- fmecg: (%, NonNegativeInteger, R, %) -> % if R has Ring
- from FiniteAbelianMonoidRing(R, NonNegativeInteger)
- gcd: (%, %) -> % if R has GcdDomain
- from GcdDomain
- gcd: List % -> % if R has GcdDomain
- from GcdDomain
- gcdPolynomial: (SparseUnivariatePolynomial %, SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if R has GcdDomain
- from PolynomialFactorizationExplicit
- ground: % -> R
- from FiniteAbelianMonoidRing(R, NonNegativeInteger)
- ground?: % -> Boolean
- from FiniteAbelianMonoidRing(R, NonNegativeInteger)
- hash: % -> SingleInteger
- from SetCategory
- hashUpdate!: (HashState, %) -> HashState
- from SetCategory
- init: % if R has StepThrough
- from StepThrough

- integrate: % -> % if R has Algebra Fraction Integer
`integrate(p)`

integrates the univariate polynomial`p`

with respect to its distinguished variable.- isExpt: % -> Union(Record(var: SingletonAsOrderedSet, exponent: NonNegativeInteger), failed) if R has SemiRing
- from PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- isPlus: % -> Union(List %, failed)
- from PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- isTimes: % -> Union(List %, failed) if R has SemiRing
- from PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)

- karatsubaDivide: (%, NonNegativeInteger) -> Record(quotient: %, remainder: %) if R has Ring
`karatsubaDivide(p, n)`

returns the same as`monicDivide(p, monomial(1, n))`

- latex: % -> String
- from SetCategory
- lcm: (%, %) -> % if R has GcdDomain
- from GcdDomain
- lcm: List % -> % if R has GcdDomain
- from GcdDomain
- lcmCoef: (%, %) -> Record(llcm_res: %, coeff1: %, coeff2: %) if R has GcdDomain
- from LeftOreRing
- leadingCoefficient: % -> R
- from AbelianMonoidRing(R, NonNegativeInteger)
- leadingMonomial: % -> %
- from AbelianMonoidRing(R, NonNegativeInteger)
- leftPower: (%, NonNegativeInteger) -> % if R has SemiRing
- from MagmaWithUnit
- leftPower: (%, PositiveInteger) -> %
- from Magma
- leftRecip: % -> Union(%, failed) if R has SemiRing
- from MagmaWithUnit
- mainVariable: % -> Union(SingletonAsOrderedSet, failed)
- from MaybeSkewPolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)

- makeSUP: % -> SparseUnivariatePolynomial R
`makeSUP(p)`

converts the polynomial`p`

to be of type SparseUnivariatePolynomial over the same coefficients.- map: (R -> R, %) -> %
- from AbelianMonoidRing(R, NonNegativeInteger)
- mapExponents: (NonNegativeInteger -> NonNegativeInteger, %) -> %
- from FiniteAbelianMonoidRing(R, NonNegativeInteger)
- minimumDegree: % -> NonNegativeInteger
- from FiniteAbelianMonoidRing(R, NonNegativeInteger)
- minimumDegree: (%, List SingletonAsOrderedSet) -> List NonNegativeInteger
- from PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- minimumDegree: (%, SingletonAsOrderedSet) -> NonNegativeInteger
- from PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)

- monicDivide: (%, %) -> Record(quotient: %, remainder: %) if R has Ring
`monicDivide(p, q)`

divide the polynomial`p`

by the monic polynomial`q`

, returning the pair`[quotient, remainder]`

. Error: if`q`

isn`'t`

monic.- monicDivide: (%, %, SingletonAsOrderedSet) -> Record(quotient: %, remainder: %) if R has Ring
- from PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- monomial: (%, List SingletonAsOrderedSet, List NonNegativeInteger) -> %
- from MaybeSkewPolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- monomial: (%, SingletonAsOrderedSet, NonNegativeInteger) -> %
- from MaybeSkewPolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- monomial: (R, NonNegativeInteger) -> %
- from AbelianMonoidRing(R, NonNegativeInteger)
- monomial?: % -> Boolean
- from AbelianMonoidRing(R, NonNegativeInteger)
- monomials: % -> List %
- from MaybeSkewPolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- multiEuclidean: (List %, %) -> Union(List %, failed) if R has Field
- from EuclideanDomain

- multiplyExponents: (%, NonNegativeInteger) -> %
`multiplyExponents(p, n)`

returns a new polynomial resulting from multiplying all exponents of the polynomial`p`

by the non negative integer`n`

.- multivariate: (SparseUnivariatePolynomial %, SingletonAsOrderedSet) -> %
- from PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- multivariate: (SparseUnivariatePolynomial R, SingletonAsOrderedSet) -> %
- from PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- nextItem: % -> Union(%, failed) if R has StepThrough
- from StepThrough
- numberOfMonomials: % -> NonNegativeInteger
- from FiniteAbelianMonoidRing(R, NonNegativeInteger)
- one?: % -> Boolean if R has SemiRing
- from MagmaWithUnit
- opposite?: (%, %) -> Boolean
- from AbelianMonoid

- order: (%, %) -> NonNegativeInteger if R has IntegralDomain
`order(p, q)`

returns the largest`n`

such that`q^n`

divides polynomial`p`

i.e. the order of`p(x)`

at`q(x)=0`

.- patternMatch: (%, Pattern Float, PatternMatchResult(Float, %)) -> PatternMatchResult(Float, %) if R has Ring and SingletonAsOrderedSet has PatternMatchable Float and R has PatternMatchable Float
- from PatternMatchable Float
- patternMatch: (%, Pattern Integer, PatternMatchResult(Integer, %)) -> PatternMatchResult(Integer, %) if R has Ring and SingletonAsOrderedSet has PatternMatchable Integer and R has PatternMatchable Integer
- from PatternMatchable Integer
- pomopo!: (%, R, NonNegativeInteger, %) -> %
- from FiniteAbelianMonoidRing(R, NonNegativeInteger)
- prime?: % -> Boolean if R has PolynomialFactorizationExplicit
- from UniqueFactorizationDomain
- primitiveMonomials: % -> List % if R has SemiRing
- from MaybeSkewPolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- primitivePart: % -> % if R has GcdDomain
- from PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- primitivePart: (%, SingletonAsOrderedSet) -> % if R has GcdDomain
- from PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- principalIdeal: List % -> Record(coef: List %, generator: %) if R has Field
- from PrincipalIdealDomain

- pseudoDivide: (%, %) -> Record(coef: R, quotient: %, remainder: %) if R has IntegralDomain
`pseudoDivide(p, q)`

returns`[c, s, r]`

, when`p' := p*lc(q)^(deg p - deg q + 1) = c * p`

is pseudo right-divided by`q`

, i.e.`p' = s q + r`

.

- pseudoQuotient: (%, %) -> % if R has IntegralDomain
`pseudoQuotient(p, q)`

returns`s`

, the quotient when`p' := p*lc(q)^(deg p - deg q + 1)`

is pseudo right-divided by`q`

, i.e.`p' = s q + r`

.

- pseudoRemainder: (%, %) -> % if R has Ring
`pseudoRemainder(p, q)`

=`r`

, for polynomials`p`

and`q`

, returns the remainder`r`

when`p' := p*lc(q)^(deg p - deg q + 1)`

is pseudo right-divided by`q`

, i.e.`p' = s q + r`

.- quo: (%, %) -> % if R has Field
- from EuclideanDomain
- recip: % -> Union(%, failed) if R has SemiRing
- from MagmaWithUnit
- reducedSystem: (Matrix %, Vector %) -> Record(mat: Matrix Integer, vec: Vector Integer) if R has Ring and R has LinearlyExplicitOver Integer
- from LinearlyExplicitOver Integer
- reducedSystem: (Matrix %, Vector %) -> Record(mat: Matrix R, vec: Vector R) if R has Ring
- from LinearlyExplicitOver R
- reducedSystem: Matrix % -> Matrix Integer if R has Ring and R has LinearlyExplicitOver Integer
- from LinearlyExplicitOver Integer
- reducedSystem: Matrix % -> Matrix R if R has Ring
- from LinearlyExplicitOver R
- reductum: % -> %
- from AbelianMonoidRing(R, NonNegativeInteger)
- rem: (%, %) -> % if R has Field
- from EuclideanDomain

- resultant: (%, %) -> R if R has CommutativeRing
`resultant(p, q)`

returns the resultant of the polynomials`p`

and`q`

.- resultant: (%, %, SingletonAsOrderedSet) -> % if R has CommutativeRing
- from PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- 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: % -> SingletonAsOrderedSet if R has SemiRing
- from RetractableTo SingletonAsOrderedSet
- 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(SingletonAsOrderedSet, failed) if R has SemiRing
- from RetractableTo SingletonAsOrderedSet
- rightPower: (%, NonNegativeInteger) -> % if R has SemiRing
- from MagmaWithUnit
- rightPower: (%, PositiveInteger) -> %
- from Magma
- rightRecip: % -> Union(%, failed) if R has SemiRing
- from MagmaWithUnit
- sample: %
- from AbelianMonoid

- separate: (%, %) -> Record(primePart: %, commonPart: %) if R has GcdDomain
`separate(p, q)`

returns`[a, b]`

such that polynomial`p = a b`

and`a`

is relatively prime to`q`

.

- shiftLeft: (%, NonNegativeInteger) -> %
`shiftLeft(p, n)`

returns`p * monomial(1, n)`

- shiftRight: (%, NonNegativeInteger) -> % if R has Ring
`shiftRight(p, n)`

returns`monicDivide(p, monomial(1, n)).quotient`

- sizeLess?: (%, %) -> Boolean if R has Field
- from EuclideanDomain
- smaller?: (%, %) -> Boolean if R has Comparable
- from Comparable
- solveLinearPolynomialEquation: (List SparseUnivariatePolynomial %, SparseUnivariatePolynomial %) -> Union(List SparseUnivariatePolynomial %, failed) if R has PolynomialFactorizationExplicit
- from PolynomialFactorizationExplicit
- squareFree: % -> Factored % if R has GcdDomain
- from PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- squareFreePart: % -> % if R has GcdDomain
- from PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- squareFreePolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PolynomialFactorizationExplicit
- from PolynomialFactorizationExplicit

- subResultantGcd: (%, %) -> % if R has IntegralDomain
`subResultantGcd(p, q)`

computes the`gcd`

of the polynomials`p`

and`q`

using the SubResultant`GCD`

algorithm.- subtractIfCan: (%, %) -> Union(%, failed)
- from CancellationAbelianMonoid
- totalDegree: % -> NonNegativeInteger
- from MaybeSkewPolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- totalDegree: (%, List SingletonAsOrderedSet) -> NonNegativeInteger
- from MaybeSkewPolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- totalDegreeSorted: (%, List SingletonAsOrderedSet) -> NonNegativeInteger
- from MaybeSkewPolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)
- 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, NonNegativeInteger, SingletonAsOrderedSet)
- univariate: (%, SingletonAsOrderedSet) -> SparseUnivariatePolynomial %
- from PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)

- unmakeSUP: SparseUnivariatePolynomial R -> %
`unmakeSUP(sup)`

converts`sup`

of type SparseUnivariatePolynomial(R) to be a member of the given type. Note: converse of makeSUP.

- unvectorise: Vector R -> %
`unvectorise(v)`

returns the polynomial which has for coefficients the entries of`v`

in the increasing order.- variables: % -> List SingletonAsOrderedSet
- from MaybeSkewPolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)

- vectorise: (%, NonNegativeInteger) -> Vector R
`vectorise(p, n)`

returns`[a0, ..., a(n-1)]`

where`p = a0 + a1*x + ... + a(n-1)*x^(n-1)`

+ higher order terms. The degree of polynomial`p`

can be different from`n-1`

.- zero?: % -> Boolean
- from AbelianMonoid

AbelianGroup if R has AbelianGroup

AbelianMonoidRing(R, NonNegativeInteger)

additiveValuation if R has Field

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

CommutativeRing if R has CommutativeRing

CommutativeStar if R has CommutativeRing

Comparable if R has Comparable

ConvertibleTo InputForm if SingletonAsOrderedSet has ConvertibleTo InputForm and R has ConvertibleTo InputForm

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

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

DifferentialExtension R if R has Ring

DifferentialRing if R has Ring

Eltable(%, %)

Eltable(Fraction %, Fraction %) if R has IntegralDomain

Eltable(R, R)

EntireRing if R has EntireRing

EuclideanDomain if R has Field

FiniteAbelianMonoidRing(R, NonNegativeInteger)

FullyLinearlyExplicitOver R if R has Ring

InnerEvalable(%, %) if R has SemiRing

InnerEvalable(SingletonAsOrderedSet, %)

InnerEvalable(SingletonAsOrderedSet, 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 Ring and R has LinearlyExplicitOver Integer

LinearlyExplicitOver R if R has Ring

MagmaWithUnit if R has SemiRing

MaybeSkewPolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)

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 SingletonAsOrderedSet if R has Ring

PartialDifferentialRing Symbol if R has Ring and R has PartialDifferentialRing Symbol

PatternMatchable Float if R has Ring and SingletonAsOrderedSet has PatternMatchable Float and R has PatternMatchable Float

PatternMatchable Integer if R has Ring and SingletonAsOrderedSet has PatternMatchable Integer and R has PatternMatchable Integer

PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet)

PolynomialFactorizationExplicit if R has PolynomialFactorizationExplicit

PrincipalIdealDomain if R has Field

RetractableTo Fraction Integer if R has RetractableTo Fraction Integer

RetractableTo Integer if R has RetractableTo Integer

RetractableTo SingletonAsOrderedSet if R has SemiRing

RightModule Fraction Integer if R has Algebra Fraction Integer

StepThrough if R has StepThrough

TwoSidedRecip if R has CommutativeRing

UniqueFactorizationDomain if R has PolynomialFactorizationExplicit

unitsKnown if R has Ring