summaryrefslogtreecommitdiff
path: root/boost/multiprecision/float128.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/multiprecision/float128.hpp')
-rw-r--r--boost/multiprecision/float128.hpp20
1 files changed, 5 insertions, 15 deletions
diff --git a/boost/multiprecision/float128.hpp b/boost/multiprecision/float128.hpp
index 702d488cd6..8de3af6519 100644
--- a/boost/multiprecision/float128.hpp
+++ b/boost/multiprecision/float128.hpp
@@ -399,15 +399,6 @@ inline void eval_fabs(float128_backend& result, const float128_backend& arg)
inline void eval_trunc(float128_backend& result, const float128_backend& arg)
{
- if(isnanq(arg.value()) || isinfq(arg.value()))
- {
- result = boost::math::policies::raise_rounding_error(
- "boost::multiprecision::trunc<%1%>(%1%)", 0,
- number<float128_backend, et_off>(arg),
- number<float128_backend, et_off>(arg),
- boost::math::policies::policy<>()).backend();
- return;
- }
result.value() = truncq(arg.value());
}
/*
@@ -494,6 +485,11 @@ inline void eval_multiply_add(float128_backend& result, const float128_backend&
result.value() = fmaq(a.value(), b.value(), c.value());
}
+inline int eval_signbit BOOST_PREVENT_MACRO_SUBSTITUTION(const float128_backend& arg)
+{
+ return ::signbitq(arg.value());
+}
+
inline std::size_t hash_value(const float128_backend& val)
{
return boost::hash_value(static_cast<double>(val.value()));
@@ -553,12 +549,6 @@ inline std::size_t hash_value(const float128_backend& val)
}
template <multiprecision::expression_template_option ExpressionTemplates>
- inline int signbit BOOST_PREVENT_MACRO_SUBSTITUTION(const boost::multiprecision::number<boost::multiprecision::backends::float128_backend, ExpressionTemplates>& arg)
- {
- return ::signbitq(arg.backend().value());
- }
-
- template <multiprecision::expression_template_option ExpressionTemplates>
inline boost::multiprecision::number<boost::multiprecision::backends::float128_backend, ExpressionTemplates> copysign BOOST_PREVENT_MACRO_SUBSTITUTION(const boost::multiprecision::number<boost::multiprecision::backends::float128_backend, ExpressionTemplates>& a, const boost::multiprecision::number<boost::multiprecision::backends::float128_backend, ExpressionTemplates>& b)
{
return ::copysignq(a.backend().value(), b.backend().value());