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
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