| Karim BELABAS on Fri, 22 Jan 1999 13:11:25 +0100 (MET) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: poldisc |
> > > p=a*x^3+b*x^2*y+c*x*y^2+d*y^3 + e*x^2+f*x*y+g*y^2 + h*x+i*y + h
> > > di=poldisc(p)
>
> > PARI's internal representation for polynomials... (highly non-symetrical,
> > optimized for 1 or 2 variables).
> >
> > It is instantaneous with default stack, *IF* you make sure the
> > important variables have high priority:
> > gp> y; p=a*x^3+b*x^2*y+c*x*y^2+d*y^3 + e*x^2+f*x*y+g*y^2 + h*x+i*y + h
> > ^^^ (now x and y are priviledged)
>
> What makes y important? That p has slightly higher degree in y?
Yes; and more importantly so will the successive polynomials arising from the
pseudo-division remainder sequence. Division of multivariate polynomials are
a nightmare in PARI (the gcd computations will take forever); it gets
infinitely better if the polynomials are unitary (no divisions...) but that
will almost never be the case when computing resultants.
> Even if I assume that the polynomials are stored as sequences of
> coefficients wrt variables, and variables are (by default) ordered by
> the order PARI have seen them,
They are.
> the difference between two orderings still seems to be a transposition of a
> matrix/tensor. How may this affect speed?
In the sense that no effort is made to reorder the variables prior to the
computation. Try something like
f(n) = matdet(eval(matrix(n,n,i,j, Str("x" i "" j))))
f(6) \\ f(5) is still doable
under the debugger to see what I mean (see poldivres() getting crazy)
In fact, I am clueless as to what (moderately) efficient multivariate
division would require. Anybody able to help here ?
Karim.
--
Karim Belabas email: Karim.Belabas@math.u-psud.fr
Dep. de Mathematiques, Bat. 425
Universite Paris-Sud Tel: (00 33) 1 69 15 57 48
F-91405 Orsay (France) Fax: (00 33) 1 69 15 60 19
--
PARI/GP Home Page: http://hasse.mathematik.-tu-muenchen.de/ntsw/pari/