summaryrefslogtreecommitdiff
path: root/math/mppp/pkg-descr
blob: 9ea65d70a53f5c5d633ef6f018372e4b0daf5163 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mp++ is a C++11 library for multiprecision arithmetic, currently supporting
arbitrary-precision integers, rationals and floats, and quadruple-precision
floats.

Based on well-known libraries such as GMP, MPFR, and others, mp++ was initially
conceived as a GMP wrapper with a special focus on performance with small
operands. In particular, a small buffer optimisation and custom implementations
of basic mathematical primitives are instrumental in achieving a performance
increase, with respect to GMP and other integer multiprecision libraries, which
can be substantial (see the benchmarks section of the documentation). The price
to pay is a small overhead when operating on large integers.

Eventually, a multiprecision rational class and two multiprecision
floating-point classes were added, and today a secondary objective of mp++ is to
provide a modern, consistent and unified C++ interface to several lower-level
multiprecision libraries.