PseudoRemainderSequence(R, polR)¶
prs.spad line 1 [edit on github]
polR: UnivariatePolynomialCategory R
This package contains some functions: discriminant, resultant, subResultantGcd, chainSubResultants, degreeSubResultant, lastSubResultant, resultantEuclidean, subResultantGcdEuclidean, \ ``semiSubResultantGcdEuclidean1`\ <l50736575646f52656d61696e64657253657175656e6365-5c20606073656d69537562526573756c74616e744763644575636c696465616e3160605c20>`, \ ``semiSubResultantGcdEuclidean2`\ <l50736575646f52656d61696e64657253657175656e6365-5c20606073656d69537562526573756c74616e744763644575636c696465616e3260605c20>`, etc. These procedures are coming from improvements of the subresultants algorithm.
- chainSubResultants: (polR, polR) -> List polR
chainSubResultants(P, Q)computes the list of non zero subresultants ofPandQ.
- degreeSubResultant: (polR, polR, NonNegativeInteger) -> polR
degreeSubResultant(P, Q, d)computes a subresultant of degreed.
- degreeSubResultantEuclidean: (polR, polR, NonNegativeInteger) -> Record(coef1: polR, coef2: polR, subResultant: polR)
degreeSubResultantEuclidean(P, Q, d)returns a subresultantS_iof degreedand carries out the equalitycoef1*P + coef2*Q = S_i.
- discriminant: polR -> R
discriminant(P)returns the discriminant ofP.
- discriminantEuclidean: polR -> Record(coef1: polR, coef2: polR, discriminant: R)
discriminantEuclidean(P)carries out the equalitycoef1 * P + coef2 * D(P) = discriminant(P).
- divide: (polR, polR) -> Record(quotient: polR, remainder: polR)
divide(F, G)computes quotient and rest of the exact euclidean division ofFbyG.
- gcd: (polR, polR) -> polR if R has GcdDomain
gcd(P, Q)returns thegcdofPandQ.
- indiceSubResultant: (polR, polR, NonNegativeInteger) -> polR
indiceSubResultant(P, Q, i)returns the subresultant of indicei
- indiceSubResultantEuclidean: (polR, polR, NonNegativeInteger) -> Record(coef1: polR, coef2: polR, subResultant: polR)
indiceSubResultant(P, Q, i)returns the subresultantS_i(P, Q)and carries out the equalitycoef1*P + coef2*Q = S_i(P, Q)
- lastSubResultant: (polR, polR) -> polR
lastSubResultant(P, Q)computes the last non zero subresultant ofPandQ
- lastSubResultantEuclidean: (polR, polR) -> Record(coef1: polR, coef2: polR, subResultant: polR)
lastSubResultantEuclidean(P, Q)computes the last non zero subresultantSand carries out the equalitycoef1*P + coef2*Q = S.
- LazardQuotient2: (polR, R, R, NonNegativeInteger) -> polR
LazardQuotient2(F, x, y, n)computes(x^(n-1) * F) exquo y^(n-1)
- LazardQuotient: (R, R, NonNegativeInteger) -> R
LazardQuotient(x, y, n)computesx^n exquo y^(n-1)
- next_sousResultant2: (polR, polR, polR, R) -> polR
next_sousResultant2(P, Q, Z, s)returns the subresultantS_{e-1}whereP ~ S_d, Q = S_{d-1}, Z = S_e, s = lc(S_d)
- resultant: (polR, polR) -> R
resultant(P, Q)returns the resultant ofPandQ
- resultantEuclidean: (polR, polR) -> Record(coef1: polR, coef2: polR, resultant: R)
resultantEuclidean(P, Q)carries out the equalitycoef1*P + coef2*Q = resultant(P, Q)
- resultantReduit: (polR, polR) -> R if R has GcdDomain
resultantReduit(P,Q)returns the “reduce resultant” ofPandQ.
- resultantReduitEuclidean: (polR, polR) -> Record(coef1: polR, coef2: polR, resultantReduit: R) if R has GcdDomain
resultantReduitEuclidean(P, Q)returns the “reduce resultant” and carries out the equalitycoef1*P + coef2*Q = resultantReduit(P, Q).
- schema: (polR, polR) -> List NonNegativeInteger
schema(P, Q)returns the list of degrees of non zero subresultants ofPandQ.
- semiDegreeSubResultantEuclidean: (polR, polR, NonNegativeInteger) -> Record(coef2: polR, subResultant: polR)
semiDegreeSubResultantEuclidean(P, Q, d)returns a subresultantS_iof degreedand carries out the equality... P + coef2*Q = S_i. Warning:degree(P) >= degree(Q).
- semiDiscriminantEuclidean: polR -> Record(coef2: polR, discriminant: R)
discriminantEuclidean(P)carries out the equality... P + coef2 * D(P) = discriminant(P). Warning:degree(P) >= degree(Q).
- semiIndiceSubResultantEuclidean: (polR, polR, NonNegativeInteger) -> Record(coef2: polR, subResultant: polR)
semiIndiceSubResultantEuclidean(P, Q, i)returns the subresultantS_i(P, Q)and carries out the equality... P + coef2*Q = S_i(P, Q)Warning:degree(P) >= degree(Q).
- semiLastSubResultantEuclidean: (polR, polR) -> Record(coef2: polR, subResultant: polR)
semiLastSubResultantEuclidean(P, Q)computes the last non zero subresultantSand carries out the equality... P + coef2*Q = S. Warning:degree(P) >= degree(Q).
- semiResultantEuclidean1: (polR, polR) -> Record(coef1: polR, resultant: R)
semiResultantEuclidean1(P, Q)carries out the equalitycoef1.P + ... Q = resultant(P, Q).
- semiResultantEuclidean2: (polR, polR) -> Record(coef2: polR, resultant: R)
semiResultantEuclidean2(P, Q)carries out the equality... P + coef2*Q = resultant(P, Q). Warning:degree(P) >= degree(Q).
- semiResultantReduitEuclidean: (polR, polR) -> Record(coef2: polR, resultantReduit: R) if R has GcdDomain
semiResultantReduitEuclidean(P, Q)returns the “reduce resultant” and carries out the equality... P + coef2*Q = resultantReduit(P, Q).
- semiSubResultantGcdEuclidean1: (polR, polR) -> Record(coef1: polR, gcd: polR)
semiSubResultantGcdEuclidean1(P, Q)carries out the equalitycoef1*P + ... Q = +/- S_i(P, Q)where the degree (not the indice) of the subresultantS_i(P, Q)is as small as possible.
- semiSubResultantGcdEuclidean2: (polR, polR) -> Record(coef2: polR, gcd: polR)
semiSubResultantGcdEuclidean2(P, Q)carries out the equality... P + coef2*Q = +/- S_i(P, Q)where the degree (not the indice) of the subresultantS_i(P, Q)is as small as possible. Warning:degree(P) >= degree(Q).
- subResultantGcd: (polR, polR) -> polR
subResultantGcd(P, Q)returns thegcdof two primitive polynomialsPandQ.
- subResultantGcdEuclidean: (polR, polR) -> Record(coef1: polR, coef2: polR, gcd: polR)
subResultantGcdEuclidean(P, Q)carries out the equalitycoef1*P + coef2*Q = +/- S_i(P, Q)where the degree (not the indice) of the subresultantS_i(P, Q)is as small as possible.