Add the possibility of generating Unicode MSVC solutions (#183).
Add the possibility to build mp++ as a static library (#176).
Add CircleCI to the continuous integration pipeline (#173).
When compiled with MPFR version 4 or later, mp++ now ensures that thread-local and global caches are freed separately at thread exit and program shutdown (#182).
Update the internal copy of Catch to the latest version, 2.7.2 (#181).
Implement a specialised version of the
Improve the implementation of the less than/greater than operators for
integer. Together with the
swap()improvements, this change leads to a ~9% decrease in runtime for the
mp++ does not depend on the DbgHelp library on Windows any more (#169).
BREAKING: mp++ has now a compiled component. In order to use mp++, you will now have to both include the mp++ headers and link to the mp++ library (#169).
Various improvements to the benchmarks (#166).
BREAKING: the input stream operators have been removed from all classes (#161).
Switch to the sphinx material design theme for the documentation (#153).
Update the internal copy of Catch to the latest version, 2.4.0 (#152).
Various improvements to the GCD implementation for
Add a target in the build system to compile and run the benchmarks (#135).
Initial version of the rational tutorial (#130).
The demangler is now aware of cv-qualifiers and references (#129).
add_ui()function now requires an unsigned integral as the third argument (previously, the function could be invoked with a signed integral argument thanks to C++’s conversion rules).
Add a leading
mppp::to the names of mp++’s classes in the pybind11 custom type casters (#120). This should be only a cosmetic change.
Update the internal copy of Catch to the latest version, 2.1.1 (#120).
The pybind11 integration utilities now automatically translate mp++ exceptions into appropriate Python exceptions (#115).
Expose various internal type traits in the public API (#114).
Add an implementation of the binomial coefficient for rational top arguments (#113).
When C++ concepts are enabled, various functions now use automatically-deduced return types to simplify the implementation and improve the generated documentation (#114).
In the CMake config-file package produced by the installation process, ensure that the installed package version is considered compatible with any other version with the same major version number (#113).
Implement the initial version of the binary serialisation API (#110).
Add builds based on MSVC 2017 in Appveyor (#110).
Add left bit shift benchmarks for
Implement division without remainder (
tdiv_q()) and exact division with positive divisor (
Update copyright date (#110).
Add an internal demangling utility to improve the quality of the error messages (#105).
Improve the detection of the availability of the
thread_localkeyword on recent Xcode versions (#99).
Implement the increment and decrement operators for
Implement support for
Implement the bitwise logic operators for
Implement construction with preallocated storage for
Implement construction from an array of limbs for
Various additions to the tutorial (#97).
BREAKING: the imported target created by the installation process has been renamed from
Take advantage of
std::gcd()on C++17 (#93).
Update the benchmark results for
Add division benchmarks for
A few performance tweaks for
Simplifications in the bit shifting primitives for
integertest in two parts to curb memory usage during compilation (#80).
Use bit counting intrinsics in MSVC (#79).
Update the internal copy of Catch to the latest version, 2.0.1 (#76).
Improve the performance of generic assignment for
Improve construction from C++ integrals for
Implement move constructors and move assignment operators from
Implement a cache for the allocation of limbs arrays in small
Add a CI build testing against the latest unstable GMP branch (#34).
Add assignment operators from
Add the possibility of constructing non-canonical
rationalobjects from numerator/denominator pairs (#28).
Use the sphinx bootstrap theme for the html documentation (#71).
Various simplifications in the
integerfunctions accepting the return value as a parameter will now demote a return value with dynamic storage to static storage if the other arguments all have static storage (#58).
The free functions for
rationalnow return a reference to the return value, rather than
Performance improvements and code simplifications for
Enable additional compiler warning flags in debug builds for GCC (#52).
BREAKING: various improvements/changes to the bit shifting functions for
integer, and the exception raised by the bit shifting operators is not any more
std::domain_error, it is now
Various updates to the benchmarks (#39).
Update the internal copy of Catch to the latest version, 1.9.7 (#36).
Bump up the minimum required CMake version to 3.3 (#31).
Fix the compilation of the tests on Clang 5 (#43).
Fix too lax constraints in the implementation of in-place operators for
Fix the PDF build of the documentation (#39).
Fix C++ version detection on MSVC (#36).
Fix missing tests for
Fix some MSVC warnings when compiling the tests in release mode (#28).
Various minor documentation fixes.
Expand CI to include GCC 7 in C++17 mode (#27).
Improve testing coverage (#25).
Various extensions to the benchmark suite (#25).
Various performance improvements in
integerthanks to the reduction of the number of branches in the implementation of basic arithmetic for the 1/2-limb specialisations (#25).
Update the internal copy of Catch to the latest version, 1.9.6 (#24).
Performance improvements for the construction/conversion of
integerfrom/to C++ integrals (#23).
Make sure the MPFR cleanup routine is automatically called on shutdown (#22).
Implement the multiprecision
Implement fast assignment functions to zero and plus/minus one for
Add assignment operators from string for
Implement the assignment operator from
integer, and use it in various function in order to avoid the creation of a temporary.
Performance improvements for the copy/move assignment operators of
Various small documentation fixes.
Provide a CMake config-file package as part of the install process.
Implement the missing in-place modulo operator with C++ integrals on the left.
Experimental support for C++ concepts.
clang-clcompiler on Windows.
Add input stream operator.
Add in-place arithmetic operators with interoperable types on the left-hand side.
Add convenience overloads for the computation of the binomial coefficient.
Add convenience overloads for
Add functions to test if an integer is equal to -1.
Add a static member to
integerstoring the static size.
Split out the library in multiple files.
Various improvements to the documentation.
Rework the library interface to use regular functions rather than
Change the license to MPL2.
Remove the allocation cache.
Remove the custom namespace option.
Fix operators example in the documentation.