- 
            Updated expression templates to store arithmetic literals directly in
            the expression template to prevent dangling references, see #19.
          
- 
            Fix various issues with huge values and overflow in the trig, pow and
            exp functions, see #24.
          
- 
            Fix error handling of checked cpp_int multiply that could cause some
            overflows to be missed.
          
- 
            In cpp_bin_floatprevent
            double rounding when converting to a denormalized float. See #12527.
- 
            Fix bug in integer sqrt for very small integers. See #12559.
          
- 
            Fix conversion to signed-zero in cpp_bin_float.
- 
            Change cpp_bin_floatrounding code to round at arbitrary location so we can use it for conversions,
            see #12527.
- 
            Improve performance of 128-bit bit-scan operations.
          
- 
            Fix subtraction of very small quantities in cpp_bin_float.
            See: #12580.
- 
            Bring error handling into line with C99 Annex F. See #12581.
          
- 
            Fix bitwise export of trivial cpp_int's,
            see #12627.
- 
            Fix ilogb(and code that
            uses it) to consistently return the smallest value of the exponent type
            when the argument is zero, see #12625.
- 
            Allow conversion from float128tocpp_bin_float.
- 
            Fix bug in left shift of cpp_intwhich would result in bit-loss, see #12790.
- 
            Fixed bugs in bounded but variable precision cpp_int's
            caused by over-aggressive constexpr optimization, see #12798.
- 
            Added support for all the C99 math functions.
          
- 
            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.
          
- 
            Fix IO stream parsing error, see #12488.
          
- 
            Make default constructed floating point types all zero for consistency,
            see #12500.
          
- 
            Fix conversion of cpp_bin_float to float/double/long double when the
            exponent value would overflow an int, see #12512.
          
- 
            Fix cpp_bin_float subtractions that yield signed-zeros, see #12524.
          
- 
            Fix ceil/trunc/round applied to cpp_bin_float and yielding a signed zero,
            see #12525.
          
- 
            Added support for hashing via Boost.Hashorstd::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_backendwith fixed allocation.
- 
            Fixed division over/underflow in cpp_bin_float, see #12167.
          
- 
            Added support for signed-zeros throughout the library, including support
            for signbitandcopysign, 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_intcode to
            be used with /RTCc with MSVC.
- 
            Fix conversion of cpp_intto 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_intconstructors
            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_inttocpp_bin_float.
- 
            Fixed bug in stream input for integer types, see #11857.
          
- 
            Fixed some ambiguous conversions involving expression templates see
            #11922.
          
- 
            Add expression template aware min/max overloads see #11149.
          
- 
            Fix bug in right shifting negative small integers in cpp_int see #11999.
          
- 
            Use memmove for bitshifts in cpp_int when possible see #9233.
          
- 
            Use memcpy for data import into cpp_int where possible, see #9235.
          
- 
            Changed cpp_bin_float.convert_to<double>()to a function template rather than
            proceding vialong doubleto avoid double-rounding bug, see #12039.
- 
            Fixed conversions from NaN's and Infinities, see #12112.
          
- 
            Enabled better support for Clang on Windows.
          
- 
            Fixed handling of NaN's and Infinities in basic arithmetic for cpp_dec_float
            and cpp_bin_float, see #12090.
          
- 
            Fixed fencepost error in cpp_bin_float subtraction.
          
- 
            Fixed double-rounding in conversion to float routines for cpp_bin_float,
            see #12039.
          
- 
            Make float128 denorm aware, see #12075.
          
- 
            Allow the library and tests to be used without exception handling support,
            see #12070.
          
- 
            Fixed buggy comparison operator overloads for boost::rational.
          
- 
            Added some workarounds for Oracle C++.
          
- 
            Fixed some missing typecasts for cases where cpp_int's limb_type is wider
            than unsigned.
          
- 
            Fixed result of Miller Rabin primality test for value 2, see #11495.
          
- 
            Improved initialization of cpp_int from very large strings of hex or
            octal digits, see #11590.
          
- 
            Fixed fmod behaviour for negative divisors, see #11641.
          
- 
            Fixed infinite division loop in cpp_int special case, see #11648.
          
- 
            Patched missing return statement in #11762.
          
- 
            Fixed mixed mode arithmetic compiler error in #11764.
          
- 
            Fixed over-aggressive use of noexcept in #11826.
          
- 
            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.
          
- 
            Suppressed numerous compiler warnings.
          
- 
            Changed frexpto 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.
          
- 
            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.
          
- 
            Change floating-point to rational conversions to be implicit, see 10082.
          
- 
            Fix definition of checked_cpp_rational typedef.
          
- 
            Fix bug in assignment from string in cpp_int, see 9936.
          
- 
            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.
          
- 
            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.
          
- 
            Breaking change renamed rational_adaptertorational_adaptor.
- 
            Add support for MPFI.
          
- 
            Add logged_adaptor.
          
- 
            Add support for 128-bit floats via GCC's float128or Intel's_Quaddata
            types.
- 
            Add support for user-defined literals in cpp_int, improve constexprsupport.
- 
            Fixed bug in integer division of cpp_intthat results in incorrect sign ofcpp_intwhen both arguments are small enough to fit in adouble_limb_type.
            See 8126.
- 
            Fixed bug in subtraction of a single limb in cpp_intthat results in incorrect value when the result should have a 0 in the
            last limb: 8133.
- 
            Fixed bug in cpp_intwhere 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_intthat 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.
          
- 
            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 numberto 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_backendbased on review comments with new template parameter structure.
- 
            Added additional template parameter to mpfr_float_backendto 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.
          
- 
            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.