Karim BELABAS on Thu, 21 Jan 1999 15:58:35 +0100 (MET) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: poldisc |
> [Ilya:] > > a) It looks like you cannot advice poldisc() which variable you are > > interested in. [me:] > True; easy to add, though. The patch below does what you want (see online > help). Hum, too easy... My previous patch did the wrong thing when the polynomial was not unitary. This one should be foolproof (apply after my preceding poldisc() patch). Karim. *** src/basemath/polarit2.c.orig Thu Jan 21 15:20:43 1999 --- src/basemath/polarit2.c Thu Jan 21 15:50:21 1999 *************** *** 2071,2082 **** { case t_POL: if (gcmp0(x)) return gzero; ! if (v < 0) ! p1 = subres(x, derivpol(x)); ! else ! p1 = polresultant0(x, deriv(x,v), v, 0); p2 = leading_term(x); if (!gcmp1(p2)) p1 = gdiv(p1,p2); if ((lgef(x)-3) & 2) p1 = gneg(p1); return gerepileupto(av,p1); case t_COMPLEX: --- 2071,2081 ---- { case t_POL: if (gcmp0(x)) return gzero; ! if (v >= 0 && v != varn(x)) { i = 0; x = fix_pol(x,v, &i); } ! p1 = subres(x, derivpol(x)); p2 = leading_term(x); if (!gcmp1(p2)) p1 = gdiv(p1,p2); if ((lgef(x)-3) & 2) p1 = gneg(p1); + if (i) p1 = gsubst(p1, MAXVARN, polx[0]); return gerepileupto(av,p1); case t_COMPLEX: -- 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/