[Gcl-devel] Bug in mpz_get_d
Paul Zimmermann
Paul.Zimmermann at loria.fr
Tue Dec 15 13:19:01 CET 2009
> Please stop writing verbose message with kilobytes of irrelevant copied
> text. This is a bugs mailing list and not a dicussion forum. After
> many long messages, we have yet to see evidence that there is any bug in
> GMP, just evidence of poor reading of documentation, and possibly poor
> understanding of IEEE 754.
here is a tentative to close that issue.
Summary: for input a = 2^1000-1 = 10715086071862673...375, mpz_get_d(a) gives
1.0715086071862672E301, whereas Camm Maguire expected 1.0715086071862673E301.
Explanation:
1) as said in the documentation, mpz_get_d truncates its input, thus 2^1000-1
is truncated to d = 2^1000-2^947, which is the largest 53-bit floating-point
number less or equal to a. We have d = 10715086071862672[0]...048.
2) when printed to 17 figures, d is rounded to nearest, which gives
1.0715086071862672E301.
(Remember that double-precision floating-point numbers are stored in binary.)
Thus I see no bug.
Paul Zimmermann
More information about the gmp-bugs
mailing list