Karim BELABAS on Wed, 20 Jan 1999 14:12:51 +0100 (MET)


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: another nfgaloisconj() problem


[Igor:]
> nfgaloisconj() can't handle linear polynomials in post-2.0.11 version.
> For example, nfgaloisconj(nfinit(x+1)) hits an infinite SEGV loop.

Actually a conjunction of 2 fatal, obscure and completely unrelated bugs
(unrelated to nfgaloisconj or nfinit also...).

You're an invaluable tester, Igor !

  Karim.

*** src/basemath/base1.c.orig   Wed Jan 20 13:09:57 1999
--- src/basemath/base1.c        Wed Jan 20 13:29:46 1999
*** src/basemath/polarit1.c.orig        Fri Jan  8 19:20:36 1999
--- src/basemath/polarit1.c     Wed Jan 20 13:37:43 1999
***************
*** 476,483 ****
    if (i == 2) j = 1;
    else
    {
!     a = f + i-2; a[1] = f[1]; a[0] = f[0];
!     setlgef(a, lgef(f) - (i-2)); /* a = f / x^{v_x(f)} */
      j = 2; f = a;
    }
    q = shifti(p,-1);
--- 476,485 ----
    if (i == 2) j = 1;
    else
    {
!     j = lgef(f) - (i-2);
!     a = cgetg(j, t_POL); /* a = f / x^{v_x(f)} */
!     a[1] =  evalsigne(1) | evalvarn(varn(f)) | evallgef(j);
!     f += i-2; for (i=2; i<j; i++) a[i]=f[i];
      j = 2; f = a;
    }
    q = shifti(p,-1);
*** src/basemath/polarit3.c.orig        Tue Dec 15 16:29:54 1998
--- src/basemath/polarit3.c     Wed Jan 20 13:44:44 1999
***************
*** 260,265 ****
--- 260,266 ----
    long m,i,j,av=avma, lim=(av+bot)>>1, vx = varn(x);
    GEN p1 = n+2, y = x, z;
    if (!signe(n)) return polun[vx];
+   if (is_pm1(n)) return gcopy(x);
    m = *p1;
    j=1+bfffo(m); m<<=j; j = BITS_IN_LONG-j;
    for (i=lgefint(n)-2;;)

--
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://pari.home.ml.org