Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

History
PrevUpHomeNext
Multiprecision-2.2.5 (Boost-1.59)
  • 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.
  • Fixed issue with GCC-4.6.x not handling noexcept fully enough for this library to use.
  • Suppressed numerous compiler warnings.
  • Fixed some bugs in cpp_int's bitwise operators when one or both numbers are signed.
Multiprecision-2.2.4 (Boost-1.58)
  • Changed frexp to always be non-expression template generating, see: 10993.
  • Improved support of cpp_dec_float on Cygwin and other platforms with missing long double support, see 10924.
  • Improved noexcept support and added some more tests, see 10990.
  • Various workarounds applied for Intel-15.0 and Solaris-12.4 compilers.
Multiprecision-2.2.3 (Boost-1.57)
  • Changed rational to float conversions to exactly round to nearest, see 10085.
  • Added improved generic float to rational conversions.
  • Fixed rare bug in exponent function for cpp_bin_float.
  • Fixed various minor documentation issues.
Multiprecision-2.2.2 (Boost-1.56)
  • Change floating point to rational conversions to be implicit, see 10082.
  • Fix definition of checked_cpp_rational typedef.
Multiprecision-2.2.1
  • Fix bug in assignment from string in cpp_int, see 9936.
Multiprecision-2.2.0
  • 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.
  • Fixed various typos in docs, see 9432.
  • Fixed gmp_rational to allow move-copy from an already copied-from object, see 9497.
  • Added list of values for numeric_limits.
Boost-1.55
  • Added support for Boost.Serialization.
  • Suppressed some GCC warnings. See 8872.
  • Fixed bug in pow for large integer arguments. See 8809.
  • Fixed bug in pow for calculation of 0N. See 8798.
  • Fixed bug in fixed precision cpp_int IO code that causes conversion to string to fail when the bit count is very small (less than CHAR_BIT). See 8745.
  • Fixed bug in cpp_int that causes left shift to fail when a fixed precision type would overflow. See 8741.
  • Fixed some cosmetic warnings from cpp_int. See 8748.
  • Fixed calls to functions which are required to be macros in C99. See 8732.
  • Fixed bug that causes construction from INT_MIN, LONG_MIN etc to fail in cpp_int. See 8711.
1.54
  • Breaking change renamed rational_adapter to rational_adaptor.
  • Add support for MPFI.
  • Add logged_adaptor.
  • 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.
1.53
Post review changes
  • Non-expression template operators further optimised with rvalue reference support.
  • Many functions made constexp.
  • Differentiate between explicit and implicit conversions in the number constructor.
  • Removed "mp_" prefix from types.
  • Allowed mixed precision arithmetic.
  • Changed ExpressionTemplates parameter to class number to use enumerated values rather than true/false.
  • Changed ExpressionTemplate parameter default value to use a traits class so that the default value depends on the backend used.
  • Added support for fused-multiply-add/subtract with GMP support.
  • Tweaked expression template unpacking to use fewer temporaries when the LHS also appears in the RHS.
  • Refactored cpp_int_backend based on review comments with new template parameter structure.
  • Added additional template parameter to mpfr_float_backend to allow stack-based allocation.
  • Added section on mixed precision arithmetic, and added support for operations yielding a higher precision result than either of the arguments.
  • Added overloads of integer-specific functions for built in integer types.
Pre-review history
  • 2011-2012, John Maddock adds an expression template enabled front end to Christopher's code, and adds support for other backends.
  • 2011, Christopher Kormanyos publishes the decimal floating point code under the Boost Software Licence. The code is published as: "Algorithm 910: A Portable C++ Multiple-Precision System for Special-Function Calculations", in ACM TOMS, {VOL 37, ISSUE 4, (February 2011)} (C) ACM, 2011.
  • 2002-2011, Christopher Kormanyos develops the all C++ decimal arithmetic floating point code.

PrevUpHomeNext