NewSparseUnivariatePolynomial R¶

A post-facto extension for SUP in order to speed up operations related to pseudo-division and gcd for both SUP and, consequently, NSMP.

0: %

from AbelianMonoid

1: %

from MagmaWithUnit

*: (%, %) -> %

from LeftModule %

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

from RightModule R

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

from AbelianGroup

*: (NonNegativeInteger, %) -> %

from AbelianMonoid

*: (PositiveInteger, %) -> %

from AbelianSemiGroup

*: (R, %) -> %

from LeftModule R

+: (%, %) -> %

from AbelianSemiGroup

-: % -> %

from AbelianGroup

-: (%, %) -> %

from AbelianGroup

/: (%, R) -> % if R has Field
=: (%, %) -> Boolean

from BasicType

^: (%, NonNegativeInteger) -> %

from MagmaWithUnit

^: (%, PositiveInteger) -> %

from Magma

~=: (%, %) -> Boolean

from BasicType

annihilate?: (%, %) -> Boolean

from Rng

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

from EntireRing

associator: (%, %, %) -> %
binomThmExpt: (%, %, NonNegativeInteger) -> % if % has CommutativeRing
characteristic: () -> NonNegativeInteger
charthRoot: % -> Union(%, failed) if R has CharacteristicNonZero or % has CharacteristicNonZero and R has PolynomialFactorizationExplicit
coefficient: (%, List SingletonAsOrderedSet, List NonNegativeInteger) -> %
coefficient: (%, NonNegativeInteger) -> R
coefficient: (%, SingletonAsOrderedSet, NonNegativeInteger) -> %
coefficients: % -> List R
coerce: % -> % if R has CommutativeRing

from Algebra %

coerce: % -> OutputForm
coerce: % -> SparseUnivariatePolynomial R
coerce: Fraction Integer -> % if R has RetractableTo Fraction Integer or R has Algebra Fraction Integer
coerce: Integer -> %
coerce: R -> %

from Algebra R

coerce: SingletonAsOrderedSet -> %
coerce: SparseUnivariatePolynomial R -> %
commutator: (%, %) -> %
composite: (%, %) -> Union(%, failed) if R has IntegralDomain
composite: (Fraction %, %) -> Union(Fraction %, failed) if R has IntegralDomain
conditionP: Matrix % -> Union(Vector %, failed) if % has CharacteristicNonZero and R has PolynomialFactorizationExplicit
construct: List Record(k: NonNegativeInteger, c: R) -> %
constructOrdered: List Record(k: NonNegativeInteger, c: R) -> %
content: % -> R if R has GcdDomain
content: (%, SingletonAsOrderedSet) -> % if R has GcdDomain
convert: % -> InputForm if SingletonAsOrderedSet has ConvertibleTo InputForm and R has ConvertibleTo InputForm
convert: % -> Pattern Float if SingletonAsOrderedSet has ConvertibleTo Pattern Float and R has ConvertibleTo Pattern Float
convert: % -> Pattern Integer if SingletonAsOrderedSet has ConvertibleTo Pattern Integer and R has ConvertibleTo Pattern Integer
D: % -> %

from DifferentialRing

D: (%, List SingletonAsOrderedSet) -> %
D: (%, List SingletonAsOrderedSet, List NonNegativeInteger) -> %
D: (%, List Symbol) -> % if R has PartialDifferentialRing Symbol
D: (%, List Symbol, List NonNegativeInteger) -> % if R has PartialDifferentialRing Symbol
D: (%, NonNegativeInteger) -> %

from DifferentialRing

D: (%, R -> R) -> %
D: (%, R -> R, NonNegativeInteger) -> %
D: (%, SingletonAsOrderedSet) -> %
D: (%, SingletonAsOrderedSet, NonNegativeInteger) -> %
D: (%, Symbol) -> % if R has PartialDifferentialRing Symbol
D: (%, Symbol, NonNegativeInteger) -> % if R has PartialDifferentialRing Symbol
degree: % -> NonNegativeInteger
degree: (%, List SingletonAsOrderedSet) -> List NonNegativeInteger
degree: (%, SingletonAsOrderedSet) -> NonNegativeInteger
differentiate: % -> %

from DifferentialRing

