summaryrefslogtreecommitdiff
path: root/boost/spirit/home/support/detail/sign.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/spirit/home/support/detail/sign.hpp')
-rw-r--r--boost/spirit/home/support/detail/sign.hpp39
1 files changed, 1 insertions, 38 deletions
diff --git a/boost/spirit/home/support/detail/sign.hpp b/boost/spirit/home/support/detail/sign.hpp
index 7c1bfb06c7..a04552a527 100644
--- a/boost/spirit/home/support/detail/sign.hpp
+++ b/boost/spirit/home/support/detail/sign.hpp
@@ -13,58 +13,21 @@
#pragma once
#endif
-#include <boost/config/no_tr1/cmath.hpp>
-#include <boost/version.hpp>
-#if BOOST_VERSION < 104000
-#include <boost/spirit/home/support/detail/math/fpclassify.hpp>
-#include <boost/spirit/home/support/detail/math/signbit.hpp>
-#else
-#include <boost/math/special_functions/fpclassify.hpp>
#include <boost/math/special_functions/sign.hpp>
-#endif
namespace boost { namespace spirit { namespace detail
{
-#if BOOST_VERSION < 104000
- // signbit(-NAN) is broken for versions of Boost earlier than 1.40.0
- // This routine has been taken and adapted from Johan Rade's fp_traits
- // library
- template<typename T>
- inline bool (signbit)(T x)
- {
- return (boost::spirit::math::signbit)(x);
- }
-
- template<typename T>
- inline T (changesign)(T x)
- {
- return (boost::spirit::math::changesign)(x);
- }
-#else
template<typename T>
inline bool (signbit)(T x)
{
return (boost::math::signbit)(x) ? true : false;
}
- // This routine has been taken and adapted from Johan Rade's fp_traits
- // library
template<typename T>
inline T (changesign)(T x)
{
-#if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && !defined(BOOST_MATH_DISABLE_STD_FPCLASSIFY)
- return -x;
-#else
- typedef typename math::detail::fp_traits<T>::type traits_type;
-
- typename traits_type::bits a;
- traits_type::get_bits(x, a);
- a ^= traits_type::sign;
- traits_type::set_bits(x, a);
- return x;
-#endif
+ return (boost::math::changesign)(x);
}
-#endif
}}}