GNU MPFR
# GNU MPFR

GNU MPFR est une bibliothèque portable C de calcul arithmétique multiprécision en virgule flottante avec arrondi correct. C'est un logiciel libre basé sur GNU MP et maintenu pour le projet GNU par Inria et la communauté $hacker^,.$

MPFR constitue une brique de base essentielle pouvant servir à la construction d'un système de calcul formel.

## Historique

La première version publique de MPFR est distribuée le 4 février 2000. Cette bibliothèque logicielle est à l'origine développée par Paul Zimmermann, lequel a par ailleurs contribué au développement de la bibliothèque GMP. Les droits d'auteurs sont assignés à la Free Software Foundation dès juin 2000.

MPFR devient officiellement un projet GNU le 26 janvier 2009 pour la réalisation de la version 2.4.0.

## Caractéristiques techniques

La bibliothèque est dédiée au calcul de flottants multiprécision en base 2 avec arrondi exact. Les calculs sont à la fois efficaces et bien définis sémantiquement. MPFR reprend les bonnes idées de la norme ANSI/IEEE-754 sur l'arithmétique flottante en précision fixe. Plus précisément, ses caractéristiques principales sont :

* Support des nombres spéciaux : zéros signés, infinis et not-a-number (un seul NaN est supporté).
* Chaque nombre a sa propre précision (en bits, puisque MPFR utilise la base 2). Le résultat est arrondi correctement à la précision de la variable cible, dans n'importe lequel des quatre modes d'arrondi IEEE 754-1985 ainsi que dans le mode d'arrondi away from zero (inverse de l'arrondi vers zéro).
* Fonctions supportées : MPFR implémente toutes les fonctions mathématiques de C99 et d'autres fonctions mathématiques usuelles :
   * le logarithme et l'exponentielle en base naturelle, base 2 et base 10,
   * log(1+x) et exp(x)−1 (log1p et expm1),
   * les six fonctions trigonométriques et hyperboliques ainsi que leurs inverses,
   * gamma et logarithme de gamma,
   * digamma (aussi appelée fonction psi),
   * zêta,
   * erreur,
   * fonctions de Bessel,
   * la moyenne arithmético-géométrique et
   * l'exponentiation $(x^y).$

Toutes ces fonctions sont arrondies correctement sur l'ensemble de leur domaine de définition.

Les dénormalisés ne sont pas supportés, mais peuvent être émulés avec la fonction mpfr_subnormalize.

MPFR n'est pas capable de suivre la précision des nombres sur l'ensemble d'un programme ou expression : ce n'est pas son but. Les logiciels d'arithmétique d'intervalles, comme Arb ou MPFI, ou des implémentations de Real RAM (en), comme iRRAM, dont certaines sont basées sur MPFR, sont capables de cela.

## Communauté GNU

* Présentation des bibliothèques MPFR et MPC à l'occasion de la rencontre des hackers GNU organisée par le laboratoire de recherche IRILL à Paris en août $2011^,$
