Title: On Collins Modular Algorithm for Computing Resultant
1On Collins Modular Algorithm for Computing
Resultant
- CS874 Course Project
- Yuzhen Xie
- Instructed by Marc Mareno Maza
- April 30, 2003
2Overview
- Goals of the project
- Significance of the resultant
- Principles of modular computations in Euclidean
domains - Principles of modular resultant algorithm of
Collins - Implementation in Aldor
- Experimentation and results
- Annex
3Goals of the Project
- To understand the modular resultant algorithm
- To have an efficient implementation of the
resultant of two bivariate polynomials - To experiment the advantage of modular techniques
in computer algebra - To learn generic programming with Aldor
4Significance of the resultant
- Given two polynomials f(v) , g(v)
, the resultant of f, g is defined
as the determinant of the Sylvester matrix - det(S) 0 if and only if f and g have a common
divisor of positive degree. - So, if f, g ?(Zu)v then res(f,g) Zu
and give the values of u for which f, g have
common roots
n
m
5Principles of modular computations
- To keep under control the size of the
coefficients - fp Z ? Z/pZ is a ring homomorphism.
- That is,
- fp(ab) fp(a) fp(b) , and
- fp(a b) fp(a) fp(b)
- Let A be a square matrix over Z, since det(A) is
made from additions and multiplications of Z,
fp(det(A)) det(fp(A)). - if det(A) lt , then fp(det(A)) det(A).
- Therefore, det(fp(A)) det(A)
6Principles of modular computations (contd)
- For this to work, we need a bound. We have the
Hadamard bound -
- To use Small Primes and machine arithmetic, we
can use several modular reductions, ?p1, , ?pn
and recombine the results with the CRA (Chinese
Remaindering Algorithm)
7The Modular Resultant Algorithm of Collins (in a
case of two bivariate polynomials)
f(u)(v), g(u)(v) and prime p p1, , pn such
that p does not divide gcd(lc(f), lc(g)), and
p1pn gt Coefficient bound C
?p(f(u)(v)) and ?p(g(u)(v))
Degree bound k, and a a1, , ak1 (ai ?Z/p, and
lc(fp), lc(gp) ? 0 at u a)
?p(f(ua)(v)) and ?p(g(ua)(v))
Compute the resultant r of ?p(f(ua)(v)) and
?p(g(ua)(v))
r1, , rk1 (ri ?Z/p)
Compute the resultant of ?p(f(u)(v)) and
?p(g(u)(v)) by CRA
rp1(u), , rpn(u) (rp1(u) ?Z/p1u, ,
rpn(u)?Z/pnu )
Compute the resultant of f(u)(v) and g(u)(v) by
CRA
8The Modular Resultant Algorithm of Collins
(contd)
- Coefficient bound
- 2(mn)!dnem, where d max norm (fi) and e max
norm (gi) -
- Degree bound
- degreeu(resv(f.g)) lt degu(f)degv(g)
degu(g)degv(f)
9Implementation in Aldor (1)
- //This package computes bounds and helps
choosing primes - // Z Integer, M MachineInteger
- BivariateUtilitiesPackage(U UnivariatePolynomialC
ategory(Z), _ - V UnivariatePolynomialC
ategory(U)) with - resultantCoefficientBound (V, V) -gt Z
- resultantDegreeBound (V, V) -gt Z
- primeBad? (V, V, M) -gt Boolean
-
10Implementation in Aldor (2)
- // We compute resultant of biv. poly. over a Z/pZ
- ResultantOfBivariatePolynomialsOverSmallPrimeField
( - Kp SmallPrimeFieldCategory,
- Up UnivariatePolynomialCategory(Kp),
- Vp UnivariatePolynomialCategory(Up)) with
- evaluationResultant (Vp, Vp, Z) -gt Up
- // the third argument is the degree bound
- // After evaluation, we use the generic
algorithm - // for resultants in Z/pZv
- // Then we interpolate them with CRA
- evaluationReduction (Vp, Kp) -gt Up
11Implementation in Aldor (3)
- ModularResultantOfBivariatePolynomials(
- U UnivariatePolynomialCategory(Z),
- V UnivariatePolynomialCategory(U)) with
- modularResultant (V, V, algorithm Z 1) -gt
U - // Top level function
- combine (DUP(Z), Z, DUP(M), M) -gt DUP(Z)
- // Use the CRA for recovering the coefficients
- // the resultant
- resultant (V, V, M, Z, algorithm Z
1) -gt DUPM - // Performs the reduction and calls the previous
- // package
-
12Experimentation and results
- CRA-CRA modular resultant algorithm of Collins
- Generic essentially the computation of the
determinate of the Sylvester matrix, without
taking into account the properties of coefficient
ring. - CRA-Generic we use modular computations for the
coefficients, but the generic method in
Z/pZuv. - Experimentation on a PC Pentium IV 2 Gig Hz
- Results for polynomials with very large
degrees - Degree of u, v Resultant degree CRA-CRA
CRA-Generic Generic - (10,30) 600 87
352 492
- (20,25) 1000 136
462 635 - (20,50) 2000 1444
? gt 2h - (30,50) 3000 2780
? ?
13Conclusion Remarks
- Now we can compute resultants of polynomials with
larger degrees in libalgebra (Aldor) than before. - Consequently we should be able to solve larger
polynomial systems. - Our experimentation shows that a mixed method
(CRA-Generic) is interesting for resultants of
polynomials with medium degree.