Extended generic-interconversions to handle narrowing cases as well,
changed convert_to member function and hence explicit conversion operators
to use the same conversion code as the explicit constructors.
Added support for hashing via Boost.Hash
or std::hash.
Fixed some arithmetic operations in cpp_bin_float and cpp_dec_float that
should generate a NaN, see #12157.
Prevent inadvertant instantiation of variable-precision mpfr_float_backend with fixed allocation.
Fixed division over/underflow in cpp_bin_float, see #12167.
Added support for signed-zeros throughout the library, including support
for signbit and copysign, mpfr, float128, and cpp_bin_float
types should now respect signed-zeros correctly.
Fixed bug in conversion of cpp_bin_float infinities to double etc, see
#12196.
Fix add and subtract of cpp_bin_float when the exponents would overflow.,
see #12198.
Improve variable-precision support in mpfr and mpf backends, allow these
types to be used with Boost.Math.
Fixed bug in subtraction of signed infinities in cpp_bin_float, see
#12209.
Fix result of sqrt(infinity) in cpp_bin_float (result should be infinity),
see #12227.
Added workaround in gmp.hpp for recent MPIR releases which are not quite
source-compatible with GMP on Windows x64.
Allow cpp_int code to
be used with /RTCc with MSVC.
Fix conversion of cpp_int
to signed integer when the result is INT_MIN, see #12343.
Update uBlas support to match latest uBlas code.
Fix some errors present when building on big-endian machines (not all
cpp_int constructors
are available on non-little-endian machines).
Fix fencepost error in rational to float conversion routines, see #12327.
Fix some Oracle C++ compiler compatibility issues.
Add modf support to complete C90 compatibility.
Fix self assignment bug in expression template code for expressions such
as a=a*a*a, see #12408.
Fixed some compiler errors that occur when converting from cpp_int to cpp_bin_float.
Depricated boost/multiprecision/random.hpp as it's no longer needed,
updated random examples to match.
Fixed a bug in cpp_int's right shift operator when shifting negative
values - semantics now gives the same values as shifting 2's compliment
integers, though not the same bit pattern.
Fixed support for GCC-4.6.4 in C++0x mode by disabling conditional noexcept
suppoprt for that compiler see #11402.
Moved to Boost.Multiprecision specific version number - we have one breaking
change in Boost-1.54 which makes this major version 2, plus two releases
with new features since then.
Added new cpp_bin_float
backend for binary floating-point.
Added MSVC-specific #include for compiler intrinsics, see 9336.
Add support for 128-bit floats via GCC's float128
or Intel's _Quad data
types.
Add support for user-defined literals in cpp_int, improve constexpr support.
Fixed bug in integer division of cpp_int
that results in incorrect sign of cpp_int
when both arguments are small enough to fit in a double_limb_type.
See 8126.
Fixed bug in subtraction of a single limb in cpp_int
that results in incorrect value when the result should have a 0 in the
last limb: 8133.
Fixed bug in cpp_int
where division of 0 by something doesn't get zero in the result: 8160.
Fixed bug in some transcendental functions that caused incorrect return
values when variables are reused, for example with a=pow(a,b). See 8326.
Fixed some assignment operations in the mpfr and gmp backends to be safe
if the target has been moved from: 8667.
Fixed bug in cpp_int
that gives incorrect answer for 0%N for large N: 8670.
Fixed set_precision in mpfr backend so it doesn't trample over an existing
value: 8692.