| Home | Libraries | People | FAQ | More

## Using Boost.Math with High-Precision Floating-Point Libraries

The special functions, distributions, constants and tools in this library can be used with a number of high-precision libraries, including:

- Boost.Multiprecision
- e_float (TOMS Algorithm 910)
- NTL A Library for doing Number Theory
- GNU Multiple Precision Arithmetic Library
- GNU MPFR library
- GCC 128-bit floating-point type
- Intel _Quad type

The last four have some license restrictions; only Boost.Multiprecision when using the `cpp_float` backend can provide an unrestricted Boost license.

At present, the price of a free license is slightly lower speed.

Of course, the main cost of higher precision is very much decreased (usually at least hundred-fold) computation speed, and big increases in memory use.

Some libraries offer true arbitrary-precision arithmetic where the precision is limited only by available memory and compute time, but most are used at some arbitrarily-fixed precision, say 100 decimal digits, like Boost.Multiprecision `cpp_dec_float_100`.

Boost.Multiprecision can operate in both ways, but the most popular choice is likely to be about a hundred decimal digits, though examples of computing about a million digits have been demonstrated.