long long, or else we're converting to an integer that is wider than we are.
static_cast<unsigned>(~static_cast<unsigned>(0) & my_value). Note that technically (to avoid undefined behaviour) you should do the same thing with built in integer types too. See #13109.
cpp_bin_floatprevent double rounding when converting to a denormalized float. See #12527.
cpp_bin_floatrounding code to round at arbitrary location so we can use it for conversions, see #12527.
cpp_bin_float. See: #12580.
cpp_int's, see #12627.
ilogb(and code that uses it) to consistently return the smallest value of the exponent type when the argument is zero, see #12625.
cpp_intwhich would result in bit-loss, see #12790.
cpp_int's caused by over-aggressive constexpr optimization, see #12798.
mpfr_float_backendwith fixed allocation.
copysign, mpfr, float128, and cpp_bin_float types should now respect signed-zeros correctly.
cpp_intcode to be used with /RTCc with MSVC.
cpp_intto signed integer when the result is INT_MIN, see #12343.
cpp_intconstructors are available on non-little-endian machines).
a = a * a * a, see #12408.
cpp_bin_float.convert_to<double>()to a function template rather than proceding via
long doubleto avoid double-rounding bug, see #12039.
frexpto always be non-expression template generating, see: 10993.
cpp_intthat results in incorrect sign of
cpp_intwhen both arguments are small enough to fit in a
double_limb_type. See 8126.
cpp_intthat results in incorrect value when the result should have a 0 in the last limb: 8133.
cpp_intwhere division of 0 by something doesn't get zero in the result: 8160.
a = pow(a, b). See 8326.
cpp_intthat gives incorrect answer for 0%N for large N: 8670.
numberto use enumerated values rather than true/false.
cpp_int_backendbased on review comments with new template parameter structure.
mpfr_float_backendto allow stack-based allocation.