BenchmarksΒΆ

This section contains various benchmarks comparing mp++ to other multiprecision libraries. All benchmarks were run on an AMD Ryzen 1700 in a 64-bit GNU/Linux environment, using the GCC compiler. The benchmarking code is available here.

In addition to mp++, the following libraries are used in the benchmarks:

  • the Boost.Multiprecision library. Specifically, the cpp_int and the mpz_int integer classes are employed in the benchmarks. The former is a multiprecision integer class adopting a small-value optimisation, the latter is a thin wrapper around the GMP mpz_t type. In the benchmarks, the mpz_int class is used only for ease of initialisation and destruction of GMP objects: all arithmetic operations are implemented by calling directly the GMP API;

  • the FLINT library. This library provides a data type called fmpz_t which, similarly to mp++, provides a small-value optimisation on top of GMP.

The benchmark results were last updated on 20180214, using the following package versions:

  • GCC 7.3,

  • mp++ 0.9,

  • GMP 6.1.2,

  • MPFR 3.1.5,

  • Boost 1.65.0,

  • FLINT 2.5.2.