[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