MPFR++ est une interface C++
pour MPFR, une bibliothèque
d'arithmétique en précision arbitraire développée
en C.
MPFR signifie Multiple Precision Floating-point Reliable library.
Documentation pour MPFR++
la classe MpfrClass
constructeurs
affectation et copie
consulter ou modifier le
mode d'arrondi ou la précision de calcul
constantes
opérations arithmétiques
fonctions mathématiques
comparaisons
entrées-sorties
fonctions liées à la norme IEEE-754 pour l'arithmétique flottante
Pour en savoir plus sur la gestion de la mémoire
Récupérer et utiliser MPFR++
Documentation pour MPFR++
On trouve dans MPFR++ :
- la classe MpfrClass
qui encapsule le type de base de MPFR ;
-
des constructeurs
à partir des types numériques de base, des types GMP de base
(mpz, mpq), du type mpfr et à partir d'une chaîne
de caractères ;
-
affectation et copie,
l'affectation = est réalisée par une copie logique, utiliser
copy pour une copie physique ; (pour en savoir plus, voir
comment est gérée la mémoire)
- des fonctions de consultation ou de
modification du mode d'arrondi ou de la précision de calcul (globale
ou particulière à un objet) :
GetDefaultRndMode, SetDefaultRndMode, GetDefaultPrecision, GetPrecision,
SetDefaultPrecision, SetPrecision ;
-
constantes : Pi, Log2, Euler ;
-
des opérations arithmétiques
où l'un des opérandes peut être un objet de
type MpfrClass, un objet numérique avec un type de base
ou GMP de base :
+,
-,
*,
/,
+=,
-=,
*=,
/=.
On dispose aussi d'opérations arithmétiques moins courantes :
fma pour fused multiply and accumulate qui réalise
avec une seule erreur d'arrondi l'opération x*y+z,
abs qui retourne la valeur absolue de son opérande,
sqrt qui calcule la racine carrée,
cbrt qui calcule la racine cubique,
pow qui calcule une puissance entière si son second argument est entier,
pow qui calcule une puissance quelconque si son second argument est de type MpfrClass,
hypot qui calcule l'hypoténuse de x et y,
c'est-à-dire la racine carrée de x au carré plus y au carré,
factorial qui calcule la factorielle d'un entier ;
-
des fonctions mathématiques avec arrondi correct :
random pour une valeur aléatoire,
agm pour la moyenne arithmético-géométrique de deux nombres,
exp pour l'exponentielle,
exp2 pour une élévation à une puissance de 2 (non nécessairement entière),
expm1 pour l'exponentielle de x moins 1,
log pour le logarithme népérien,
log2 pour le logarithme en base 2,
log10 pour le logarithme en base 10,
log1p pour le logarithme de (1+x),
sin pour le sinus,
cos pour le cosinus,
tan pour la tangente,
asin pour l'arc-sinus,
acos pour l'arc-cosinus,
atan pour l'arc-tangente,
sinh pour le sinus hyperbolique,
cosh pour le cosinus hyperbolique,
tanh pour la tangente hyperbolique,
asinh pour l'arc-sinus hyperbolique,
acosh pour l'arc-cosinus hyperbolique,
atanh pour l'arc-tangente hyperbolique,
gamma pour la fonction Gamma,
erf pour la fonction d'erreur,
zeta pour la fonction Zeta de Riemann ;
-
des opérateurs de comparaison : ==, !=, <, <=, >, >=, min, max ;
-
des fonctions d'entrée-sortie : << et >> ;
-
des fonctions liées à la norme IEEE-754 pour l'arithmétique
des nombres à virgule flottante :
des fonctions d'arrondi selon les quatre modes d'arrondi indiqués dans la
norme : round, floor, ceil, trunc
et l'obtention du nombre flottant immédiatement supérieur
: nextabove, inférieur : nextbelow ou suivant dans une
direction donnée : nexttoward.
-
Quelques mots sur la gestion de la mémoire :
pour limiter les recopies physiques des objets, tout objet comporte un
compteur de référence. Ce compteur dénombre le nombre
d'objets logiques différents qui partagent physiquement la même
valeur. Si une valeur n'est référencée
qu'une seule fois, on pourra modifier l'objet correspondant
en lui affectant le résultat
d'un calcul par exemple. S'il est référencé
plusieurs fois, on ne
pourra pas le modifier puisque cela modifierait automatiquement la valeur
des autres références ; dans ce cas-là uniquement,
l'objet est dupliqué et modifié.
Récupérer et installer MPFR++
Vous pouvez récupérer MPFR++,
l'interface C++ pour
MPFR (en format ``.tgz'',
dernière révision 27-02-2004).
Comme MPFR++ utilise MPFR qui est construit au-dessus de GMP, vous devez
préalablement installer
GMP version 4.0 ou plus récente
et MPFR
version 2.0 ou plus récente.
Pour utiliser MPFR++, incluez le fichier mpfr++.H dans vos
fichiers et lors de l'édition de liens, n'oubliez pas mpfr++.o,
fabriqué à partir de mpfr++.C.
Merci de m'informer
de tout problème que vous pourriez rencontrer.
MPFR++ a été développé par Nathalie
Revol.