Change BOOST_MP_NOEXCEPT to BOOST_NOEXCEPT.

Add some missing #includes.

[SVN r78943]
This commit is contained in:
John Maddock
2012-06-14 10:26:15 +00:00
parent 5ce96a1459
commit e0a8f821c5
10 changed files with 128 additions and 132 deletions

View File

@@ -198,15 +198,15 @@ class numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::con
typedef std::numeric_limits<long double> base_type;
typedef boost::multiprecision::mp_number<boost::multiprecision::concepts::mp_number_backend_float_architype, ExpressionTemplates> number_type;
public:
static number_type (min)() BOOST_MP_NOEXCEPT { return (base_type::min)(); }
static number_type (max)() BOOST_MP_NOEXCEPT { return (base_type::max)(); }
static number_type lowest() BOOST_MP_NOEXCEPT { return -(max)(); }
static number_type epsilon() BOOST_MP_NOEXCEPT { return base_type::epsilon(); }
static number_type round_error() BOOST_MP_NOEXCEPT { return epsilon() / 2; }
static number_type infinity() BOOST_MP_NOEXCEPT { return base_type::infinity(); }
static number_type quiet_NaN() BOOST_MP_NOEXCEPT { return base_type::quiet_NaN(); }
static number_type signaling_NaN() BOOST_MP_NOEXCEPT { return base_type::signaling_NaN(); }
static number_type denorm_min() BOOST_MP_NOEXCEPT { return base_type::denorm_min(); }
static number_type (min)() BOOST_NOEXCEPT { return (base_type::min)(); }
static number_type (max)() BOOST_NOEXCEPT { return (base_type::max)(); }
static number_type lowest() BOOST_NOEXCEPT { return -(max)(); }
static number_type epsilon() BOOST_NOEXCEPT { return base_type::epsilon(); }
static number_type round_error() BOOST_NOEXCEPT { return epsilon() / 2; }
static number_type infinity() BOOST_NOEXCEPT { return base_type::infinity(); }
static number_type quiet_NaN() BOOST_NOEXCEPT { return base_type::quiet_NaN(); }
static number_type signaling_NaN() BOOST_NOEXCEPT { return base_type::signaling_NaN(); }
static number_type denorm_min() BOOST_NOEXCEPT { return base_type::denorm_min(); }
};
}

View File

