Michael Somos on Sat, 30 Oct 1999 08:43:45 -0400 (EDT) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: sqr() bug? |
Bill Allombert has pointed out something that I missed before. Namely: gp> 5+O(2^10) %1 = 1 + 2^2 + O(2^10) gp> %1^2 %2 = 1 + 2^3 + 2^4 + O(2^11) gp> %1*%1 %3 = 1 + 2^3 + 2^4 + O(2^11) gp> (5+O(2^10))*(5+O(2^10)) %4 = 1 + 2^3 + 2^4 + O(2^10) This reminds me of a similar kind of phenomenon in interval arithmetic which might be closely related. Since this is obvious in hindsight, I may suggest that a few more sentences in the documentation could point out this phenomenon very explicitly. As it is now written, documentation seems incorrect. That is, *both* x^2 and x*x give exactly the same result as sqr(x). What gives a different result is the product of two p-adic numbers which are not identical but which have the same value. Thus : gp> x=5+O(2^10) %5 = 1 + 2^2 + O(2^10) gp> x^2 %6 = 1 + 2^3 + 2^4 + O(2^11) gp> x*x %7 = 1 + 2^3 + 2^4 + O(2^11) gp> sqr(x) %8 = 1 + 2^3 + 2^4 + O(2^11) gp> y=x %9 = 1 + 2^2 + O(2^10) gp> x*y %10 = 1 + 2^3 + 2^4 + O(2^10) This is a subtle point which I think needs to be clearly desribed. Thus, this is not a bug in GP/PARI itself, but a feature which could be better documented. The current documentation seems to indicate that "x*x" and perhaps "x^2" (which is not mentioned) would give a different result than "sqr(x)". This is clearly not the case. Again, the situation is clear in hindsight, but only if the correct explanation is given. Shalom, Michael -- Michael Somos <somos@grail.cba.csuohio.edu> Cleveland State University http://grail.cba.csuohio.edu/~somos/ Cleveland, Ohio, USA 44115