Bill Allombert on Mon, 1 Nov 1999 21:01:04 +0100 (MET) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: global() bug |
Here a patch for the two following bugs: ? trace([;]) *** bus error: bug in GP (please report). ? "ee"/"aa" *** bus error: bug in GP (please report). But there still so much ... ? "ee"/x %1 = "ee"/x ? "aa"/x *** segmentation fault: bug in GP (please report). I have a nice program than creates random GEN. It has found its third bug: ? (5+3*I)+O(5^-18) *** segmentation fault: bug in GP (please report). So much bugs and so little time... (CVS version updated) Index: src/basemath/alglin2.c =================================================================== RCS file: /home/megrez/cvsroot/pari/src/basemath/alglin2.c,v retrieving revision 1.5 diff -u -r1.5 alglin2.c --- src/basemath/alglin2.c 1999/10/29 09:04:51 1.5 +++ src/basemath/alglin2.c 1999/11/01 19:51:52 @@ -544,6 +544,7 @@ case t_MAT: lx=lg(x); if (lx!=lg(x[1])) err(mattype1,"gtrace"); + if (lx==1) return gzero;/*now lx>=2*/ l=avma; p1=gcoeff(x,1,1); if (lx==2) return gcopy(p1); for (i=2; i<lx-1; i++) p1=gadd(p1,gcoeff(x,i,i)); Index: src/basemath/gen1.c =================================================================== RCS file: /home/megrez/cvsroot/pari/src/basemath/gen1.c,v retrieving revision 1.5 diff -u -r1.5 gen1.c --- src/basemath/gen1.c 1999/10/30 18:12:54 1.5 +++ src/basemath/gen1.c 1999/11/01 19:51:54 @@ -2003,7 +2003,12 @@ if (ty!=t_MAT || ly==1 || lg(y[1])!=ly) err(gdiveri,tx,ty); l=avma; p1=invmat(y); tetpil=avma; return gerepile(l,tetpil,gmul(x,p1)); + case t_QFI:case t_QFR: + break; + default: + err(typeer,"division"); } + /*Here tx==t_QFI || tx==t_QFR*/ if (tx==ty) { l=signe(y[2]); setsigne(y[2],-l);