Some Arbitrary Precision/Multiple Precision/Exact Arithmetic Systems
Click here for the Call For Participation.
Here is a list of packages/libraries that are capable of
performing arbitrary precision arithmetic on elementary real
functions. They implement different ideas and approaches to
arbitrary precision/multiple precision/exact real arithmetic. A
direct comparison of some or preferably all of the softwares
listed below --- to the extent that such comparison is
possible--- will provide a good understanding of the state of
the art in the field of exact real arithmetic (see Exact
Real Arithmetic Systems, Results of Competition[1], Software
Demonstration at the Fifth Workshop on Computability and
Complexity in Analysis[2], Comparison
of other software to MPFR, Floating
point benches and SIAM 100-digit challenge[3]).
The list is by no means complete and may contain some
inconsistencies, because the author of this page didn't examine
all the systems listed here. Any comment for improving the list
is welcome.
--
Milad Niqui.
- Aberth:
(Precise Numerical Methods Using C++), by Oliver Aberth
- apfloat: (a
C++ High Performance Arbitrary Precision Arithmetic Package), by
Mikko Tommila
- Arithmos: (a
reliable integrated computational environment), by CANT group at
University of Antwerp
- Bignum:
(an infinite-precision function library for Miranda and
Haskell), by Martin Guy
- CLN: (a library for
efficient computations with all kinds of numbers in arbitrary
precision), by Bruno Haible and Richy Kreckel
- Core library :
(robust numerical and geometric computation), by Chee Yap, Zilin
Du, Vikram Sharma, Sylvain Pion, Hervé Brönnimann
- Calc:
(the GNU Emacs calculator which can do arbitrary precision
arithmetic), by Dave Gillespie
- calc:
(an interactive calculator which provides for easy large
numeric calculations, but which also can be easily programmed
for difficult or long calculations), by David I. Bell et
al.
- CRCalc:
(this is a calculator that operates on constructive real
numbers.), by Hans-J. Böhm
- Creal:
(exact real arithmetic, from the PhD thesis of Valérie
Ménissier-Morain), by Jean-Christophe Filliâtre
- Few Digits : (a
collection of Haskell modules that implement exact real
arithmetic), by Russell O’Connor
- GMP: (GNU Multiple
Precision Arithmetic Library, the fastest bignum library on the
planet!),
- GNU bc:
(an arbitrary precision numeric processing language), by Philip
A. Nelson
- GNU Octave: (a
high-level language, primarily intended for numerical
computation), by John W. Eaton.
- HFLOAT:
(fast computations with extreme precision), by Jörg Arndt
- ICReals:
(computing a required absolute precision from a stream of linear
fractional transformations), by Lindsay Errington, Marko
Krznarić, Reinhold Heckmann, Abbas Edalat, Martin Escardo,
Peter Potts and Philipp Sünderhauf
- iRRAM:
(exact reals with an iterative approach), by Norbert
Müller
- iRRAM
with Continued Fractions: (a C++ package that combines
Norbert Müller's approach to real computation, iRRAM, with
the Continued Fraction algorithms for elementary functions
developed), by Abbas Edalat and Marko Krznarić
- Kelsey:
(exact numerical computation via symbolic computation), by Tom
Kelsey[4]
- libmplite: (C++
wrapper around the MPFR
library for multi-precision floating point arithmetic), by Johan
Vervloet
- LiDIA:
(a C++ Library For Computational Number Theory), by LiDIA-Group
at TU Darsmtadt
- Maxima: (Maxima
- a sophisticated computer algebra system), William Schelter et
al.
- MAP:(an
implementation of exact arithmetic on a representation of
computable real numbers as Fast Binary Cauchy Sequnces), by
David Lester
- MAPM:
(a portable arbitrary precision math library in C), by Michael
C. Ring
- Mmxlib:
(a C++ core library for a new computer algebra system under development), by
Joris van der Hoeven
- MPC: (a
library for multiprecision complex arithmetic with exact
rounding, based on the MPFR and GNU MP libraries), by Paul
Zimmermann, Patrick Pélissier and Andreas Enge
- mpdist:
(High-Precision Software Directory), by David H. Bailey, Yozo
Hida, Karthik Jeyabalan, Xiaoye S. Li and Brandon Thompson
- MPFI:
(a multiple precision interval arithmetic library based on MPFR),
by Nathalie Revol and Fabrice Rouillier
- MPFR: (reliable floating
point numbers), by PolKA and SPACES projects at INRIA Lorraine
and LORIA
- MPFR++:
(a C++ interface to MPFR), by Nathalie Revol
- mpfun++:
(multiple precision floating point Computation Package in C++),
by Siddhartha Chatterjee
- PARI/GP:
(a package that contains a large number of useful functions to
compute with mathematical entities such as matrices, polynomials,
power series, algebraic numbers etc., and a lot of transcendental
functions), by Henri Cohen, Karim Belabas et al.
- RealLib: (a
package whose primary aim is to be efficient and to avoid the huge
overheads usually associated with real number computations.), by
Branimir Lambov
- XRC:
(exact reals with an approach using lazy evaluation), by Keith
Briggs
- XSC Languages: (Scientific
Computing with Validation, Arithmetic Requirements, Hardware
Solution and Language Support), by Institute of Applied
Mathematics at University of Karlsruhe and WRSWT-Group at
University of Wuppertal
- yacas: (a
general purpose easy to use Computer Algebra System built on top
of its own programming language), by Ayal Pinkus et
al.
There are some commercial softwares as well, that are
capable of performing arbitrary precision numerical
computations. Although some of them are not intended to be used
numerically (rather symbolically), the notable ones are:
Footnotes
[1] Event held as part of CCA2000.
[2] Event held as part of CCA2002.
[3] In the January/February 2002
issue of SIAM News an
interesting challenge was posed by Prof. Lloyd
N. Trefethen. Many people participated in the challenge,
leading to twenty
prize winners. The results of the challenge were announced
in an article
the July/August 2002 issue of SIAM News, where the
original challenger expressed the fact that he had misjudged the
difficulty of the challenge and he did not expect to receive so
many correct answers. There was a
book (mathscinet
review) written about solving the challenges that are solved
using C, PARI/GP, MATLAB, INTLAB and Mathematica. The challenge
and the book were discussed
in Science.
[4] This package participated in [1]. The package itself could
not be found on the web.
[5] The source code is available for
private use but the package is based on MATLAB.