GNU MPFR
Tipus | Coma flotant |
---|---|
Basat en | GNU Multiple Precision Arithmetic Library (en) |
Versió inicial | novembre 1998 |
Versió estable | |
Llicència | GNU LGPL 3.0 o posterior GNU LGPL 2.1 o posterior GNU LGPL 2.0 |
Part de | Projecte GNU |
Característiques tècniques | |
Sistema operatiu | GNU/Linux, BSD, Microsoft Windows, macOS, Unix-like i multiplataforma |
Escrit en | C |
Equip | |
Desenvolupador(s) | Projecte GNU i INRIA |
Més informació | |
Lloc web | mpfr.org (anglès) |
Seguiment d'errors | Seguiment d'errors |
Free Software Directory | Mpfr |
Guia d'usuari | Guia d'usuari |
| |
La biblioteca fiable de coma flotant de precisió múltiple de GNU (GNU MPFR) és una biblioteca C portàtil de GNU per al càlcul binari de coma flotant de precisió arbitrària amb un arrodoniment correcte, basada en la biblioteca GNU Multi-Precision.[1][2]
Biblioteca
[modifica]El càlcul de MPFR és alhora eficient i té una semàntica ben definida: les funcions estan completament especificades en tots els operands possibles i els resultats no depenen de la plataforma.[3] Això es fa copiant les idees de l'estàndard ANSI/IEEE-754 per a l'aritmètica de coma flotant de precisió fixa (arrodoniment correcte i excepcions, en particular). Més concretament, les seves característiques principals són:
- Suport per a nombres especials: zeros amb signe (+0 i -0), infinits i no-un nombre (s'admet un únic NaN: MPFR no diferencia entre NaNs tranquils i NaNs de senyalització).
- Cada nombre té la seva pròpia precisió (en bits ja que MPFR utilitza la base 2). Els resultats de coma flotant s'arrodoneixen correctament a la precisió de la variable objectiu, en un dels cinc modes d'arrodoniment admesos (inclosos els quatre de IEEE 754-1985).
- Funcions suportades: MPFR implementa totes les funcions matemàtiques de C99 i altres funcions matemàtiques habituals: el logaritme i l'exponencial en base natural, base 2 i base 10, les funcions log(1+x) i exp(x)−1 (
log1p
iexpm1
), les sis funcions trigonomètriques i hiperbòliques i les seves inverses, les funcions gamma, zeta i d'error, la mitjana aritmètica-geomètrica, la funció de potència (xy). Totes aquestes funcions s'arrodonien correctament en el seu rang complet. - Els números subnormals no són compatibles, però es poden emular amb la funció
mpfr_subnormalize
.
MPFR no és capaç de fer un seguiment de la precisió dels números en un programa o expressió sencer; aquest no és el seu objectiu. Paquets aritmètics d'interval com Arb,[4] MPFI,[5] o implementacions de Real RAM com iRRAM,[6] que es poden basar en MPFR, poden fer-ho per a l'usuari.
MPFR depèn de la biblioteca d'aritmètica de precisió múltiple (GMP) de GNU.
Es necessita MPFR per construir la col·lecció de compiladors GNU (GCC).[7] Un altre programari utilitza MPFR, com ALGLIB, CGAL, FLINT, GNOME Calculator, la implementació del llenguatge Julia, el sistema d'àlgebra informàtica Magma, Maple, GNU MPC i GNU Octave.
Referències
[modifica]- ↑ Fousse, L.; Hanrot, G.; Lefèvre, V.; Pélissier, P.; Zimmermann, P. ACM Transactions on Mathematical Software, 33, 2007, pàg. 13:1–15. DOI: 10.1145/1236463.1236468.
- ↑ Higham, Nick. «The Rise of Mixed Precision Arithmetic» (en anglès), 08-10-2015. [Consulta: 23 maig 2020].
- ↑ «Frequently asked questions about MPFR: 1. What are the differences between MPF from GMP and MPFR?» (en anglès).
- ↑ «Arb, a C library for arbitrary-precision ball arithmetic» (en anglès). [Consulta: 31 maig 2022].
- ↑ «MPFI Project» (en anglès). GitLab at Inria. [Consulta: 31 maig 2022].
- ↑ «iRRAM, a software library for exact real arithmetic» (en anglès). Arxivat de l'original el 7 de juliol 2022. [Consulta: 31 maig 2022].
- ↑ «GCC 4.3 Release Series: Changes, New Features, and Fixes» (en anglès), 02-11-2012. [Consulta: 25 setembre 2013].