differentiate: (%, List SingletonAsOrderedSet) -> %
differentiate: (%, List SingletonAsOrderedSet, List NonNegativeInteger) -> %
differentiate: (%, List Symbol) -> % if R has PartialDifferentialRing Symbol
differentiate: (%, List Symbol, List NonNegativeInteger) -> % if R has PartialDifferentialRing Symbol
differentiate: (%, NonNegativeInteger) -> %

from DifferentialRing

differentiate: (%, R -> R) -> %
differentiate: (%, R -> R, %) -> %
differentiate: (%, R -> R, NonNegativeInteger) -> %
differentiate: (%, SingletonAsOrderedSet) -> %
differentiate: (%, SingletonAsOrderedSet, NonNegativeInteger) -> %
differentiate: (%, Symbol) -> % if R has PartialDifferentialRing Symbol
differentiate: (%, Symbol, NonNegativeInteger) -> % if R has PartialDifferentialRing Symbol
discriminant: % -> R if R has CommutativeRing
discriminant: (%, SingletonAsOrderedSet) -> % if R has CommutativeRing
divide: (%, %) -> Record(quotient: %, remainder: %) if R has Field

from EuclideanDomain

divideExponents: (%, NonNegativeInteger) -> Union(%, failed)
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: (Fraction %, R) -> R if R has Field
euclideanSize: % -> NonNegativeInteger if R has Field

from EuclideanDomain

eval: (%, %, %) -> %

from InnerEvalable(%, %)

eval: (%, Equation %) -> %

from Evalable %

eval: (%, List %, List %) -> %

from InnerEvalable(%, %)

eval: (%, List Equation %) -> %

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
exquo: (%, %) -> Union(%, failed) if R has EntireRing

from EntireRing

exquo: (%, R) -> Union(%, failed) if R has EntireRing
extendedEuclidean: (%, %) -> Record(coef1: %, coef2: %, generator: %) if R has Field

from EuclideanDomain

extendedEuclidean: (%, %, %) -> Union(Record(coef1: %, coef2: %), failed) if R has Field

from EuclideanDomain

extendedResultant: (%, %) -> Record(resultant: R, coef1: %, coef2: %) if R has IntegralDomain

extendedResultant(a, b) returns [r, ca, cb] such that r is the resultant of a and b and r = ca * a + cb * b

extendedSubResultantGcd: (%, %) -> Record(gcd: %, coef1: %, coef2: %) if R has IntegralDomain

extendedSubResultantGcd(a, b) returns [g, ca, cb] such that g is a gcd of a and b in R^(-1) P and g = ca * a + cb * b

factor: % -> Factored % if R has PolynomialFactorizationExplicit
factorPolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PolynomialFactorizationExplicit
factorSquareFreePolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PolynomialFactorizationExplicit
fmecg: (%, NonNegativeInteger, R, %) -> %
gcd: (%, %) -> % if R has GcdDomain

from GcdDomain

gcd: List % -> % if R has GcdDomain

from GcdDomain

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

from GcdDomain

ground?: % -> Boolean
ground: % -> R
halfExtendedResultant1: (%, %) -> Record(resultant: R, coef1: %) if R has IntegralDomain

halfExtendedResultant1(a, b) returns [r, ca] such that extendedResultant(a, b) returns [r, ca, cb]

halfExtendedResultant2: (%, %) -> Record(resultant: R, coef2: %) if R has IntegralDomain

halfExtendedResultant2(a, b) returns [r, ca] such that extendedResultant(a, b) returns [r, ca, cb]

halfExtendedSubResultantGcd1: (%, %) -> Record(gcd: %, coef1: %) if R has IntegralDomain

halfExtendedSubResultantGcd1(a, b) returns [g, ca] such that extendedSubResultantGcd(a, b) returns [g, ca, cb]

halfExtendedSubResultantGcd2: (%, %) -> Record(gcd: %, coef2: %) if R has IntegralDomain

halfExtendedSubResultantGcd2(a, b) returns [g, cb] such that extendedSubResultantGcd(a, b) returns [g, ca, cb]

hash: % -> SingleInteger

from SetCategory

hashUpdate!: (HashState, %) -> HashState

from SetCategory

init: % if R has StepThrough

from StepThrough

