UnivariatePolynomialCategory RΒΆ

polycat.spad line 753

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

AbelianMonoid

AbelianMonoidRing(R, NonNegativeInteger)

AbelianSemiGroup

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

BasicType

BiModule(%, %)

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

BiModule(R, R)

CancellationAbelianMonoid

canonicalUnitNormal if R has canonicalUnitNormal

CharacteristicNonZero if R has CharacteristicNonZero

CharacteristicZero if R has CharacteristicZero

CoercibleTo OutputForm

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

Evalable % if R has SemiRing

FiniteAbelianMonoidRing(R, NonNegativeInteger)

FullyLinearlyExplicitOver R if R has Ring

FullyRetractableTo R

GcdDomain if R has GcdDomain

InnerEvalable(%, %) if R has SemiRing

InnerEvalable(SingletonAsOrderedSet, %)

InnerEvalable(SingletonAsOrderedSet, R)

IntegralDomain if R has IntegralDomain

LeftModule %

LeftModule Fraction Integer if R has Algebra Fraction Integer

LeftModule R

LeftOreRing if R has GcdDomain

LinearlyExplicitOver Integer if R has Ring and R has LinearlyExplicitOver Integer

LinearlyExplicitOver R if R has Ring

Magma

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

Monoid if R has SemiRing

NonAssociativeRing if R has Ring

NonAssociativeRng if R has Ring

NonAssociativeSemiRing if R has SemiRing

NonAssociativeSemiRng

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 R

RetractableTo SingletonAsOrderedSet if R has SemiRing

RightModule %

RightModule Fraction Integer if R has Algebra Fraction Integer

RightModule R

Ring if R has Ring

Rng if R has Ring

SemiGroup

SemiRing if R has SemiRing

SemiRng

SetCategory

StepThrough if R has StepThrough

UniqueFactorizationDomain if R has PolynomialFactorizationExplicit

unitsKnown if R has Ring

VariablesCommuteWithCoefficients