@@ -2316,15 +2316,15 @@ public:
// Largest and smallest numbers are bounded only by available memory, set
// to zero:
//
static number_type (min)() BOOST_MP_NOEXCEPT
static number_type (min)() BOOST_NOEXCEPT
{
return number_type(0);
}
static number_type (max)() BOOST_MP_NOEXCEPT
static number_type (max)() BOOST_NOEXCEPT
{
return number_type(0);
}
static number_type lowest() BOOST_MP_NOEXCEPT { return (min)(); }
static number_type lowest() BOOST_NOEXCEPT { return (min)(); }
BOOST_STATIC_CONSTEXPR int digits = 0;
BOOST_STATIC_CONSTEXPR int digits10 = 0;
BOOST_STATIC_CONSTEXPR int max_digits10 = 0;
@@ -2332,8 +2332,8 @@ public:
BOOST_STATIC_CONSTEXPR bool is_integer = true;
BOOST_STATIC_CONSTEXPR bool is_exact = true;
BOOST_STATIC_CONSTEXPR int radix = 2;
static number_type epsilon() BOOST_MP_NOEXCEPT { return 0; }
static number_type round_error() BOOST_MP_NOEXCEPT { return 0; }
static number_type epsilon() BOOST_NOEXCEPT { return 0; }
static number_type round_error() BOOST_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR int min_exponent = 0;
BOOST_STATIC_CONSTEXPR int min_exponent10 = 0;
BOOST_STATIC_CONSTEXPR int max_exponent = 0;
@@ -2343,10 +2343,10 @@ public:
BOOST_STATIC_CONSTEXPR bool has_signaling_NaN = false;
BOOST_STATIC_CONSTEXPR float_denorm_style has_denorm = denorm_absent;
BOOST_STATIC_CONSTEXPR bool has_denorm_loss = false;
static number_type infinity() BOOST_MP_NOEXCEPT { return 0; }
static number_type quiet_NaN() BOOST_MP_NOEXCEPT { return 0; }
static number_type signaling_NaN() BOOST_MP_NOEXCEPT { return 0; }
static number_type denorm_min() BOOST_MP_NOEXCEPT { return 0; }
static number_type infinity() BOOST_NOEXCEPT { return 0; }
static number_type quiet_NaN() BOOST_NOEXCEPT { return 0; }
static number_type signaling_NaN() BOOST_NOEXCEPT { return 0; }
static number_type denorm_min() BOOST_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR bool is_iec559 = false;
BOOST_STATIC_CONSTEXPR bool is_bounded = false;
BOOST_STATIC_CONSTEXPR bool is_modulo = false;
@@ -2378,11 +2378,11 @@ public:
// Largest and smallest numbers are bounded only by available memory, set
// to zero:
//
static number_type (min)() BOOST_MP_NOEXCEPT
static number_type (min)() BOOST_NOEXCEPT
{
return -(max)();
}
static number_type (max)() BOOST_MP_NOEXCEPT
static number_type (max)() BOOST_NOEXCEPT
{
typedef typename number_type::backend_type backend_type;
init.do_nothing();
@@ -2401,7 +2401,7 @@ public:
}
return val;
}
static number_type lowest() BOOST_MP_NOEXCEPT { return (min)(); }
static number_type lowest() BOOST_NOEXCEPT { return (min)(); }
BOOST_STATIC_CONSTEXPR int digits = MinBits;
BOOST_STATIC_CONSTEXPR int digits10 = static_cast<int>(MinBits * 301L / 1000L);
BOOST_STATIC_CONSTEXPR int max_digits10 = digits10 + 2;
@@ -2409,8 +2409,8 @@ public:
BOOST_STATIC_CONSTEXPR bool is_integer = true;
BOOST_STATIC_CONSTEXPR bool is_exact = true;
BOOST_STATIC_CONSTEXPR int radix = 2;
static number_type epsilon() BOOST_MP_NOEXCEPT { return 0; }
static number_type round_error() BOOST_MP_NOEXCEPT { return 0; }
static number_type epsilon() BOOST_NOEXCEPT { return 0; }
static number_type round_error() BOOST_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR int min_exponent = 0;
BOOST_STATIC_CONSTEXPR int min_exponent10 = 0;
BOOST_STATIC_CONSTEXPR int max_exponent = 0;
@@ -2420,10 +2420,10 @@ public:
BOOST_STATIC_CONSTEXPR bool has_signaling_NaN = false;
BOOST_STATIC_CONSTEXPR float_denorm_style has_denorm = denorm_absent;
BOOST_STATIC_CONSTEXPR bool has_denorm_loss = false;
static number_type infinity() BOOST_MP_NOEXCEPT { return 0; }
static number_type quiet_NaN() BOOST_MP_NOEXCEPT { return 0; }
static number_type signaling_NaN() BOOST_MP_NOEXCEPT { return 0; }
static number_type denorm_min() BOOST_MP_NOEXCEPT { return 0; }
static number_type infinity() BOOST_NOEXCEPT { return 0; }
static number_type quiet_NaN() BOOST_NOEXCEPT { return 0; }
static number_type signaling_NaN() BOOST_NOEXCEPT { return 0; }
static number_type denorm_min() BOOST_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR bool is_iec559 = false;
BOOST_STATIC_CONSTEXPR bool is_bounded = true;
BOOST_STATIC_CONSTEXPR bool is_modulo = true;
@@ -2457,11 +2457,11 @@ public:
// Largest and smallest numbers are bounded only by available memory, set
// to zero:
//
static number_type (min)() BOOST_MP_NOEXCEPT
static number_type (min)() BOOST_NOEXCEPT
{
return number_type(0);
}
static number_type (max)() BOOST_MP_NOEXCEPT
static number_type (max)() BOOST_NOEXCEPT
{
typedef typename number_type::backend_type backend_type;
init.do_nothing();
@@ -2480,7 +2480,7 @@ public:
}
return val;
}
static number_type lowest() BOOST_MP_NOEXCEPT { return (min)(); }
static number_type lowest() BOOST_NOEXCEPT { return (min)(); }
BOOST_STATIC_CONSTEXPR int digits = MinBits;
BOOST_STATIC_CONSTEXPR int digits10 = static_cast<int>(MinBits * 301L / 1000L);
BOOST_STATIC_CONSTEXPR int max_digits10 = digits10 + 2;
@@ -2488,8 +2488,8 @@ public:
BOOST_STATIC_CONSTEXPR bool is_integer = true;
BOOST_STATIC_CONSTEXPR bool is_exact = true;
BOOST_STATIC_CONSTEXPR int radix = 2;
static number_type epsilon() BOOST_MP_NOEXCEPT { return 0; }
static number_type round_error() BOOST_MP_NOEXCEPT { return 0; }
static number_type epsilon() BOOST_NOEXCEPT { return 0; }
static number_type round_error() BOOST_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR int min_exponent = 0;
BOOST_STATIC_CONSTEXPR int min_exponent10 = 0;
BOOST_STATIC_CONSTEXPR int max_exponent = 0;
@@ -2499,10 +2499,10 @@ public:
BOOST_STATIC_CONSTEXPR bool has_signaling_NaN = false;
BOOST_STATIC_CONSTEXPR float_denorm_style has_denorm = denorm_absent;
BOOST_STATIC_CONSTEXPR bool has_denorm_loss = false;
static number_type infinity() BOOST_MP_NOEXCEPT { return 0; }
static number_type quiet_NaN() BOOST_MP_NOEXCEPT { return 0; }
static number_type signaling_NaN() BOOST_MP_NOEXCEPT { return 0; }
static number_type denorm_min() BOOST_MP_NOEXCEPT { return 0; }
static number_type infinity() BOOST_NOEXCEPT { return 0; }
static number_type quiet_NaN() BOOST_NOEXCEPT { return 0; }
static number_type signaling_NaN() BOOST_NOEXCEPT { return 0; }
static number_type denorm_min() BOOST_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR bool is_iec559 = false;
BOOST_STATIC_CONSTEXPR bool is_bounded = true;
BOOST_STATIC_CONSTEXPR bool is_modulo = true;

