[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |

# 1. Introduction to MPFR

MPFR is a portable library written in C for arbitrary precision arithmetic on floating-point numbers. It is based on the GNU MP library. It aims to provide a class of floating-point numbers with precise semantics. The main characteristics of MPFR, which make it differ from most arbitrary precision floating-point software tools, are:

- the MPFR code is portable, i.e., the result of any operation
does not depend on the machine word size
`mp_bits_per_limb`

(64 on most current processors); - the precision in bits can be set
*exactly*to any valid value for each variable (including very small precision); - MPFR provides the four rounding modes from the IEEE 754-1985 standard, plus away-from-zero, as well as for basic operations as for other mathematical functions.

In particular, with a precision of 53 bits, MPFR is able to
exactly reproduce all computations with double-precision machine
floating-point numbers (e.g., `double`

type in C, with a C
implementation that rigorously follows Annex F of the ISO C99 standard
and `FP_CONTRACT`

pragma set to `OFF`

) on the four arithmetic
operations and the square root, except the default exponent range is much
wider and subnormal numbers are not implemented (but can be emulated).

This version of MPFR is released under the GNU Lesser General Public License, version 3 or any later version. It is permitted to link MPFR to most non-free programs, as long as when distributing them the MPFR source code and a means to re-link with a modified MPFR library is provided.

[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |