MPFR: A multiple-precision binary floating-point library with correct rounding

This article presents a multiple-precision binary floating-point library, written in the ISO C language, and based on the GNU MP library. Its particularity is to extend to arbitrary-precision, ideas from the IEEE 754 standard, by providing correct rounding and exceptions. We demonstrate how these strong semantics are achieved---with no significant slowdown with respect to other arbitrary-precision tools---and discuss a few applications where such a library can be useful.

[1]  Guy L. Steele,et al.  How to print floating-point numbers accurately , 1990, SIGP.

[2]  Annie A. M. Cuyt,et al.  A precision- and range-independent tool for testing floating-point arithmetric I: basic operations, square root, and remainder , 2001, TOMS.

[3]  Andrew R. Booker,et al.  Effective computation of Maass cusp forms , 2006 .

[4]  T. E. Hull Desirable floating-point arithmetic and elementary functions for numerical computation , 1978, 1978 IEEE 4th Symposium onomputer Arithmetic (ARITH).

[5]  Norbert Th. Müller Towards a real Real RAM: a Prototype using C++ , 1996, CCA.

[6]  George E. Collins,et al.  Multiprecision floating point addition , 2000, ISSAC.

[7]  Stephen Wolfram,et al.  The Mathematica Book , 1996 .

[8]  Andrew R. Booker Artin's Conjecture, Turing's Method, and the Riemann Hypothesis , 2006, Exp. Math..

[9]  Mark Sofroniou,et al.  Precise numerical computation , 2005, J. Log. Algebraic Methods Program..

[10]  Eric Goubault,et al.  Static Analyses of the Precision of Floating-Point Operations , 2001, SAS.

[11]  Bruno Haible,et al.  Fast Multiprecision Evaluation of Series of Rational Numbers , 1998, ANTS.

[12]  Stephen Wolfram,et al.  The Mathematica book (3rd ed.) , 1996 .

[13]  William Kahan,et al.  Lecture Notes on the Status of IEEE Standard 754 for Binary Floating-Point Arithmetic , 1996 .

[14]  David Defour,et al.  Proposal for a Standardization of Mathematical Function Implementation in Floating-Point Arithmetic , 2004, Numerical Algorithms.

[15]  J. Muller,et al.  CR-LIBM A library of correctly rounded elementary functions in double-precision , 2006 .

[16]  Vladik Kreinovich,et al.  Towards Optimal Use of Multi-Precision Arithmetic: A Remark , 2006, Reliab. Comput..

[17]  Ansi Ieee,et al.  IEEE Standard for Binary Floating Point Arithmetic , 1985 .

[18]  I. S. Gradshteyn,et al.  1 – ELEMENTARY FUNCTIONS , 1980 .

[19]  Jean-Michel Muller,et al.  Elementary Functions: Algorithms and Implementation , 1997 .

[20]  D. Gay Correctly Rounded Binary-Decimal and Decimal-Binary Conversions , 1990 .

[21]  Karim Belabas,et al.  User’s Guide to PARI / GP , 2000 .

[22]  Thom Mulders On Short Multiplications and Divisions , 2000, Applicable Algebra in Engineering, Communication and Computing.

[23]  Jeremy R. Johnson,et al.  Efficient multiprecision floating point multiplication with optimal directional rounding , 1993, Proceedings of IEEE 11th Symposium on Computer Arithmetic.

[24]  J. Muller Elementary Functions, Algorithms and Implementation, 2nd Edition , 2006 .

[25]  Michel H. T. Hack,et al.  On Intermediate Precision Required for Correctly-Rounding Decimal-to-Binary Floating-Point Conversion. , 2004 .

[26]  William D. Clinger How to Read Floating-Point Numbers Accurately , 1990, PLDI.

[27]  Douglas M. Priest,et al.  Algorithms for arbitrary precision floating point arithmetic , 1991, [1991] Proceedings 10th IEEE Symposium on Computer Arithmetic.

[28]  Florent de Dinechin,et al.  Towards the post-ultimate libm , 2005, 17th IEEE Symposium on Computer Arithmetic (ARITH'05).

[29]  Damien Stehlé,et al.  Floating-Point LLL Revisited , 2005, EUROCRYPT.

[30]  Bruce W. Char,et al.  Maple V Language Reference Manual , 1993, Springer US.

[31]  Richard P. Brent,et al.  Recent technical reports , 1977, SIGA.

[32]  Vincent Lefèvre The Generic Multiple-Precision Floating-Point Addition With Exact Rounding (as in the MPFR Library) , 2005, ArXiv.

[33]  Guido D. Salvucci,et al.  Ieee standard for binary floating-point arithmetic , 1985 .

[34]  Bruce W. Char,et al.  Maple V Library Reference Manual , 1992, Springer New York.

[35]  David M. Smith,et al.  Algorithm 693: a FORTRAN package for floating-point multiple-precision arithmetic , 1991, TOMS.

[36]  Abraham Ziv,et al.  Fast evaluation of elementary mathematical functions with correctly rounded last bit , 1991, TOMS.