GNU MPFR
Développé par | Projet GNU (INRIA et autres) |
---|---|
Première version | 0.4 ()[1] |
Dernière version | 4.2.1 ()[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 |
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].
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 (
log1p
etexpm1
), - 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 des 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[7],[note 1]
Notes et références
Notes
- La question de faire de MPC un paquet GNU avait été soulevée à l'occasion de la rencontre entre développeurs MPFR et MPC de janvier 2011[8].
Références
- (en) « History of MPFR and Past Events » (consulté le )
- (en) Vincent Lefèvre (d), « Announce: GNU MPFR 4.2.1 is released », (consulté le )
- (en) « History of MPFR and Past Events », mpfr.org, 21 juillet 2011.
- (en) « The MPFR Library: Credit », mpfr.org, 21 juillet 2011.
- (en) « Contributors - GNU MP », gmplib.org, 21 juillet 2011.
- (en) « GNU MPFR version 2.4.0 », mpfr.org, 26 janvier 2009.
- (en) « GNU Hackers Meeting in Paris, 2011 », gnu.org, juillet 2011.
- (en) « MPFR-MPC Developers Meeting 2011 », members.loria.fr, 13 et 14 janvier 2011.