View File

@@ -133,15 +133,15 @@ class numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::ari
typedef std::numeric_limits<Arithmetic> base_type;
typedef boost::multiprecision::mp_number<boost::multiprecision::arithmetic_backend<Arithmetic>, ExpressionTemplates> number_type;
public:
BOOST_STATIC_CONSTEXPR number_type (min)() BOOST_MP_NOEXCEPT { return (base_type::min)(); }
BOOST_STATIC_CONSTEXPR number_type (max)() BOOST_MP_NOEXCEPT { return (base_type::max)(); }
BOOST_STATIC_CONSTEXPR number_type lowest() BOOST_MP_NOEXCEPT { return -(max)(); }
BOOST_STATIC_CONSTEXPR number_type epsilon() BOOST_MP_NOEXCEPT { return base_type::epsilon(); }
BOOST_STATIC_CONSTEXPR number_type round_error() BOOST_MP_NOEXCEPT { return epsilon() / 2; }
BOOST_STATIC_CONSTEXPR number_type infinity() BOOST_MP_NOEXCEPT { return base_type::infinity(); }
BOOST_STATIC_CONSTEXPR number_type quiet_NaN() BOOST_MP_NOEXCEPT { return base_type::quiet_NaN(); }
BOOST_STATIC_CONSTEXPR number_type signaling_NaN() BOOST_MP_NOEXCEPT { return base_type::signaling_NaN(); }
BOOST_STATIC_CONSTEXPR number_type denorm_min() BOOST_MP_NOEXCEPT { return base_type::denorm_min(); }
BOOST_STATIC_CONSTEXPR number_type (min)() BOOST_NOEXCEPT { return (base_type::min)(); }
BOOST_STATIC_CONSTEXPR number_type (max)() BOOST_NOEXCEPT { return (base_type::max)(); }
BOOST_STATIC_CONSTEXPR number_type lowest() BOOST_NOEXCEPT { return -(max)(); }
BOOST_STATIC_CONSTEXPR number_type epsilon() BOOST_NOEXCEPT { return base_type::epsilon(); }
BOOST_STATIC_CONSTEXPR number_type round_error() BOOST_NOEXCEPT { return epsilon() / 2; }
BOOST_STATIC_CONSTEXPR number_type infinity() BOOST_NOEXCEPT { return base_type::infinity(); }
BOOST_STATIC_CONSTEXPR number_type quiet_NaN() BOOST_NOEXCEPT { return base_type::quiet_NaN(); }
BOOST_STATIC_CONSTEXPR number_type signaling_NaN() BOOST_NOEXCEPT { return base_type::signaling_NaN(); }
BOOST_STATIC_CONSTEXPR number_type denorm_min() BOOST_NOEXCEPT { return base_type::denorm_min(); }
};
}

View File

