Karim Belabas on Thu, 20 Nov 1997 18:52:11 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
patch3 |
* This addresses the bug reported by Gerhard in message 6 of this list. (14:05) gp > 1. * quadgen(-163) \\ supposedly a root of x^2 - x - 41 %1 = 0.0000000000000000000000000000 + 6.383572667401852330855476004*I off by 0.5 ! This bug occurred in the conversion of quadratic numbers to complex (floating point) numbers. It affected operations between quadratic numbers (t_QUAD) of NEGATIVE disriminant and imprecise objects (t_REAL, etc.). It was introduced in version 1.928 (never officially released). =========================== patch3 (2.0.alpha) ============================= *** src/basemath/gen2.c.orig Fri Nov 14 04:53:26 1997 --- src/basemath/gen2.c Thu Nov 20 14:17:06 1997 *************** *** 1531,1537 **** else { p1 = gsub(gsqrt(p1,prec), (GEN)p[3]); ! setexpo(p1[1], expo(p1[1])-1); setexpo(p1[2], expo(p1[2])-1); }/* p1 = (-b + sqrt(D)) / 2 */ p1 = gmul((GEN)x[3],p1); tetpil=avma; --- 1531,1537 ---- else { p1 = gsub(gsqrt(p1,prec), (GEN)p[3]); ! p1[1] = lmul2n((GEN)p1[1],-1); setexpo(p1[2], expo(p1[2])-1); }/* p1 = (-b + sqrt(D)) / 2 */ p1 = gmul((GEN)x[3],p1); tetpil=avma; -- Karim Belabas e-mail: Max-Planck-Institut fuer Mathematik karim@mpim-bonn.mpg.de Gottfried-Claren-Str. 26 tel: 53225 Bonn (Germany) (00 49 228) 402-245