prs.spad line 1 [edit on github]
This package contains some functions: discriminant, resultant, subResultantGcd, chainSubResultants, degreeSubResultant, lastSubResultant, resultantEuclidean, subResultantGcdEuclidean, semiSubResultantGcdEuclidean1
, semiSubResultantGcdEuclidean2
, etc. These procedures are coming from improvements of the subresultants algorithm.
LazardQuotient(x, y, n)
computes x^n exquo y^(n-1)
LazardQuotient2(F, x, y, n)
computes (x^(n-1) * F) exquo y^(n-1)
chainSubResultants(P, Q)
computes the list of non zero subresultants of P
and Q
.
degreeSubResultant(P, Q, d)
computes a subresultant of degree d
.
degreeSubResultantEuclidean(P, Q, d)
returns a subresultant S_i
of degree d
and carries out the equality coef1*P + coef2*Q = S_i
.
discriminant(P)
returns the discriminant of P
.
discriminantEuclidean(P)
carries out the equality coef1 * P + coef2 * D(P) = discriminant(P)
.
divide(F, G)
computes quotient and rest of the exact euclidean division of F
by G
.
gcd(P, Q)
returns the gcd
of P
and Q
.
indiceSubResultant(P, Q, i)
returns the subresultant of indice i
indiceSubResultant(P, Q, i)
returns the subresultant S_i(P, Q)
and carries out the equality coef1*P + coef2*Q = S_i(P, Q)
lastSubResultant(P, Q)
computes the last non zero subresultant of P
and Q
lastSubResultantEuclidean(P, Q)
computes the last non zero subresultant S
and carries out the equality coef1*P + coef2*Q = S
.
next_sousResultant2(P, Q, Z, s)
returns the subresultant S_e-1
where P ~ S_d, Q = S_d-1, Z = S_e, s = lc(S_d)
resultant(P, Q)
returns the resultant of P
and Q
resultantEuclidean(P, Q)
carries out the equality coef1*P + coef2*Q = resultant(P, Q)
resultantReduit(P,Q)
returns the "reduce resultant" of P
and Q
.
resultantReduitEuclidean(P, Q)
returns the "reduce resultant" and carries out the equality coef1*P + coef2*Q = resultantReduit(P, Q)
.
schema(P, Q)
returns the list of degrees of non zero subresultants of P
and Q
.
semiDegreeSubResultantEuclidean(P, Q, d)
returns a subresultant S_i
of degree d
and carries out the equality ... P + coef2*Q = S_i
. Warning: degree(P) >= degree(Q)
.
discriminantEuclidean(P)
carries out the equality ... P + coef2 * D(P) = discriminant(P)
. Warning: degree(P) >= degree(Q)
.
semiIndiceSubResultantEuclidean(P, Q, i)
returns the subresultant S_i(P, Q)
and carries out the equality ... P + coef2*Q = S_i(P, Q)
Warning: degree(P) >= degree(Q)
.
semiLastSubResultantEuclidean(P, Q)
computes the last non zero subresultant S
and carries out the equality ... P + coef2*Q = S
. Warning: degree(P) >= degree(Q)
.
semiResultantEuclidean1(P, Q)
carries out the equality coef1.P + ... Q = resultant(P, Q)
.
semiResultantEuclidean2(P, Q)
carries out the equality ... P + coef2*Q = resultant(P, Q)
. Warning: degree(P) >= degree(Q)
.
semiResultantReduitEuclidean(P, Q)
returns the "reduce resultant" and carries out the equality ... P + coef2*Q = resultantReduit(P, Q)
.
semiSubResultantGcdEuclidean1(P, Q)
carries out the equality coef1*P + ... Q = +/- S_i(P, Q)
where the degree (not the indice) of the subresultant S_i(P, Q)
is as small as possible.
semiSubResultantGcdEuclidean2(P, Q)
carries out the equality ... P + coef2*Q = +/- S_i(P, Q)
where the degree (not the indice) of the subresultant S_i(P, Q)
is as small as possible. Warning: degree(P) >= degree(Q)
.
subResultantGcd(P, Q)
returns the gcd
of two primitive polynomials P
and Q
.
subResultantGcdEuclidean(P, Q)
carries out the equality coef1*P + coef2*Q = +/- S_i(P, Q)
where the degree (not the indice) of the subresultant S_i(P, Q)
is as small as possible.