@@ -1538,7 +1538,7 @@ public:
// Largest and smallest numbers are bounded only by available memory, set
// to zero:
//
BOOST_STATIC_CONSTEXPR number_type (min)() BOOST_MP_NOEXCEPT
BOOST_STATIC_CONSTEXPR number_type (min)() BOOST_NOEXCEPT
{
static bool init = false;
static number_type val;
@@ -1549,7 +1549,7 @@ public:
}
return val;
}
BOOST_STATIC_CONSTEXPR number_type (max)() BOOST_MP_NOEXCEPT
BOOST_STATIC_CONSTEXPR number_type (max)() BOOST_NOEXCEPT
{
static bool init = false;
static number_type val;
@@ -1560,7 +1560,7 @@ public:
}
return val;
}
BOOST_STATIC_CONSTEXPR number_type lowest() BOOST_MP_NOEXCEPT { return (min)(); }
BOOST_STATIC_CONSTEXPR number_type lowest() BOOST_NOEXCEPT { return (min)(); }
BOOST_STATIC_CONSTEXPR int digits = Bits;
BOOST_STATIC_CONSTEXPR int digits10 = (digits * 301L) / 1000;
BOOST_STATIC_CONSTEXPR int max_digits10 = digits10 + 2;
@@ -1568,8 +1568,8 @@ public:
BOOST_STATIC_CONSTEXPR bool is_integer = true;
BOOST_STATIC_CONSTEXPR bool is_exact = true;
BOOST_STATIC_CONSTEXPR int radix = 2;
BOOST_STATIC_CONSTEXPR number_type epsilon() BOOST_MP_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR number_type round_error() BOOST_MP_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR number_type epsilon() BOOST_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR number_type round_error() BOOST_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR int min_exponent = 0;
BOOST_STATIC_CONSTEXPR int min_exponent10 = 0;
BOOST_STATIC_CONSTEXPR int max_exponent = 0;
@@ -1579,10 +1579,10 @@ public:
BOOST_STATIC_CONSTEXPR bool has_signaling_NaN = false;
BOOST_STATIC_CONSTEXPR float_denorm_style has_denorm = denorm_absent;
BOOST_STATIC_CONSTEXPR bool has_denorm_loss = false;
BOOST_STATIC_CONSTEXPR number_type infinity() BOOST_MP_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR number_type quiet_NaN() BOOST_MP_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR number_type signaling_NaN() BOOST_MP_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR number_type denorm_min() BOOST_MP_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR number_type infinity() BOOST_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR number_type quiet_NaN() BOOST_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR number_type signaling_NaN() BOOST_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR number_type denorm_min() BOOST_NOEXCEPT { return 0; }
BOOST_STATIC_CONSTEXPR bool is_iec559 = false;
BOOST_STATIC_CONSTEXPR bool is_bounded = true;
BOOST_STATIC_CONSTEXPR bool is_modulo = true;

View File

