THE MPFR LIBRARY ***** EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL ***** ***** EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL ***** ***** EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL ***** This is a new function class, 'mpfr', for accurate floating-point arithmetic with rounding control. Unlike the 'mpf' function class, 'mpfr' is a smooth extension to the IEEE P754 arithmetic. In fact, setting the precision to 53, 'mpfr' functions should work exactly like IEEE doubles. This code is *experimental* and it is not fully integrated into GMP. It is also not as well tested as the other parts of GMP. The original 'mpfr' library integrated into GMP was version 0.4. This code might at some point replace the 'mpf' library. MORE INFORMATION This code was contributed by the French FIABLE project. Please see the 'mpfr' project page for more info, http://www.loria.fr/projets/mpfr/ INSTALLATION To install this package to the libgmp library you add the "--enable-mpfr" to configure. This has the unfortune side effect that all programs using GMP will also depend on 'libm'. Two test cases were disabled, 'tcmp' 'tset_d'. REPORTING BUGS Report bugs to bug-gmp@gnu.org and mpfr@loria.fr. What information is needed in a good bug report is described in the manual. The same address can be used for suggesting modifications and enhancements. NOTES FROM THE ORIGINAL INSTALL DOCUMENT We tested the installation with GMP 2.0.2 on the following architectures: Pentium II and III/Linux 2.2.10 Alpha 21264/OSF1 V4.0 SGI R10000/IRIX 6.5 (both using 32- and 64-bit limbs) Sun UltraSparc/Solaris 2.6 HP 9000/HP-UX A.09.05 Pentium/Windows with Cygnus compiler Known problems. =============== 1) On some architectures (for example Alpha/OSF), the default 'make' command crashes in step 3. GNU make is preferred. 2) Under HP-UX and Pentium/Linux, don't use the -pedantic option, otherwise gcc complains with the longlong.h file from GMP. 3) On the Alpha, the test file for the square root (tsqrt) may produce errors as follows: libm.a differs from mpfr_sqrt for a=9.89438396044940260000e-134, rnd_mode=2 libm.a gives 3.14553397063986620000e-67, mpfr_sqrt gives 3.14553397063986680000e-67 (1 ulp) libm.a differs from mpfr_sqrt for a=7.86528588050363750000e+31, rnd_mode=1 libm.a gives 8.86864469944739500000e+15, mpfr_sqrt gives 8.86864469944739400000e+15 (-1 ulp) Also, Linux on Alpha is known to have problems with IEEE conformance. See http://www.linux.org.uk/VERSION/relnotes.2211.html. In most cases, as above, the error comes from the libm.a. On Alpha/Linux, which is known to have a bad libm.a, you may even find errors in the addition or multiplication.