Karim BELABAS on Mon, 14 Dec 1998 18:48:37 +0100 (MET) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: new nfdisc() bug in 2.0.12 and later |
[Igor:] > nfdisc(x^4-6*x^3-9*x^2-6*x+1) > > doubles stack to memory exhaustion. A typo in 2.0.12 (I had swapped the cases "p huge" and "p small", so that the latter could enter an infinite loop). Here's a patch. Karim (2.0.13 is nearly ready anyway, but if you can't wait...) *** src/basemath/base2.c.orig Thu Dec 10 11:38:28 1998 --- src/basemath/base2.c Mon Dec 14 18:41:54 1998 *************** *** 911,917 **** pp = p[2]; if (lgef(p)>3 || pp<0) pp=0; for (t=1; ; t++) { ! h = pp? scalarpol(stoi(t),v): stopoly(t,pp,v); theta = gadd(gamma,gmod(h,fa)); w=factcp(p,fa,theta); h=(GEN)w[3]; if (h[2] > 1) --- 911,917 ---- pp = p[2]; if (lgef(p)>3 || pp<0) pp=0; for (t=1; ; t++) { ! h = pp? stopoly(t,pp,v): scalarpol(stoi(t),v); theta = gadd(gamma,gmod(h,fa)); w=factcp(p,fa,theta); h=(GEN)w[3]; if (h[2] > 1) *************** *** 1070,1076 **** pp = p[2]; if (lgef(p)>3 || pp<0) pp=0; for (t=1; ; t++) { ! h = pp? scalarpol(stoi(t),v): stopoly(t,pp,v); phi = gadd(theta,gmod(h,fa)); w=factcp(p,fa,phi); h=(GEN)w[3]; if (h[2] > 1) --- 1070,1076 ---- pp = p[2]; if (lgef(p)>3 || pp<0) pp=0; for (t=1; ; t++) { ! h = pp? stopoly(t,pp,v): scalarpol(stoi(t),v); phi = gadd(theta,gmod(h,fa)); w=factcp(p,fa,phi); h=(GEN)w[3]; if (h[2] > 1) -- 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