...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
The special functions, distributions, constants and tools in this library can be used with a number of high-precision libraries, including:
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.