@@ -11,12 +11,6 @@
#include <boost/type_traits/is_convertible.hpp>
#include <boost/lexical_cast.hpp>
#ifdef BOOST_NO_NOEXCEPT
#define BOOST_MP_NOEXCEPT
#else
#define BOOST_MP_NOEXCEPT noexcept
#endif
namespace boost{ namespace multiprecision{
template <class Backend, bool ExpressionTemplates = true>

View File

@@ -1844,7 +1844,7 @@ public:
// mpf_get_str on 64-bit Linux builds. Possibly we could use larger
// exponent values elsewhere.
//
BOOST_STATIC_CONSTEXPR number_type (min)() BOOST_MP_NOEXCEPT
BOOST_STATIC_CONSTEXPR number_type (min)() BOOST_NOEXCEPT
{
initializer.do_nothing();
static std::pair<bool, number_type> value;
@@ -1856,7 +1856,7 @@ public:
}
return value.second;
}
BOOST_STATIC_CONSTEXPR number_type (max)() BOOST_MP_NOEXCEPT
BOOST_STATIC_CONSTEXPR number_type (max)() BOOST_NOEXCEPT
{
initializer.do_nothing();
static std::pair<bool, number_type> value;
@@ -1868,7 +1868,7 @@ public:
}
return value.second;
}
BOOST_STATIC_CONSTEXPR number_type lowest() BOOST_MP_NOEXCEPT
BOOST_STATIC_CONSTEXPR number_type lowest() BOOST_NOEXCEPT
{
return -(max)();
}
@@ -1880,7 +1880,7 @@ public:
BOOST_STATIC_CONSTEXPR bool is_integer = false;
BOOST_STATIC_CONSTEXPR bool is_exact = false;
BOOST_STATIC_CONSTEXPR int radix = 2;
BOOST_STATIC_CONSTEXPR number_type epsilon() BOOST_MP_NOEXCEPT
BOOST_STATIC_CONSTEXPR number_type epsilon() BOOST_NOEXCEPT
{
initializer.do_nothing();
static std::pair<bool, number_type> value;
@@ -1893,7 +1893,7 @@ public:
return value.second;
}
// What value should this be????
BOOST_STATIC_CONSTEXPR number_type round_error() BOOST_MP_NOEXCEPT
BOOST_STATIC_CONSTEXPR number_type round_error() BOOST_NOEXCEPT
{
// returns epsilon/2
initializer.do_nothing();
@@ -1915,10 +1915,10 @@ public:
BOOST_STATIC_CONSTEXPR bool has_signaling_NaN = false;
BOOST_STATIC_CONSTEXPR float_denorm_style has_denorm = denorm_absent;
BOOST_STATIC_CONSTEXPR bool has_denorm_loss = false;
BOOST_STATIC_CONSTEXPR number_type infinity() BOOST_MP_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR number_type quiet_NaN() BOOST_MP_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR number_type signaling_NaN() BOOST_MP_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR number_type denorm_min() BOOST_MP_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR number_type infinity() BOOST_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR number_type quiet_NaN() BOOST_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR number_type signaling_NaN() BOOST_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR number_type denorm_min() BOOST_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR bool is_iec559 = false;
BOOST_STATIC_CONSTEXPR bool is_bounded = true;
BOOST_STATIC_CONSTEXPR bool is_modulo = false;
@@ -1950,9 +1950,9 @@ class numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::gmp
typedef boost::multiprecision::mp_number<boost::multiprecision::gmp_float<0>, ExpressionTemplates> number_type;
public:
BOOST_STATIC_CONSTEXPR bool is_specialized = false;
static number_type (min)() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type (max)() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type lowest() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type (min)() BOOST_NOEXCEPT { return number_type(); }
static number_type (max)() BOOST_NOEXCEPT { return number_type(); }
static number_type lowest() BOOST_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR int digits = 0;
BOOST_STATIC_CONSTEXPR int digits10 = 0;
BOOST_STATIC_CONSTEXPR int max_digits10 = 0;
@@ -1960,8 +1960,8 @@ public:
BOOST_STATIC_CONSTEXPR bool is_integer = false;
BOOST_STATIC_CONSTEXPR bool is_exact = false;
BOOST_STATIC_CONSTEXPR int radix = 0;
static number_type epsilon() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type round_error() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type epsilon() BOOST_NOEXCEPT { return number_type(); }
static number_type round_error() BOOST_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR int min_exponent = 0;
BOOST_STATIC_CONSTEXPR int min_exponent10 = 0;
BOOST_STATIC_CONSTEXPR int max_exponent = 0;
@@ -1971,10 +1971,10 @@ public:
BOOST_STATIC_CONSTEXPR bool has_signaling_NaN = false;
BOOST_STATIC_CONSTEXPR float_denorm_style has_denorm = denorm_absent;
BOOST_STATIC_CONSTEXPR bool has_denorm_loss = false;
static number_type infinity() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type quiet_NaN() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type signaling_NaN() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type denorm_min() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type infinity() BOOST_NOEXCEPT { return number_type(); }
static number_type quiet_NaN() BOOST_NOEXCEPT { return number_type(); }
static number_type signaling_NaN() BOOST_NOEXCEPT { return number_type(); }
static number_type denorm_min() BOOST_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR bool is_iec559 = false;
BOOST_STATIC_CONSTEXPR bool is_bounded = false;
BOOST_STATIC_CONSTEXPR bool is_modulo = false;
@@ -1993,15 +1993,15 @@ public:
// Largest and smallest numbers are bounded only by available memory, set
// to zero:
//
static number_type (min)() BOOST_MP_NOEXCEPT
static number_type (min)() BOOST_NOEXCEPT
{
return number_type();
}
static number_type (max)() BOOST_MP_NOEXCEPT
static number_type (max)() BOOST_NOEXCEPT
{
return number_type();
}
static number_type lowest() BOOST_MP_NOEXCEPT { return (min)(); }
static number_type lowest() BOOST_NOEXCEPT { return (min)(); }
BOOST_STATIC_CONSTEXPR int digits = INT_MAX;
BOOST_STATIC_CONSTEXPR int digits10 = (INT_MAX / 1000) * 301L;
BOOST_STATIC_CONSTEXPR int max_digits10 = digits10 + 2;
@@ -2009,8 +2009,8 @@ public:
BOOST_STATIC_CONSTEXPR bool is_integer = true;
BOOST_STATIC_CONSTEXPR bool is_exact = true;
BOOST_STATIC_CONSTEXPR int radix = 2;
static number_type epsilon() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type round_error() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type epsilon() BOOST_NOEXCEPT { return number_type(); }
static number_type round_error() BOOST_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR int min_exponent = 0;
BOOST_STATIC_CONSTEXPR int min_exponent10 = 0;
BOOST_STATIC_CONSTEXPR int max_exponent = 0;
@@ -2020,10 +2020,10 @@ public:
BOOST_STATIC_CONSTEXPR bool has_signaling_NaN = false;
BOOST_STATIC_CONSTEXPR float_denorm_style has_denorm = denorm_absent;
BOOST_STATIC_CONSTEXPR bool has_denorm_loss = false;
static number_type infinity() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type quiet_NaN() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type signaling_NaN() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type denorm_min() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type infinity() BOOST_NOEXCEPT { return number_type(); }
static number_type quiet_NaN() BOOST_NOEXCEPT { return number_type(); }
static number_type signaling_NaN() BOOST_NOEXCEPT { return number_type(); }
static number_type denorm_min() BOOST_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR bool is_iec559 = false;
BOOST_STATIC_CONSTEXPR bool is_bounded = false;
BOOST_STATIC_CONSTEXPR bool is_modulo = false;
@@ -2042,15 +2042,15 @@ public:
// Largest and smallest numbers are bounded only by available memory, set
// to zero:
//
static number_type (min)() BOOST_MP_NOEXCEPT
static number_type (min)() BOOST_NOEXCEPT
{
return number_type();
}
static number_type (max)() BOOST_MP_NOEXCEPT
static number_type (max)() BOOST_NOEXCEPT
{
return number_type();
}
static number_type lowest() BOOST_MP_NOEXCEPT { return (min)(); }
static number_type lowest() BOOST_NOEXCEPT { return (min)(); }
// Digits are unbounded, use zero for now:
BOOST_STATIC_CONSTEXPR int digits = 0;
BOOST_STATIC_CONSTEXPR int digits10 = 0;
@@ -2059,8 +2059,8 @@ public:
BOOST_STATIC_CONSTEXPR bool is_integer = false;
BOOST_STATIC_CONSTEXPR bool is_exact = true;
BOOST_STATIC_CONSTEXPR int radix = 2;
static number_type epsilon() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type round_error() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type epsilon() BOOST_NOEXCEPT { return number_type(); }
static number_type round_error() BOOST_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR int min_exponent = 0;
BOOST_STATIC_CONSTEXPR int min_exponent10 = 0;
BOOST_STATIC_CONSTEXPR int max_exponent = 0;
@@ -2070,10 +2070,10 @@ public:
BOOST_STATIC_CONSTEXPR bool has_signaling_NaN = false;
BOOST_STATIC_CONSTEXPR float_denorm_style has_denorm = denorm_absent;
BOOST_STATIC_CONSTEXPR bool has_denorm_loss = false;
static number_type infinity() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type quiet_NaN() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type signaling_NaN() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type denorm_min() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type infinity() BOOST_NOEXCEPT { return number_type(); }
static number_type quiet_NaN() BOOST_NOEXCEPT { return number_type(); }
static number_type signaling_NaN() BOOST_NOEXCEPT { return number_type(); }
static number_type denorm_min() BOOST_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR bool is_iec559 = false;
BOOST_STATIC_CONSTEXPR bool is_bounded = false;
BOOST_STATIC_CONSTEXPR bool is_modulo = false;

View File

@@ -20,6 +20,8 @@
#include <boost/type_traits/make_unsigned.hpp>
#include <boost/throw_exception.hpp>
#include <boost/multiprecision/detail/generic_interconvert.hpp>
#include <istream> // stream operators
#include <cstdio> // EOF
namespace boost{ namespace multiprecision{

View File

@@ -1045,7 +1045,7 @@ class numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpf
typedef boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<Digits10>, ExpressionTemplates> number_type;
public:
BOOST_STATIC_CONSTEXPR bool is_specialized = true;
BOOST_STATIC_CONSTEXPR number_type (min)() BOOST_MP_NOEXCEPT
BOOST_STATIC_CONSTEXPR number_type (min)() BOOST_NOEXCEPT
{
initializer.do_nothing();
static std::pair<bool, number_type> value;
@@ -1057,7 +1057,7 @@ public:
}
return value.second;
}
BOOST_STATIC_CONSTEXPR number_type (max)() BOOST_MP_NOEXCEPT
BOOST_STATIC_CONSTEXPR number_type (max)() BOOST_NOEXCEPT
{
initializer.do_nothing();
static std::pair<bool, number_type> value;
@@ -1069,7 +1069,7 @@ public:
}
return value.second;
}
BOOST_STATIC_CONSTEXPR number_type lowest() BOOST_MP_NOEXCEPT
BOOST_STATIC_CONSTEXPR number_type lowest() BOOST_NOEXCEPT
{
return -(max)();
}
@@ -1081,7 +1081,7 @@ public:
BOOST_STATIC_CONSTEXPR bool is_integer = false;
BOOST_STATIC_CONSTEXPR bool is_exact = false;
BOOST_STATIC_CONSTEXPR int radix = 2;
BOOST_STATIC_CONSTEXPR number_type epsilon() BOOST_MP_NOEXCEPT
BOOST_STATIC_CONSTEXPR number_type epsilon() BOOST_NOEXCEPT
{
initializer.do_nothing();
static std::pair<bool, number_type> value;
@@ -1094,7 +1094,7 @@ public:
return value.second;
}
// What value should this be????
BOOST_STATIC_CONSTEXPR number_type round_error() BOOST_MP_NOEXCEPT
BOOST_STATIC_CONSTEXPR number_type round_error() BOOST_NOEXCEPT
{
// returns epsilon/2
initializer.do_nothing();
@@ -1116,7 +1116,7 @@ public:
BOOST_STATIC_CONSTEXPR bool has_signaling_NaN = false;
BOOST_STATIC_CONSTEXPR float_denorm_style has_denorm = denorm_absent;
BOOST_STATIC_CONSTEXPR bool has_denorm_loss = false;
BOOST_STATIC_CONSTEXPR number_type infinity() BOOST_MP_NOEXCEPT
BOOST_STATIC_CONSTEXPR number_type infinity() BOOST_NOEXCEPT
{
// returns epsilon/2
initializer.do_nothing();
@@ -1129,7 +1129,7 @@ public:
}
return value.second;
}
BOOST_STATIC_CONSTEXPR number_type quiet_NaN() BOOST_MP_NOEXCEPT
BOOST_STATIC_CONSTEXPR number_type quiet_NaN() BOOST_NOEXCEPT
{
// returns epsilon/2
initializer.do_nothing();
@@ -1142,11 +1142,11 @@ public:
}
return value.second;
}
BOOST_STATIC_CONSTEXPR number_type signaling_NaN() BOOST_MP_NOEXCEPT
BOOST_STATIC_CONSTEXPR number_type signaling_NaN() BOOST_NOEXCEPT
{
return number_type(0);
}
BOOST_STATIC_CONSTEXPR number_type denorm_min() BOOST_MP_NOEXCEPT { return number_type(0); }
BOOST_STATIC_CONSTEXPR number_type denorm_min() BOOST_NOEXCEPT { return number_type(0); }
BOOST_STATIC_CONSTEXPR bool is_iec559 = false;
BOOST_STATIC_CONSTEXPR bool is_bounded = true;
BOOST_STATIC_CONSTEXPR bool is_modulo = false;
@@ -1180,9 +1180,9 @@ class numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::mpf
typedef boost::multiprecision::mp_number<boost::multiprecision::mpfr_float_backend<0>, ExpressionTemplates> number_type;
public:
BOOST_STATIC_CONSTEXPR bool is_specialized = false;
static number_type (min)() BOOST_MP_NOEXCEPT { return number_type(0); }
static number_type (max)() BOOST_MP_NOEXCEPT { return number_type(0); }
static number_type lowest() BOOST_MP_NOEXCEPT { return number_type(0); }
static number_type (min)() BOOST_NOEXCEPT { return number_type(0); }
static number_type (max)() BOOST_NOEXCEPT { return number_type(0); }
static number_type lowest() BOOST_NOEXCEPT { return number_type(0); }
BOOST_STATIC_CONSTEXPR int digits = 0;
BOOST_STATIC_CONSTEXPR int digits10 = 0;
BOOST_STATIC_CONSTEXPR int max_digits10 = 0;
@@ -1190,8 +1190,8 @@ public:
BOOST_STATIC_CONSTEXPR bool is_integer = false;
BOOST_STATIC_CONSTEXPR bool is_exact = false;
BOOST_STATIC_CONSTEXPR int radix = 0;
static number_type epsilon() BOOST_MP_NOEXCEPT { return number_type(0); }
static number_type round_error() BOOST_MP_NOEXCEPT { return number_type(0); }
static number_type epsilon() BOOST_NOEXCEPT { return number_type(0); }
static number_type round_error() BOOST_NOEXCEPT { return number_type(0); }
BOOST_STATIC_CONSTEXPR int min_exponent = 0;
BOOST_STATIC_CONSTEXPR int min_exponent10 = 0;
BOOST_STATIC_CONSTEXPR int max_exponent = 0;
@@ -1201,10 +1201,10 @@ public:
BOOST_STATIC_CONSTEXPR bool has_signaling_NaN = false;
BOOST_STATIC_CONSTEXPR float_denorm_style has_denorm = denorm_absent;
BOOST_STATIC_CONSTEXPR bool has_denorm_loss = false;
static number_type infinity() BOOST_MP_NOEXCEPT { return number_type(0); }
static number_type quiet_NaN() BOOST_MP_NOEXCEPT { return number_type(0); }
static number_type signaling_NaN() BOOST_MP_NOEXCEPT { return number_type(0); }
static number_type denorm_min() BOOST_MP_NOEXCEPT { return number_type(0); }
static number_type infinity() BOOST_NOEXCEPT { return number_type(0); }
static number_type quiet_NaN() BOOST_NOEXCEPT { return number_type(0); }
static number_type signaling_NaN() BOOST_NOEXCEPT { return number_type(0); }
static number_type denorm_min() BOOST_NOEXCEPT { return number_type(0); }
BOOST_STATIC_CONSTEXPR bool is_iec559 = false;
BOOST_STATIC_CONSTEXPR bool is_bounded = false;
BOOST_STATIC_CONSTEXPR bool is_modulo = false;

