diff -rup boost_1_48_0.orig/boost/math/complex/acosh.hpp boost_1_48_0/boost/math/complex/acosh.hpp --- boost_1_48_0.orig/boost/math/complex/acosh.hpp 2005-10-15 13:59:11.000000000 +0200 +++ boost_1_48_0/boost/math/complex/acosh.hpp 2011-11-24 09:28:19.920274990 +0100 @@ -24,7 +24,7 @@ inline std::complex acosh(const std:: // as well as compatibility with C99. // std::complex result = boost::math::acos(z); - if(!detail::test_is_nan(result.imag()) && result.imag() <= 0) + if(!signbit(z.imag())) return detail::mult_i(result); return detail::mult_minus_i(result); } diff -rup boost_1_48_0.orig/boost/math/complex/acos.hpp boost_1_48_0/boost/math/complex/acos.hpp --- boost_1_48_0.orig/boost/math/complex/acos.hpp 2006-07-24 23:33:20.000000000 +0200 +++ boost_1_48_0/boost/math/complex/acos.hpp 2011-11-24 09:02:13.426657171 +0100 @@ -11,6 +11,7 @@ #ifndef BOOST_MATH_LOG1P_INCLUDED # include #endif +#include #include #ifdef BOOST_NO_STDC_NAMESPACE @@ -222,9 +223,9 @@ std::complex acos(const std::complex< // // Finish off by working out the sign of the result: // - if(z.real() < 0) + if(signbit(z.real())) real = s_pi - real; - if(z.imag() > 0) + if(!signbit(z.imag())) imag = -imag; return std::complex(real, imag); diff -rup boost_1_48_0.orig/boost/math/complex/asin.hpp boost_1_48_0/boost/math/complex/asin.hpp --- boost_1_48_0.orig/boost/math/complex/asin.hpp 2006-07-24 23:38:40.000000000 +0200 +++ boost_1_48_0/boost/math/complex/asin.hpp 2011-11-24 08:56:33.772109729 +0100 @@ -11,6 +11,7 @@ #ifndef BOOST_MATH_LOG1P_INCLUDED # include #endif +#include #include #ifdef BOOST_NO_STDC_NAMESPACE @@ -232,9 +233,9 @@ inline std::complex asin(const std::c // // Finish off by working out the sign of the result: // - if(z.real() < 0) + if(signbit(z.real())) real = -real; - if(z.imag() < 0) + if(signbit(z.imag())) imag = -imag; return std::complex(real, imag); diff -rup boost_1_48_0.orig/boost/math/complex/atanh.hpp boost_1_48_0/boost/math/complex/atanh.hpp --- boost_1_48_0.orig/boost/math/complex/atanh.hpp 2005-12-16 15:10:05.000000000 +0100 +++ boost_1_48_0/boost/math/complex/atanh.hpp 2011-11-24 09:04:14.096107285 +0100 @@ -12,6 +12,7 @@ #ifndef BOOST_MATH_LOG1P_INCLUDED # include #endif +#include #include #ifdef BOOST_NO_STDC_NAMESPACE @@ -194,7 +195,7 @@ std::complex atanh(const std::complex } real /= four; - if(z.real() < 0) + if(signbit(z.real())) real = -real; // @@ -234,7 +235,7 @@ std::complex atanh(const std::complex imag = std::atan2(two*y, 1 - x*x); } imag /= two; - if(z.imag() < 0) + if(signbit(z.imag())) imag = -imag; } return std::complex(real, imag);