]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boost/spirit/home/support/detail/sign.hpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / boost / spirit / home / support / detail / sign.hpp
index 7c1bfb06c7ab12909cda89e8b1e53c8c10850f1c..a04552a52765d933a8adeed0530438027b0222ab 100644 (file)
 #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
 
 }}}