mirror of
https://github.com/boostorg/multiprecision.git
synced 2026-02-20 14:52:24 +00:00
Add better rvalue reference support to the non-expression template operators.
Add numeric_limits member definitions. [SVN r79187]
This commit is contained in:
@@ -2853,40 +2853,89 @@ namespace std
|
||||
class numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >
|
||||
{
|
||||
public:
|
||||
static const bool is_specialized = true;
|
||||
static const bool is_signed = true;
|
||||
static const bool is_integer = false;
|
||||
static const bool is_exact = false;
|
||||
static const bool is_bounded = true;
|
||||
static const bool is_modulo = false;
|
||||
static const bool is_iec559 = false;
|
||||
static const int digits = boost::multiprecision::cpp_dec_float<Digits10>::cpp_dec_float_digits10;
|
||||
static const int digits10 = boost::multiprecision::cpp_dec_float<Digits10>::cpp_dec_float_digits10;
|
||||
static const int max_digits10 = boost::multiprecision::cpp_dec_float<Digits10>::cpp_dec_float_total_digits10;
|
||||
static const boost::int64_t min_exponent = boost::multiprecision::cpp_dec_float<Digits10>::cpp_dec_float_min_exp; // Type differs from int.
|
||||
static const boost::int64_t min_exponent10 = boost::multiprecision::cpp_dec_float<Digits10>::cpp_dec_float_min_exp10; // Type differs from int.
|
||||
static const boost::int64_t max_exponent = boost::multiprecision::cpp_dec_float<Digits10>::cpp_dec_float_max_exp; // Type differs from int.
|
||||
static const boost::int64_t max_exponent10 = boost::multiprecision::cpp_dec_float<Digits10>::cpp_dec_float_max_exp10; // Type differs from int.
|
||||
static const int radix = boost::multiprecision::cpp_dec_float<Digits10>::cpp_dec_float_radix;
|
||||
static const std::float_round_style round_style = std::round_to_nearest;
|
||||
static const bool has_infinity = true;
|
||||
static const bool has_quiet_NaN = true;
|
||||
static const bool has_signaling_NaN = false;
|
||||
static const std::float_denorm_style has_denorm = std::denorm_absent;
|
||||
static const bool has_denorm_loss = false;
|
||||
static const bool traps = false;
|
||||
static const bool tinyness_before = false;
|
||||
BOOST_STATIC_CONSTEXPR bool is_specialized = true;
|
||||
BOOST_STATIC_CONSTEXPR bool is_signed = true;
|
||||
BOOST_STATIC_CONSTEXPR bool is_integer = false;
|
||||
BOOST_STATIC_CONSTEXPR bool is_exact = false;
|
||||
BOOST_STATIC_CONSTEXPR bool is_bounded = true;
|
||||
BOOST_STATIC_CONSTEXPR bool is_modulo = false;
|
||||
BOOST_STATIC_CONSTEXPR bool is_iec559 = false;
|
||||
BOOST_STATIC_CONSTEXPR int digits = boost::multiprecision::cpp_dec_float<Digits10>::cpp_dec_float_digits10;
|
||||
BOOST_STATIC_CONSTEXPR int digits10 = boost::multiprecision::cpp_dec_float<Digits10>::cpp_dec_float_digits10;
|
||||
BOOST_STATIC_CONSTEXPR int max_digits10 = boost::multiprecision::cpp_dec_float<Digits10>::cpp_dec_float_total_digits10;
|
||||
BOOST_STATIC_CONSTEXPR boost::int64_t min_exponent = boost::multiprecision::cpp_dec_float<Digits10>::cpp_dec_float_min_exp; // Type differs from int.
|
||||
BOOST_STATIC_CONSTEXPR boost::int64_t min_exponent10 = boost::multiprecision::cpp_dec_float<Digits10>::cpp_dec_float_min_exp10; // Type differs from int.
|
||||
BOOST_STATIC_CONSTEXPR boost::int64_t max_exponent = boost::multiprecision::cpp_dec_float<Digits10>::cpp_dec_float_max_exp; // Type differs from int.
|
||||
BOOST_STATIC_CONSTEXPR boost::int64_t max_exponent10 = boost::multiprecision::cpp_dec_float<Digits10>::cpp_dec_float_max_exp10; // Type differs from int.
|
||||
BOOST_STATIC_CONSTEXPR int radix = boost::multiprecision::cpp_dec_float<Digits10>::cpp_dec_float_radix;
|
||||
BOOST_STATIC_CONSTEXPR std::float_round_style round_style = std::round_to_nearest;
|
||||
BOOST_STATIC_CONSTEXPR bool has_infinity = true;
|
||||
BOOST_STATIC_CONSTEXPR bool has_quiet_NaN = true;
|
||||
BOOST_STATIC_CONSTEXPR bool has_signaling_NaN = false;
|
||||
BOOST_STATIC_CONSTEXPR std::float_denorm_style has_denorm = std::denorm_absent;
|
||||
BOOST_STATIC_CONSTEXPR bool has_denorm_loss = false;
|
||||
BOOST_STATIC_CONSTEXPR bool traps = false;
|
||||
BOOST_STATIC_CONSTEXPR bool tinyness_before = false;
|
||||
|
||||
static const boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> (min) (void) { return (boost::multiprecision::cpp_dec_float<Digits10>::min)(); }
|
||||
static const boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> (max) (void) { return (boost::multiprecision::cpp_dec_float<Digits10>::max)(); }
|
||||
static const boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> lowest (void) { return boost::multiprecision::cpp_dec_float<Digits10>::zero(); }
|
||||
static const boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> epsilon (void) { return boost::multiprecision::cpp_dec_float<Digits10>::eps(); }
|
||||
static const boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> round_error (void) { return 0.5L; }
|
||||
static const boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> infinity (void) { return boost::multiprecision::cpp_dec_float<Digits10>::inf(); }
|
||||
static const boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> quiet_NaN (void) { return boost::multiprecision::cpp_dec_float<Digits10>::nan(); }
|
||||
static const boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> signaling_NaN(void) { return boost::multiprecision::cpp_dec_float<Digits10>::zero(); }
|
||||
static const boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> denorm_min (void) { return boost::multiprecision::cpp_dec_float<Digits10>::zero(); }
|
||||
BOOST_STATIC_CONSTEXPR boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> (min) (void) { return (boost::multiprecision::cpp_dec_float<Digits10>::min)(); }
|
||||
BOOST_STATIC_CONSTEXPR boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> (max) (void) { return (boost::multiprecision::cpp_dec_float<Digits10>::max)(); }
|
||||
BOOST_STATIC_CONSTEXPR boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> lowest (void) { return boost::multiprecision::cpp_dec_float<Digits10>::zero(); }
|
||||
BOOST_STATIC_CONSTEXPR boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> epsilon (void) { return boost::multiprecision::cpp_dec_float<Digits10>::eps(); }
|
||||
BOOST_STATIC_CONSTEXPR boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> round_error (void) { return 0.5L; }
|
||||
BOOST_STATIC_CONSTEXPR boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> infinity (void) { return boost::multiprecision::cpp_dec_float<Digits10>::inf(); }
|
||||
BOOST_STATIC_CONSTEXPR boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> quiet_NaN (void) { return boost::multiprecision::cpp_dec_float<Digits10>::nan(); }
|
||||
BOOST_STATIC_CONSTEXPR boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> signaling_NaN(void) { return boost::multiprecision::cpp_dec_float<Digits10>::zero(); }
|
||||
BOOST_STATIC_CONSTEXPR boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> denorm_min (void) { return boost::multiprecision::cpp_dec_float<Digits10>::zero(); }
|
||||
};
|
||||
|
||||
#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::digits;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::digits10;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::max_digits10;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::is_signed;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::is_integer;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::is_exact;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::radix;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST boost::int64_t numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::min_exponent;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST boost::int64_t numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::min_exponent10;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST boost::int64_t numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::max_exponent;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST boost::int64_t numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::max_exponent10;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::has_infinity;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::has_quiet_NaN;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::has_signaling_NaN;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST float_denorm_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::has_denorm;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::has_denorm_loss;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::is_iec559;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::is_bounded;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::is_modulo;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::traps;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::tinyness_before;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST float_round_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_dec_float<Digits10>, ExpressionTemplates> >::round_style;
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
namespace boost{ namespace math{
|
||||
|
||||
@@ -2362,49 +2362,49 @@ public:
|
||||
#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::digits;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::digits;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::digits10;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::digits10;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::max_digits10;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::max_digits10;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::is_signed;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::is_signed;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::is_integer;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::is_integer;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::is_exact;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::is_exact;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::radix;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::radix;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::min_exponent;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::min_exponent;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::min_exponent10;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::min_exponent10;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::max_exponent;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::max_exponent;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::max_exponent10;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::max_exponent10;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::has_infinity;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::has_infinity;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::has_quiet_NaN;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::has_quiet_NaN;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::has_signaling_NaN;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::has_signaling_NaN;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const float_denorm_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::has_denorm;
|
||||
BOOST_CONSTEXPR_OR_CONST float_denorm_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::has_denorm;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::has_denorm_loss;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::has_denorm_loss;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::is_iec559;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::is_iec559;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::is_bounded;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::is_bounded;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::is_modulo;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::is_modulo;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::traps;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::traps;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::tinyness_before;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::tinyness_before;
|
||||
template <unsigned MinBits, bool Signed, class Allocator, bool ExpressionTemplates>
|
||||
const float_round_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::round_style;
|
||||
BOOST_CONSTEXPR_OR_CONST float_round_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, Signed, Allocator>, ExpressionTemplates> >::round_style;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -2491,49 +2491,49 @@ const typename numeric_limits<boost::multiprecision::mp_number<boost::multipreci
|
||||
#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::digits;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::digits;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::digits10;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::digits10;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::max_digits10;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::max_digits10;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::is_signed;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::is_signed;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::is_integer;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::is_integer;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::is_exact;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::is_exact;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::radix;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::radix;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::min_exponent;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::min_exponent;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::min_exponent10;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::min_exponent10;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::max_exponent;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::max_exponent;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::max_exponent10;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::max_exponent10;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::has_infinity;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::has_infinity;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::has_quiet_NaN;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::has_quiet_NaN;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::has_signaling_NaN;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::has_signaling_NaN;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const float_denorm_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::has_denorm;
|
||||
BOOST_CONSTEXPR_OR_CONST float_denorm_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::has_denorm;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::has_denorm_loss;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::has_denorm_loss;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::is_iec559;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::is_iec559;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::is_bounded;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::is_bounded;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::is_modulo;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::is_modulo;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::traps;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::traps;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::tinyness_before;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::tinyness_before;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const float_round_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::round_style;
|
||||
BOOST_CONSTEXPR_OR_CONST float_round_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, true, void>, ExpressionTemplates> >::round_style;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -2619,49 +2619,49 @@ const typename numeric_limits<boost::multiprecision::mp_number<boost::multipreci
|
||||
#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::digits;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::digits;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::digits10;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::digits10;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::max_digits10;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::max_digits10;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::is_signed;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::is_signed;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::is_integer;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::is_integer;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::is_exact;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::is_exact;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::radix;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::radix;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::min_exponent;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::min_exponent;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::min_exponent10;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::min_exponent10;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::max_exponent;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::max_exponent;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::max_exponent10;
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::max_exponent10;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::has_infinity;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::has_infinity;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::has_quiet_NaN;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::has_quiet_NaN;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::has_signaling_NaN;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::has_signaling_NaN;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const float_denorm_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::has_denorm;
|
||||
BOOST_CONSTEXPR_OR_CONST float_denorm_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::has_denorm;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::has_denorm_loss;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::has_denorm_loss;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::is_iec559;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::is_iec559;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::is_bounded;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::is_bounded;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::is_modulo;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::is_modulo;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::traps;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::traps;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::tinyness_before;
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::tinyness_before;
|
||||
template <unsigned MinBits, bool ExpressionTemplates>
|
||||
const float_round_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::round_style;
|
||||
BOOST_CONSTEXPR_OR_CONST float_round_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::cpp_int_backend<MinBits, false, void>, ExpressionTemplates> >::round_style;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -298,6 +298,336 @@ inline typename enable_if<is_integral<I>, mp_number<B, false> >::type
|
||||
return result;
|
||||
}
|
||||
|
||||
#ifndef BOOST_NO_RVALUE_REFERENCES
|
||||
//
|
||||
// If we have rvalue references go all over again with rvalue ref overloads and move semantics:
|
||||
//
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator - (mp_number<B, false>&& v)
|
||||
{
|
||||
v.backend().negate();
|
||||
return static_cast<mp_number<B, false>&&>(v);
|
||||
}
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator ~ (mp_number<B, false>&& v)
|
||||
{
|
||||
eval_complement(v.backend(), v.backend());
|
||||
return static_cast<mp_number<B, false>&&>(v);
|
||||
}
|
||||
//
|
||||
// Addition:
|
||||
//
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator + (mp_number<B, false>&& a, const mp_number<B, false>& b)
|
||||
{
|
||||
using default_ops::eval_add;
|
||||
eval_add(a.backend(), b.backend());
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator + (const mp_number<B, false>& a, mp_number<B, false>&& b)
|
||||
{
|
||||
using default_ops::eval_add;
|
||||
eval_add(b.backend(), a.backend());
|
||||
return static_cast<mp_number<B, false>&&>(b);
|
||||
}
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator + (mp_number<B, false>&& a, mp_number<B, false>&& b)
|
||||
{
|
||||
using default_ops::eval_add;
|
||||
eval_add(a.backend(), b.backend());
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class B, class V>
|
||||
inline typename enable_if<is_arithmetic<V>, mp_number<B, false>&& >::type
|
||||
operator + (mp_number<B, false>&& a, const V& b)
|
||||
{
|
||||
typedef typename detail::canonical<V, B>::type canonical_type;
|
||||
using default_ops::eval_add;
|
||||
eval_add(a.backend(), static_cast<canonical_type>(b));
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class V, class B>
|
||||
inline typename enable_if<is_arithmetic<V>, mp_number<B, false>&& >::type
|
||||
operator + (const V& a, mp_number<B, false>&& b)
|
||||
{
|
||||
typedef typename detail::canonical<V, B>::type canonical_type;
|
||||
using default_ops::eval_add;
|
||||
eval_add(b.backend(), static_cast<canonical_type>(a));
|
||||
return static_cast<mp_number<B, false>&&>(b);
|
||||
}
|
||||
//
|
||||
// Subtraction:
|
||||
//
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator - (mp_number<B, false>&& a, const mp_number<B, false>& b)
|
||||
{
|
||||
using default_ops::eval_subtract;
|
||||
eval_subtract(a.backend(), b.backend());
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator - (const mp_number<B, false>& a, mp_number<B, false>&& b)
|
||||
{
|
||||
using default_ops::eval_subtract;
|
||||
eval_subtract(b.backend(), a.backend());
|
||||
b.backend().negate();
|
||||
return static_cast<mp_number<B, false>&&>(b);
|
||||
}
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator - (mp_number<B, false>&& a, mp_number<B, false>&& b)
|
||||
{
|
||||
using default_ops::eval_subtract;
|
||||
eval_subtract(a.backend(), b.backend());
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class B, class V>
|
||||
inline typename enable_if<is_arithmetic<V>, mp_number<B, false>&& >::type
|
||||
operator - (mp_number<B, false>&& a, const V& b)
|
||||
{
|
||||
typedef typename detail::canonical<V, B>::type canonical_type;
|
||||
using default_ops::eval_subtract;
|
||||
eval_subtract(a.backend(), static_cast<canonical_type>(b));
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class V, class B>
|
||||
inline typename enable_if<is_arithmetic<V>, mp_number<B, false>&& >::type
|
||||
operator - (const V& a, mp_number<B, false>&& b)
|
||||
{
|
||||
typedef typename detail::canonical<V, B>::type canonical_type;
|
||||
using default_ops::eval_subtract;
|
||||
eval_subtract(b.backend(), static_cast<canonical_type>(a));
|
||||
b.backend().negate();
|
||||
return static_cast<mp_number<B, false>&&>(b);
|
||||
}
|
||||
//
|
||||
// Multiply:
|
||||
//
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator * (mp_number<B, false>&& a, const mp_number<B, false>& b)
|
||||
{
|
||||
using default_ops::eval_multiply;
|
||||
eval_multiply(a.backend(), b.backend());
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator * (const mp_number<B, false>& a, mp_number<B, false>&& b)
|
||||
{
|
||||
using default_ops::eval_multiply;
|
||||
eval_multiply(b.backend(), a.backend());
|
||||
return static_cast<mp_number<B, false>&&>(b);
|
||||
}
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator * (mp_number<B, false>&& a, mp_number<B, false>&& b)
|
||||
{
|
||||
using default_ops::eval_multiply;
|
||||
eval_multiply(a.backend(), b.backend());
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class B, class V>
|
||||
inline typename enable_if<is_arithmetic<V>, mp_number<B, false>&& >::type
|
||||
operator * (mp_number<B, false>&& a, const V& b)
|
||||
{
|
||||
typedef typename detail::canonical<V, B>::type canonical_type;
|
||||
using default_ops::eval_multiply;
|
||||
eval_multiply(a.backend(), static_cast<canonical_type>(b));
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class V, class B>
|
||||
inline typename enable_if<is_arithmetic<V>, mp_number<B, false>&& >::type
|
||||
operator * (const V& a, mp_number<B, false>&& b)
|
||||
{
|
||||
typedef typename detail::canonical<V, B>::type canonical_type;
|
||||
using default_ops::eval_multiply;
|
||||
eval_multiply(b.backend(), static_cast<canonical_type>(a));
|
||||
return static_cast<mp_number<B, false>&&>(b);
|
||||
}
|
||||
//
|
||||
// divide:
|
||||
//
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator / (mp_number<B, false>&& a, const mp_number<B, false>& b)
|
||||
{
|
||||
using default_ops::eval_divide;
|
||||
eval_divide(a.backend(), b.backend());
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class B, class V>
|
||||
inline typename enable_if<is_arithmetic<V>, mp_number<B, false>&& >::type
|
||||
operator / (mp_number<B, false>&& a, const V& b)
|
||||
{
|
||||
typedef typename detail::canonical<V, B>::type canonical_type;
|
||||
using default_ops::eval_divide;
|
||||
eval_divide(a.backend(), static_cast<canonical_type>(b));
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
//
|
||||
// modulus:
|
||||
//
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator % (mp_number<B, false>&& a, const mp_number<B, false>& b)
|
||||
{
|
||||
using default_ops::eval_modulus;
|
||||
eval_modulus(a.backend(), b.backend());
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class B, class V>
|
||||
inline typename enable_if<is_arithmetic<V>, mp_number<B, false>&& >::type
|
||||
operator % (mp_number<B, false>&& a, const V& b)
|
||||
{
|
||||
typedef typename detail::canonical<V, B>::type canonical_type;
|
||||
using default_ops::eval_modulus;
|
||||
eval_modulus(a.backend(), static_cast<canonical_type>(b));
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
//
|
||||
// Bitwise or:
|
||||
//
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator | (mp_number<B, false>&& a, const mp_number<B, false>& b)
|
||||
{
|
||||
using default_ops::eval_bitwise_or;
|
||||
eval_bitwise_or(a.backend(), b.backend());
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator | (const mp_number<B, false>& a, mp_number<B, false>&& b)
|
||||
{
|
||||
using default_ops::eval_bitwise_or;
|
||||
eval_bitwise_or(b.backend(), a.backend());
|
||||
return static_cast<mp_number<B, false>&&>(b);
|
||||
}
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator | (mp_number<B, false>&& a, mp_number<B, false>&& b)
|
||||
{
|
||||
using default_ops::eval_bitwise_or;
|
||||
eval_bitwise_or(a.backend(), b.backend());
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class B, class V>
|
||||
inline typename enable_if<is_arithmetic<V>, mp_number<B, false>&& >::type
|
||||
operator | (mp_number<B, false>&& a, const V& b)
|
||||
{
|
||||
typedef typename detail::canonical<V, B>::type canonical_type;
|
||||
using default_ops::eval_bitwise_or;
|
||||
eval_bitwise_or(a.backend(), static_cast<canonical_type>(b));
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class V, class B>
|
||||
inline typename enable_if<is_arithmetic<V>, mp_number<B, false>&& >::type
|
||||
operator | (const V& a, mp_number<B, false>&& b)
|
||||
{
|
||||
typedef typename detail::canonical<V, B>::type canonical_type;
|
||||
using default_ops::eval_bitwise_or;
|
||||
eval_bitwise_or(b.backend(), static_cast<canonical_type>(a));
|
||||
return static_cast<mp_number<B, false>&&>(b);
|
||||
}
|
||||
//
|
||||
// Bitwise xor:
|
||||
//
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator ^ (mp_number<B, false>&& a, const mp_number<B, false>& b)
|
||||
{
|
||||
using default_ops::eval_bitwise_xor;
|
||||
eval_bitwise_xor(a.backend(), b.backend());
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator ^ (const mp_number<B, false>& a, mp_number<B, false>&& b)
|
||||
{
|
||||
using default_ops::eval_bitwise_xor;
|
||||
eval_bitwise_xor(b.backend(), a.backend());
|
||||
return static_cast<mp_number<B, false>&&>(b);
|
||||
}
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator ^ (mp_number<B, false>&& a, mp_number<B, false>&& b)
|
||||
{
|
||||
using default_ops::eval_bitwise_xor;
|
||||
eval_bitwise_xor(a.backend(), b.backend());
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class B, class V>
|
||||
inline typename enable_if<is_arithmetic<V>, mp_number<B, false>&& >::type
|
||||
operator ^ (mp_number<B, false>&& a, const V& b)
|
||||
{
|
||||
typedef typename detail::canonical<V, B>::type canonical_type;
|
||||
using default_ops::eval_bitwise_xor;
|
||||
eval_bitwise_xor(a.backend(), static_cast<canonical_type>(b));
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class V, class B>
|
||||
inline typename enable_if<is_arithmetic<V>, mp_number<B, false>&& >::type
|
||||
operator ^ (const V& a, mp_number<B, false>&& b)
|
||||
{
|
||||
typedef typename detail::canonical<V, B>::type canonical_type;
|
||||
using default_ops::eval_bitwise_xor;
|
||||
eval_bitwise_xor(b.backend(), static_cast<canonical_type>(a));
|
||||
return static_cast<mp_number<B, false>&&>(b);
|
||||
}
|
||||
//
|
||||
// Bitwise and:
|
||||
//
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator & (mp_number<B, false>&& a, const mp_number<B, false>& b)
|
||||
{
|
||||
using default_ops::eval_bitwise_and;
|
||||
eval_bitwise_and(a.backend(), b.backend());
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator & (const mp_number<B, false>& a, mp_number<B, false>&& b)
|
||||
{
|
||||
using default_ops::eval_bitwise_and;
|
||||
eval_bitwise_and(b.backend(), a.backend());
|
||||
return static_cast<mp_number<B, false>&&>(b);
|
||||
}
|
||||
template <class B>
|
||||
inline mp_number<B, false>&& operator & (mp_number<B, false>&& a, mp_number<B, false>&& b)
|
||||
{
|
||||
using default_ops::eval_bitwise_and;
|
||||
eval_bitwise_and(a.backend(), b.backend());
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class B, class V>
|
||||
inline typename enable_if<is_arithmetic<V>, mp_number<B, false>&& >::type
|
||||
operator & (mp_number<B, false>&& a, const V& b)
|
||||
{
|
||||
typedef typename detail::canonical<V, B>::type canonical_type;
|
||||
using default_ops::eval_bitwise_and;
|
||||
eval_bitwise_and(a.backend(), static_cast<canonical_type>(b));
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class V, class B>
|
||||
inline typename enable_if<is_arithmetic<V>, mp_number<B, false>&& >::type
|
||||
operator & (const V& a, mp_number<B, false>&& b)
|
||||
{
|
||||
typedef typename detail::canonical<V, B>::type canonical_type;
|
||||
using default_ops::eval_bitwise_and;
|
||||
eval_bitwise_and(b.backend(), static_cast<canonical_type>(a));
|
||||
return static_cast<mp_number<B, false>&&>(b);
|
||||
}
|
||||
//
|
||||
// shifts:
|
||||
//
|
||||
template <class B, class I>
|
||||
inline typename enable_if<is_integral<I>, mp_number<B, false>&& >::type
|
||||
operator << (mp_number<B, false>&& a, const I& b)
|
||||
{
|
||||
using default_ops::eval_left_shift;
|
||||
eval_left_shift(a.backend(), b);
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
template <class B, class I>
|
||||
inline typename enable_if<is_integral<I>, mp_number<B, false>&& >::type
|
||||
operator >> (mp_number<B, false>&& a, const I& b)
|
||||
{
|
||||
using default_ops::eval_right_shift;
|
||||
eval_right_shift(a.backend(), b);
|
||||
return static_cast<mp_number<B, false>&&>(a);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
}} // namespaces
|
||||
|
||||
#endif // BOOST_MP_NO_ET_OPS_HPP
|
||||
|
||||
@@ -1993,6 +1993,55 @@ public:
|
||||
BOOST_STATIC_CONSTEXPR float_round_style round_style = round_toward_zero;
|
||||
};
|
||||
|
||||
#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::digits;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::digits10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::max_digits10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::is_signed;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::is_integer;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::is_exact;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::radix;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::min_exponent;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::min_exponent10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::max_exponent;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::max_exponent10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::has_infinity;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::has_quiet_NaN;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::has_signaling_NaN;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST float_denorm_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::has_denorm;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::has_denorm_loss;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::is_iec559;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::is_bounded;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::is_modulo;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::traps;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::tinyness_before;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST float_round_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> >::round_style;
|
||||
|
||||
#endif
|
||||
|
||||
template<bool ExpressionTemplates>
|
||||
class numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >
|
||||
{
|
||||
@@ -2042,6 +2091,55 @@ public:
|
||||
BOOST_STATIC_CONSTEXPR float_round_style round_style = round_toward_zero;
|
||||
};
|
||||
|
||||
#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::digits;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::digits10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::max_digits10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::is_signed;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::is_integer;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::is_exact;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::radix;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::min_exponent;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::min_exponent10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::max_exponent;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::max_exponent10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::has_infinity;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::has_quiet_NaN;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::has_signaling_NaN;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST float_denorm_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::has_denorm;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::has_denorm_loss;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::is_iec559;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::is_bounded;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::is_modulo;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::traps;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::tinyness_before;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST float_round_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_int, ExpressionTemplates> >::round_style;
|
||||
|
||||
#endif
|
||||
|
||||
template<bool ExpressionTemplates>
|
||||
class numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >
|
||||
{
|
||||
@@ -2092,6 +2190,55 @@ public:
|
||||
BOOST_STATIC_CONSTEXPR float_round_style round_style = round_toward_zero;
|
||||
};
|
||||
|
||||
#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::digits;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::digits10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::max_digits10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::is_signed;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::is_integer;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::is_exact;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::radix;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::min_exponent;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::min_exponent10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::max_exponent;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::max_exponent10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::has_infinity;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::has_quiet_NaN;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::has_signaling_NaN;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST float_denorm_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::has_denorm;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::has_denorm_loss;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::is_iec559;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::is_bounded;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::is_modulo;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::traps;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::tinyness_before;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST float_round_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp_rational, ExpressionTemplates> >::round_style;
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef BOOST_MSVC
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
@@ -1174,6 +1174,56 @@ private:
|
||||
template<unsigned Digits10, bool ExpressionTemplates>
|
||||
const typename numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::data_initializer numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::initializer;
|
||||
|
||||
#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::digits;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::digits10;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::max_digits10;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::is_signed;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::is_integer;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::is_exact;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::radix;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST long numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::min_exponent;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST long numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::min_exponent10;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST long numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::max_exponent;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST long numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::max_exponent10;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::has_infinity;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::has_quiet_NaN;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::has_signaling_NaN;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST float_denorm_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::has_denorm;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::has_denorm_loss;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::is_iec559;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::is_bounded;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::is_modulo;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::traps;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::tinyness_before;
|
||||
template <unsigned Digits10, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST float_round_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> >::round_style;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
template<bool ExpressionTemplates>
|
||||
class numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >
|
||||
{
|
||||
@@ -1213,5 +1263,53 @@ public:
|
||||
BOOST_STATIC_CONSTEXPR float_round_style round_style = round_toward_zero;
|
||||
};
|
||||
|
||||
#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::digits;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::digits10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::max_digits10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::is_signed;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::is_integer;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::is_exact;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::radix;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::min_exponent;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::min_exponent10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::max_exponent;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::max_exponent10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::has_infinity;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::has_quiet_NaN;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::has_signaling_NaN;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST float_denorm_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::has_denorm;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::has_denorm_loss;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::is_iec559;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::is_bounded;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::is_modulo;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::traps;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::tinyness_before;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST float_round_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> >::round_style;
|
||||
|
||||
#endif
|
||||
} // namespace std
|
||||
#endif
|
||||
|
||||
@@ -197,8 +197,8 @@ struct component_type<rational_adapter<T> >
|
||||
|
||||
namespace std{
|
||||
|
||||
template <class IntBackend>
|
||||
class numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::rational_adapter<IntBackend> > > : public std::numeric_limits<boost::multiprecision::mp_number<IntBackend> >
|
||||
template <class IntBackend, bool ExpressionTemplates>
|
||||
class numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::rational_adapter<IntBackend>, ExpressionTemplates> > : public std::numeric_limits<boost::multiprecision::mp_number<IntBackend, ExpressionTemplates> >
|
||||
{
|
||||
typedef std::numeric_limits<boost::multiprecision::mp_number<IntBackend> > base_type;
|
||||
typedef boost::multiprecision::mp_number<boost::multiprecision::rational_adapter<IntBackend> > number_type;
|
||||
@@ -216,6 +216,16 @@ public:
|
||||
BOOST_STATIC_CONSTEXPR number_type denorm_min() BOOST_NOEXCEPT { return base_type::denorm_min(); }
|
||||
};
|
||||
|
||||
#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
|
||||
template <class IntBackend, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::rational_adapter<IntBackend>, ExpressionTemplates> >::is_integer;
|
||||
template <class IntBackend, bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::rational_adapter<IntBackend>, ExpressionTemplates> >::is_exact;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -540,6 +540,54 @@ public:
|
||||
BOOST_STATIC_CONSTEXPR float_round_style round_style = round_toward_zero;
|
||||
};
|
||||
|
||||
#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::digits;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::digits10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::max_digits10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::is_signed;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::is_integer;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::is_exact;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::radix;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::min_exponent;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::min_exponent10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::max_exponent;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST int numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::max_exponent10;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::has_infinity;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::has_quiet_NaN;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::has_signaling_NaN;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST float_denorm_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::has_denorm;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::has_denorm_loss;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::is_iec559;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::is_bounded;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::is_modulo;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::traps;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST bool numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::tinyness_before;
|
||||
template <bool ExpressionTemplates>
|
||||
BOOST_CONSTEXPR_OR_CONST float_round_style numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::tommath_int, ExpressionTemplates> >::round_style;
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user