MPFR/MPFI

MPFR et MPFI sont des logiciels fondamentaux de l'équipe.

Mots clés : arithmétique d'intervalles, précision arbitraire, arrondi exact .


GMP
GNU Multi-Precision library
mpfr
Multi-Precision Floating point Reliable arithmetic
mpfi
Multi-Precision Floating point Interval arithmetic



Participants : David Daney, Guillaume Hanrot, Vincent Lefèvre, Yves Pétermann, Jean-Luc Rémy [avant-projet Adage], Fabrice Rouillier, Paul Zimmermann.

MPFR est une bibliothèque de calcul flottant en précision arbitraire. Basée sur la bibliothèque GMP, elle garantit ce qu'on appelle l'«arrondi exact » , à savoir que le résultat de chaque opération est le nombre flottant, représentable dans la précision donnée, qui soit le plus proche du résultat exact. Au cours de l'année 2001, les opérations de base (addition, soustraction, multiplication, division) ont été complètement réécrites, et les implantations correspondantes décrites dans un document en cours de rédaction, afin de permettre une preuve formelle de ces implantations. En outre, dans le cadre du post-doctorat de D. Daney, la plupart des fonctions mathématiques du standard C9X ont été implantées (fonctions hyperboliques et leurs inverses, fonctions trigonométriques et leurs inverses, logarithme et exponentielle en base 2 et 10, puissance, etc.). Enfin, la plage d'exposants autorisés peut maintenant être définie par l'utilisateur, et un mécanisme de débordement (overflow/underflow) a été implanté. La version actuelle (environ 15000 lignes de code, plus autant de lignes de test) sera distribuée avec la prochaine version de GMP. En octobre 2001, Y. Pétermann, chercheur de l'Université de Genève invité par l'INRIA, a travaillé avec J.-L. Rémy (avant-projet Adage) sur l'implantation de la fonction zêta de Riemann en MPFR.


MPFI est une bibliothèque d'arithmétique d'intervalles, écrite en C (environ 1000 lignes), basée sur MPFR et développée en collaboration avec N. Revol (actuellement en délégation dans le projet Arénaire à Lyon). Initialement, MPFI a été développée pour les besoins d'un nouvel algorithme hybride pour l'isolation de zéros réels de polynômes. Les fonctionnalités sont actuellement étendues pour permettre l'implantation et l'adaptation d'autres méthodes de résolution (principalement basées sur l'algorithme de Newton) mais le code est déjà disponible et documenté.