HighPrecision Software Directory
Update: 11 Dec 2015
This web site (see software package links below) contains the LBNL doubledouble precision, quaddouble precision and arbitrary precision (also termed "multiprecision" or "multiple precision") software, which was written over a period of several years by David H. Bailey (formerly at LBNL), Yozo Hida (formerly at U.C. Berkeley), Xiaoye S. Li (LBNL), Brandon Thompson (formerly at U.C. Berkeley), Karthik Jeyabalan (formerly at LBNL) and Alex Kaiser (formerly at LBNL). Please send any comments or questions for this site to:
*** IMPORTANT NOTE: By downloading or using this software you are affirming your agreement to the terms of the LBNLBSD license that is in the file LBNLBSDLicense.doc. If you have any questions regarding this license, please contact the LBNL Innovation and Partnerships Office at IPO@lbl.gov.
These software packages are available:
 MPFUN2015 (A threadsafe arbitrary precision package)
Unixbased systems (including Apple MAC OSX systems):
DHB software site
This package permits one to perform floatingpoint computations (real and complex) to arbitrarily high numeric precision, by making only relatively minor changes to existing Fortran90 programs (mostly changes to type statements). All basic arithmetic operations and transcendental functions are supported, together with several special functions.
The package comes in two versions: (a) a completely selfcontained, allFortran version that is simple to install; and (b) a version based on the MPFR package (for lowerlevel operations) that is somewhat more complicated to install but is approximately 3X faster. The two versions are "plugcompatible" in the sense that applications written for one also run with the other. Both versions employ advanced algorithms, including FFTbased arithmetic, for optimal performance. They also detect, and provide means to overcome, accuracy problems rooted in the usage of inexact doubleprecision constants and expressions. A highlevel Fortran90 interface, supporting both multiprecision real and complex datatypes, is provided for each, so that most users need only to make minor changes to existing doubleprecision code.
A technical paper describing the package and providing details for usage is available here.
NOTE: This software was written independently by Bailey. The above links are to Bailey's personal website. This software was not written with support from the Lawrence Berkeley National Laboratory, nor does the Laboratory assume any responsibility for its usage or maintenance.
 ARPREC (A C++/Fortran90 arbitrary precision package)
Unixbased systems (including Apple Macintosh systems):
arprec2.2.18.tar.gz
Before downloading or installing this software, please read
LBNLBSDLicense.doc
(which contains license information) and the README file.
This package supports a flexible, arbitrarily high level of numeric precision  the equivalent of hundreds or even thousands of decimal digits (up to approximately ten million digits if needed). Special routines are provided for extrahigh precision (above 1000 digits). The entire library is written in C++. Highprecision real, integer and complex datatypes are supported. Both C++ and Fortran90 translation modules are also provided that permit one to convert an existing C++ or Fortran90 program to use the library with only minor changes to the source code. In most cases only the type statements and (in the case of Fortran90 programs) read/writ statements need be changed. Six implementations of PSLQ (one, two and threelevel, regular and multipair) are included, as well as three highprecision quadrature programs.
 QD (A C++/Fortran90 doubledouble and quaddouble package)
Unixbased systems (including Apple Macintosh systems):
qd2.3.17.tar.gz
Before downloading or installing this software, please read
LBNLBSDLicense.doc
(which contains license information) and the README file.
This package supports both a doubledouble datatype (approx. 32 decimal digits) and a quaddouble datatype (approx. 64 decimal digits). The computational library is written in C++. Both C++ and Fortran90 highlevel language interfaces are provided to permit one to use convert an existing C++ or Fortran90 program to use the library with only minor changes to the source code. In most cases only a few type statements and (for Fortran90 programs) read/write statements need to be changed. PSLQ and numerical quadrature programs are included.

MPFUN90 (A Fortran90 arbitrary precision package)
Unixbased systems (including Apple Macintosh systems):
mpfun90.tar.gz (version date 20100825)
Before downloading or installing this software, please read
LBNLBSDLicense.doc
(which contains license information) and the README file.
This package is similar to the ARPREC package, except that it is written exclusively in Fortran90 (i.e., no C++). As with the ARPREC package, Fortran90 translation modules are also provided that permit one to convert an existing Fortran90 program to use the library with only minor changes to the source code. The MPFUN90 package was recently revamped and improved to be completely compatible, at the Fortran user level, with the ARPREC package. In other words, a highlevel Fortran90 user program that works with the MPFUN90 software should also work with the ARPREC package. For instance, the F90 quadrature and PSLQ programs mentioned above that are included with the ARPREC package also work with MPFUN90, and are included in the MPFUN90 package. In addition, the Experimental Mathematician's Toolkit now works with MPFUN package as well.
NOTE: This software is now quite old. The newer packages MPFUN2015 and ARPREC (see above) are recommended instead.