View File

@@ -205,15 +205,15 @@ class numeric_limits<boost::multiprecision::mp_number<boost::multiprecision::rat
public:
BOOST_STATIC_CONSTEXPR bool is_integer = false;
BOOST_STATIC_CONSTEXPR bool is_exact = true;
BOOST_STATIC_CONSTEXPR number_type (min)() BOOST_MP_NOEXCEPT { return (base_type::min)(); }
BOOST_STATIC_CONSTEXPR number_type (max)() BOOST_MP_NOEXCEPT { return (base_type::max)(); }
BOOST_STATIC_CONSTEXPR number_type lowest() BOOST_MP_NOEXCEPT { return -(max)(); }
BOOST_STATIC_CONSTEXPR number_type epsilon() BOOST_MP_NOEXCEPT { return base_type::epsilon(); }
BOOST_STATIC_CONSTEXPR number_type round_error() BOOST_MP_NOEXCEPT { return epsilon() / 2; }
BOOST_STATIC_CONSTEXPR number_type infinity() BOOST_MP_NOEXCEPT { return base_type::infinity(); }
BOOST_STATIC_CONSTEXPR number_type quiet_NaN() BOOST_MP_NOEXCEPT { return base_type::quiet_NaN(); }
BOOST_STATIC_CONSTEXPR number_type signaling_NaN() BOOST_MP_NOEXCEPT { return base_type::signaling_NaN(); }
BOOST_STATIC_CONSTEXPR number_type denorm_min() BOOST_MP_NOEXCEPT { return base_type::denorm_min(); }
BOOST_STATIC_CONSTEXPR number_type (min)() BOOST_NOEXCEPT { return (base_type::min)(); }
BOOST_STATIC_CONSTEXPR number_type (max)() BOOST_NOEXCEPT { return (base_type::max)(); }
BOOST_STATIC_CONSTEXPR number_type lowest() BOOST_NOEXCEPT { return -(max)(); }
BOOST_STATIC_CONSTEXPR number_type epsilon() BOOST_NOEXCEPT { return base_type::epsilon(); }
BOOST_STATIC_CONSTEXPR number_type round_error() BOOST_NOEXCEPT { return epsilon() / 2; }
BOOST_STATIC_CONSTEXPR number_type infinity() BOOST_NOEXCEPT { return base_type::infinity(); }
BOOST_STATIC_CONSTEXPR number_type quiet_NaN() BOOST_NOEXCEPT { return base_type::quiet_NaN(); }
BOOST_STATIC_CONSTEXPR number_type signaling_NaN() BOOST_NOEXCEPT { return base_type::signaling_NaN(); }
BOOST_STATIC_CONSTEXPR number_type denorm_min() BOOST_NOEXCEPT { return base_type::denorm_min(); }
};
}

