GNU MPFR
bibliothèque logicielle
From Wikipedia, the free encyclopedia
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[3],[4].
| Développé par | Projet GNU (INRIA et autres) |
|---|---|
| Première version | 0.4 ()[1] |
| Dernière version | 4.2.2 ()[2] |
| Dépôt | gitlab.inria.fr/mpfr/mpfr.git |
| Écrit en | C |
| Système d'exploitation | GNU/Linux, BSD, Microsoft Windows et macOS |
| Environnement | Multiplate-forme |
| Type | Mathématiques |
| Licence | GNU LGPL |
| Documentation | www.mpfr.org/mpfr-current/mpfr.html |
| Site web | www.mpfr.org |
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[3]. 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[5]. Les droits d'auteurs sont assignés à la Free Software Foundation dès juin 2000[3].
MPFR devient officiellement un projet GNU le 26 janvier 2009 pour la réalisation de la version 2.4.0[6].
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 (
log1petexpm1), - 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 (xy).
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[7] ou MPFI[8], ou des implémentations de Real RAM (en), comme iRRAM[9], dont certaines sont basées sur MPFR, sont capables de cela.