Skip to content

Releases: bluescarni/mppp

mp++ 0.22

02 Jan 22:45
Compare
Choose a tag to compare
mp++ 0.22 Pre-release
Pre-release

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:

https://bluescarni.github.io/mppp/changelog.html

mp++ 0.21

17 Jun 10:13
Compare
Choose a tag to compare
mp++ 0.21 Pre-release
Pre-release

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:

https://bluescarni.github.io/mppp/changelog.html

mp++ 0.20

03 Jun 12:41
Compare
Choose a tag to compare
mp++ 0.20 Pre-release
Pre-release

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.

mp++ 0.19

29 Feb 13:26
Compare
Choose a tag to compare
mp++ 0.19 Pre-release
Pre-release

This new mp++ release comes with a series of new features:

  • mp++ now optionally depends on Arb to provide additional special functions for the real class. A few new special functions have already been implemented in this version, more will come in future mp++ releases;
  • the integer and rational classes can now interact with C++'s complex floating point classes. This is the first step on the road that will eventually bring full support for multiprecision complex capabilities in mp++;
  • user-defined literals for the rational, real and real128 classes;
  • a few additional capabilities for the real class;
  • all mp++ classes now support pretty printing in the xeus-cling notebook.

Additionally, this release comes with the usual assortment of fixes and docs improvements.

The full changelog is available here:

https://bluescarni.github.io/mppp/changelog.html

mp++ 0.18

14 Feb 09:19
Compare
Choose a tag to compare
mp++ 0.18 Pre-release
Pre-release

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:

https://bluescarni.github.io/mppp/changelog.html

mp++ 0.17

13 Sep 18:43
Compare
Choose a tag to compare
mp++ 0.17 Pre-release
Pre-release

The main additions in this new release are:

  • many new special functions for mppp::real,
  • mp++'s concepts are now compatible with the C++20 version of the concepts proposal. In particular, the latest development snapshots of MSVC can now use the conceptified codepaths in mp++.

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:

https://bluescarni.github.io/mppp/changelog.html

mp++ 0.16

25 May 22:52
Compare
Choose a tag to compare
mp++ 0.16 Pre-release
Pre-release

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.

mp++ 0.15

24 May 08:05
Compare
Choose a tag to compare
mp++ 0.15 Pre-release
Pre-release

The highlights of this release are:

  • the ability to build mp++ as a static library,
  • performance improvements for the integer class,
  • new features in the 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:

https://bluescarni.github.io/mppp/changelog.html

mp++ 0.14

11 Apr 08:38
Compare
Choose a tag to compare
mp++ 0.14 Pre-release
Pre-release

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:

https://bluescarni.github.io/mppp/changelog.html

mp++ 0.13

13 Mar 06:39
Compare
Choose a tag to compare
mp++ 0.13 Pre-release
Pre-release

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:

https://bluescarni.github.io/mppp/changelog.html