integrate: % -> % if R has Algebra Fraction Integer
isExpt: % -> Union(Record(var: SingletonAsOrderedSet, exponent: NonNegativeInteger), failed)
isPlus: % -> Union(List %, failed)
isTimes: % -> Union(List %, failed)
karatsubaDivide: (%, NonNegativeInteger) -> Record(quotient: %, remainder: %)
lastSubResultant: (%, %) -> % if R has IntegralDomain

lastSubResultant(a, b) returns resultant(a, b) if a and b has no non-trivial gcd in R^(-1) P otherwise the non-zero sub-resultant with smallest index.

latex: % -> String

from SetCategory

lazyPseudoDivide: (%, %) -> Record(coef: R, gap: NonNegativeInteger, quotient: %, remainder: %)

lazyPseudoDivide(a, b) returns [c, g, q, r] such that c^n * a = q*b +r and lazyResidueClass(a, b) returns [r, c, n] where n + g = max(0, degree(b) - degree(a) + 1).

lazyPseudoQuotient: (%, %) -> %

lazyPseudoQuotient(a, b) returns q if lazyPseudoDivide(a, b) returns [c, g, q, r]

lazyPseudoRemainder: (%, %) -> %

lazyPseudoRemainder(a, b) returns r if lazyResidueClass(a, b) returns [r, c, n]. This lazy pseudo-remainder is computed by means of the fmecg operation.

lazyResidueClass: (%, %) -> Record(polnum: %, polden: R, power: NonNegativeInteger)

lazyResidueClass(a, b) returns [r, c, n] such that r is reduced w.r.t. b and b divides c^n * a - r where c is leadingCoefficient(b) and n is as small as possible with the previous properties.

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

leadingTerm: % -> Record(k: NonNegativeInteger, c: R)
leftPower: (%, NonNegativeInteger) -> %

from MagmaWithUnit

leftPower: (%, PositiveInteger) -> %

from Magma

leftRecip: % -> Union(%, failed)

from MagmaWithUnit

linearExtend: (NonNegativeInteger -> R, %) -> R if R has CommutativeRing
listOfTerms: % -> List Record(k: NonNegativeInteger, c: R)
mainVariable: % -> Union(SingletonAsOrderedSet, failed)
makeSUP: % -> SparseUnivariatePolynomial R
map: (R -> R, %) -> %
mapExponents: (NonNegativeInteger -> NonNegativeInteger, %) -> %
minimumDegree: % -> NonNegativeInteger
minimumDegree: (%, List SingletonAsOrderedSet) -> List NonNegativeInteger
minimumDegree: (%, SingletonAsOrderedSet) -> NonNegativeInteger
monicDivide: (%, %) -> Record(quotient: %, remainder: %)
monicDivide: (%, %, SingletonAsOrderedSet) -> Record(quotient: %, remainder: %)
monicModulo: (%, %) -> %

monicModulo(a, b) returns r such that r is reduced w.r.t. b and b divides a - r where b is monic.

monomial?: % -> Boolean
monomial: (%, List SingletonAsOrderedSet, List NonNegativeInteger) -> %
monomial: (%, SingletonAsOrderedSet, NonNegativeInteger) -> %
monomial: (R, NonNegativeInteger) -> %
monomials: % -> List %
multiEuclidean: (List %, %) -> Union(List %, failed) if R has Field

from EuclideanDomain

multiplyExponents: (%, NonNegativeInteger) -> %
multivariate: (SparseUnivariatePolynomial %, SingletonAsOrderedSet) -> %
multivariate: (SparseUnivariatePolynomial R, SingletonAsOrderedSet) -> %
nextItem: % -> Union(%, failed) if R has StepThrough

from StepThrough

numberOfMonomials: % -> NonNegativeInteger
one?: % -> Boolean

from MagmaWithUnit

opposite?: (%, %) -> Boolean

from AbelianMonoid

order: (%, %) -> NonNegativeInteger if R has IntegralDomain
patternMatch: (%, Pattern Float, PatternMatchResult(Float, %)) -> PatternMatchResult(Float, %) if R has PatternMatchable Float and SingletonAsOrderedSet has PatternMatchable Float
patternMatch: (%, Pattern Integer, PatternMatchResult(Integer, %)) -> PatternMatchResult(Integer, %) if R has PatternMatchable Integer and SingletonAsOrderedSet has PatternMatchable Integer
pomopo!: (%, R, NonNegativeInteger, %) -> %
prime?: % -> Boolean if R has PolynomialFactorizationExplicit
primitiveMonomials: % -> List %
primitivePart: % -> % if R has GcdDomain
primitivePart: (%, SingletonAsOrderedSet) -> % if R has GcdDomain
principalIdeal: List % -> Record(coef: List %, generator: %) if R has Field
pseudoDivide: (%, %) -> Record(coef: R, quotient: %, remainder: %) if R has IntegralDomain
pseudoQuotient: (%, %) -> % if R has IntegralDomain
pseudoRemainder: (%, %) -> %
quo: (%, %) -> % if R has Field