View File

@@ -501,15 +501,15 @@ public:
// Largest and smallest numbers are bounded only by available memory, set
// to zero:
//
static number_type (min)() BOOST_MP_NOEXCEPT
static number_type (min)() BOOST_NOEXCEPT
{
return number_type();
}
static number_type (max)() BOOST_MP_NOEXCEPT
static number_type (max)() BOOST_NOEXCEPT
{
return number_type();
}
static number_type lowest() BOOST_MP_NOEXCEPT { return (min)(); }
static number_type lowest() BOOST_NOEXCEPT { return (min)(); }
BOOST_STATIC_CONSTEXPR int digits = INT_MAX;
BOOST_STATIC_CONSTEXPR int digits10 = (INT_MAX / 1000) * 301L;
BOOST_STATIC_CONSTEXPR int max_digits10 = digits10 + 2;
@@ -517,8 +517,8 @@ public:
BOOST_STATIC_CONSTEXPR bool is_integer = true;
BOOST_STATIC_CONSTEXPR bool is_exact = true;
BOOST_STATIC_CONSTEXPR int radix = 2;
static number_type epsilon() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type round_error() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type epsilon() BOOST_NOEXCEPT { return number_type(); }
static number_type round_error() BOOST_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR int min_exponent = 0;
BOOST_STATIC_CONSTEXPR int min_exponent10 = 0;
BOOST_STATIC_CONSTEXPR int max_exponent = 0;
@@ -528,10 +528,10 @@ public:
BOOST_STATIC_CONSTEXPR bool has_signaling_NaN = false;
BOOST_STATIC_CONSTEXPR float_denorm_style has_denorm = denorm_absent;
BOOST_STATIC_CONSTEXPR bool has_denorm_loss = false;
static number_type infinity() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type quiet_NaN() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type signaling_NaN() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type denorm_min() BOOST_MP_NOEXCEPT { return number_type(); }
static number_type infinity() BOOST_NOEXCEPT { return number_type(); }
static number_type quiet_NaN() BOOST_NOEXCEPT { return number_type(); }
static number_type signaling_NaN() BOOST_NOEXCEPT { return number_type(); }
static number_type denorm_min() BOOST_NOEXCEPT { return number_type(); }
BOOST_STATIC_CONSTEXPR bool is_iec559 = false;
BOOST_STATIC_CONSTEXPR bool is_bounded = false;
BOOST_STATIC_CONSTEXPR bool is_modulo = false;