NOTE
mp_cpp preserves a legacy library. More modern work can be found in the wide-decimal project.
mp_cpp preserves a legacy Multiple-Precision C++ library.
It is the first successful attempt I had ever made at a multiple-precision,
big-float class in the C++ language.
Initial work began sometime late last century in the early 1990's and wrapped up around 2002.
Continuous maintenance has kept the library up-to-date
and compatible with modern C++. A sample wrapper for
Boost.Multiprecision
was made somewhere around 2015 and is still maintained (see notes below).
mp_cpp implements a multiple-precision library with adjustable
precision ranging from hundreds, to thousands, to millions of decimal digits.
The precision can be set during run time, but set once only,
preferably prior to any mp_cpp-operations are carried out.
The library offers many functions. This project also features tests
and a variety of non-trivial examples, including a somewhat fast
million (i.e.,
mp_cpp still compiles and runs on modern C++ compilers
from C++14, 17, 20, 23 and beyond.
This original work was subsequently cloned, renamed and adapted to become
e_float,
which itself ultimately provided some motivation for
Boost.Multiprecision.
mp_cpp also features a full backend-wrapper
for use with Boost.Multiprecision
and Boost.Math.
This ties an old legacy project together with modern
template representations of big-floats and implementations
of mathematical functions.
Continuous integration runs on push using GitHub Actions. Various compilers, operating systems and C++ standards are included in CI. Sanitizer runs add improved confidence to the code-integrity.
The big-number and mathematical-function implementations in mp_cpp
are licensed under BSL.
This work makes additional use of FFTW version 2.15 for fast FFT multiplication, which has its own separate license.