from EuclideanDomain

recip: % -> Union(%, failed)

from MagmaWithUnit

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

from LinearlyExplicitOver R

reducedSystem: Matrix % -> Matrix Integer if R has LinearlyExplicitOver Integer
reducedSystem: Matrix % -> Matrix R

from LinearlyExplicitOver R

reductum: % -> %
rem: (%, %) -> % if R has Field

from EuclideanDomain

resultant: (%, %) -> R if R has CommutativeRing
resultant: (%, %, SingletonAsOrderedSet) -> % if R has CommutativeRing
retract: % -> Fraction Integer if R has RetractableTo Fraction Integer
retract: % -> Integer if R has RetractableTo Integer
retract: % -> R

from RetractableTo R

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

from RetractableTo R

retractIfCan: % -> Union(SingletonAsOrderedSet, failed)
retractIfCan: % -> Union(SparseUnivariatePolynomial R, failed)
rightPower: (%, NonNegativeInteger) -> %

from MagmaWithUnit

rightPower: (%, PositiveInteger) -> %

from Magma

rightRecip: % -> Union(%, failed)

from MagmaWithUnit

sample: %

from AbelianMonoid

separate: (%, %) -> Record(primePart: %, commonPart: %) if R has GcdDomain
shiftLeft: (%, NonNegativeInteger) -> %
shiftRight: (%, NonNegativeInteger) -> %
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
squareFree: % -> Factored % if R has GcdDomain
squareFreePart: % -> % if R has GcdDomain
squareFreePolynomial: SparseUnivariatePolynomial % -> Factored SparseUnivariatePolynomial % if R has PolynomialFactorizationExplicit
subResultantGcd: (%, %) -> % if R has IntegralDomain
subResultantsChain: (%, %) -> List % if R has IntegralDomain

subResultantsChain(a, b) returns the list of the non-zero sub-resultants of a and b sorted by increasing degree.

subtractIfCan: (%, %) -> Union(%, failed)
support: % -> List NonNegativeInteger
totalDegree: % -> NonNegativeInteger
totalDegree: (%, List SingletonAsOrderedSet) -> NonNegativeInteger
totalDegreeSorted: (%, List SingletonAsOrderedSet) -> NonNegativeInteger
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
univariate: (%, SingletonAsOrderedSet) -> SparseUnivariatePolynomial %
unmakeSUP: SparseUnivariatePolynomial R -> %
unvectorise: Vector R -> %
variables: % -> List SingletonAsOrderedSet
vectorise: (%, NonNegativeInteger) -> Vector R
zero?: % -> Boolean

from AbelianMonoid

AbelianGroup

AbelianMonoid

AbelianSemiGroup

Algebra % if R has CommutativeRing

Algebra R if R has CommutativeRing

BasicType

BiModule(%, %)

BiModule(R, R)

CancellationAbelianMonoid

CommutativeRing if R has CommutativeRing

CommutativeStar if R has CommutativeRing

Comparable if R has Comparable

DifferentialRing

Eltable(%, %)

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

Eltable(R, R)

EntireRing if R has EntireRing

EuclideanDomain if R has Field

GcdDomain if R has GcdDomain

InnerEvalable(%, %)

IntegralDomain if R has IntegralDomain

LeftOreRing if R has GcdDomain

Magma

MagmaWithUnit

Module % if R has CommutativeRing

Module R if R has CommutativeRing

Monoid

NonAssociativeRing

NonAssociativeRng

NonAssociativeSemiRing

NonAssociativeSemiRng

noZeroDivisors if R has EntireRing

PrincipalIdealDomain if R has Field

Ring

Rng

SemiGroup

SemiRing

SemiRng

SetCategory

StepThrough if R has StepThrough

TwoSidedRecip if R has CommutativeRing

unitsKnown

VariablesCommuteWithCoefficients