This is a bugfix release correcting a few compilation/build warnings and fixing compilation against the recently-released fmt 11.
As usual, the full changelog is available here:
Published by bluescarni 10 months ago
A very quick release that fixes the CMakeLists.txt
file having the wrong version number.
Published by bluescarni 11 months ago
This is a small release that fixes a couple of issues with the support for the fmt
library.
As usual, the full changelog is available here:
Published by bluescarni 11 months ago
NOTE: with release 1.0.0, mp++ transitions to a semantic versioning numbering scheme.
This is a maintenance release that features a few bugfixes and introduces ABI versioning. There are no API changes with respect to the previous release (0.27).
As usual, the full changelog is available here:
Published by bluescarni about 2 years ago
This new mp++ release contains several new features for the real class, performance improvements for signed multiprecision integers, and a couple of build fixes.
Additionally, mp++ now has optional support for formatting via the fmt library:
The full changelog, as usual, is available here:
Published by bluescarni about 3 years ago
This is a quick release that fixes support for quadruple-precision floating-point types on PPC64. There are no other changes with respect to mp++ 0.25.
The full changelog, as usual, is available here:
Published by bluescarni about 3 years ago
This is an incremental bugfix release that fixes a build issue on some platforms (e.g., FreeBSD) originating from calling GMP/MPFR/MPC macros with a leading ::
. A small feature addition for the real
class and a new interactive notebook are included as well.
As usual, the full changelog is available here:
Published by bluescarni over 3 years ago
The main addition in this new mp++ release is support for output stream format flags for all the floating-point classes (both real-valued and complex-valued):
#include <iomanip>
#include <ios>
std::cout << std::scientific << std::setprecision(6) << real{1 / 3.} << '\n'; // "3.333333e-01"
std::cout << std::hexfloat << std::uppercase << complex{1.1, 1.3} << '\n'; // "(0X1.199999999999AP+0,0X1.4CCCCCCCCCCCDP+0)"
std::cout << std::fixed << std::showpoint << std::showpos << 42_rq << '\n'; // "+42.000000"
Additionally, the Lambert functions and the polylogarithms are now available for the real
class.
Another important addition is that mp++'s conda packages are now available for the ARM64 and PPC64 architectures.
The full changelog, as usual, is available here:
Published by bluescarni over 3 years ago
This is a minor release that features an important API change: several generic constructors of the multiprecision classes are not marked explicit
any more. This change improves the library's ergonomics and interoperability with other generic C++ libraries.
Another small addition is a new fabs()
overload for real128
, equivalent to the existing abs()
functions for the computation of the absolute value.
The full changelog, as usual, is available here:
Published by bluescarni almost 4 years ago
This new version of mp++ adds a binary serialization API for the real class, and enables (optional) Boost.serialization support for all multiprecision classes. The new release also features various build system enhancements/fixes and a new theme for the online documentation.
The full changelog, as usual, is available here:
Published by bluescarni over 4 years ago
This new release of mp++ greatly enhances the capabilities of the real128
and real
classes. In particular, all functions from the quadmath
library are now exposed in the real128
API, and most MPFR functions are now exposed in the real
API.
This release also contains new features for the complex
and integer
classes, and a bugfix in a couple of real
functions which were returning incorrect values at the poles.
The benchmark code has been overhauled, and the documentation has been updated with new benchmark results.
The full changelog, as usual, is available here:
Published by bluescarni over 4 years ago
This is by far the largest mp++ release yet, featuring substantial new features, many improvements and a few breaking changes.
The biggest new feature is the addition of the complex128
and complex
floating-point classes, which brings to completion the long-running effort of adding complex floating-point capabilities to the library. complex128
is a wrapper around the quadruple-precision __complex128
type available in GCC/Clang, while complex
is a wrapper around the mpc_t
type from the GNU MPC library.
The work on the complex
class resulted in various tweaks to the real
class, some of which break backwards compatibility. In particular, the global precision setting mechanism in real
has been removed. Additionally, the way in which real
interacts with primitive C++ types in mixed-mode operations has been improved to be more rigorous and better performing. The real
class also received various new features, including additional special functions, setters and comparison operators.
real128
also received various fixes and improvements. In particular, its compatibility with the Clang compiler has been improved and its implementation has benefited from various substantial simplifications.
For consistency with C++20, all of mp++'s concepts have been renamed to snake_case
notation, and the concept hierarchy has been streamlined and simplified. Support for C++20's constinit
feature has also been added to the library. More C++20 features will be added in upcoming versions.
On the software engineering side, mp++ now officially supports the ARM (aarch64
) and PowerPC (ppc64le
) architectures, which have been added to the continuous integration setup. mp++ now also supports the Intel compiler ICC (although due to licensing issues, ICC is not part of the continuous integration setup and it is only occasionally tested). An option to build the library with inter-procedural optimisations has been added. mp++ now builds cleanly with clang-tidy
, and a build with Clang's memory sanitizer (msan
) has been added to the CI pipeline.
Finally, the use of Doxygen has been fully phased out and the documentation is now written exclusively in Sphinx.
The full changelog, as usual, is available here:
https://bluescarni.github.io/mppp/changelog.html
NOTE: the basic feature set of mp++ is now essentially complete. The focus is now on finishing up a few missing functionalities and adding tutorial-style documentation. Once this is done, the 1.0 version of the library will be released.
Published by bluescarni over 4 years ago
This new mp++ release comes with a series of new features:
Additionally, this release comes with the usual assortment of fixes and docs improvements.
The full changelog is available here:
Published by bluescarni over 4 years ago
This new release contains a handful of new features and various improvements to the build system. In particular, mp++ now does not include any more the quadmath.h
header in its public API. This change greatly improves mp++’s compatibility with clang when the MPPP_WITH_QUADMATH
option is active.
As usual, the full changelog is available here:
Published by bluescarni about 5 years ago
The main additions in this new release are:
Additionally, there are a few fixes (involving mostly MSVC and GCC9) and a substantial improvement in the compile-time requirements of the test suite.
The full changelog, as usual, is available here:
Published by bluescarni over 5 years ago
This is a quick release which fixes an issue in the versioning of the mp++ shared library. No code changes have been made since 0.15.
Published by bluescarni over 5 years ago
The highlights of this release are:
integer
class,real
class (i.e., more special functions from MPFR have been wrapped).As usual, there are a few build system fixes (this time involving mostly Windows/MSVC/clang-cl) and doc improvements.
The full changelog is available at the usual place:
Published by bluescarni over 5 years ago
NOTE: this release introduces an important change: mp++ now has a compiled component, libmp++
, and thus it is not enough any more to include the headers in order to use mp++ - you must now also link to the mp++ compiled library.
The most prominent new feature is that the integer
and rational
classes now recognize and honour the format flags in output streams. Work is ongoing to extend output stream format flags support to the floating-point classes.
@7ofNine has contributed various improvements to the benchmarks and MSVC build fixes.
mp++ also does not depend any more on the DbgHelp
library on Windows.
Various doc and build system fixes are included as well.
The full changelog, as usual, is available here:
Published by bluescarni over 5 years ago
This is a minor release which features a few build system/compilation fixes and a few documentation fixes/additions.
The full changelog is available at the usual page:
Published by bluescarni about 6 years ago
This release contains various new features for the integer, real and real128 classes, and various performance optimisations for the integer class. As usual, a variety of documentation and build system fixes are included as well.
The full changelog is available at the usual page: