
Hi there, I've compiled the last boost v1.49 against PathScale v4.x compiler under 64bit linux distribution, but when compiling certain library that uses the boost/numeric/interval/rounded_transc.hpp include file, I end up on getting some error regarding asinh(), acosh() and atanh() which were searched in the std namespace. Compiling the same library against g++ or MSVC goes pretty straight without problems. /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_exact<T, Rounding>::asinh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:42: error: 'std::asinh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_exact<T, Rounding>::asinh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:42: error: 'std::asinh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_exact<T, Rounding>::acosh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:43: error: 'std::acosh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_exact<T, Rounding>::acosh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:43: error: 'std::acosh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_exact<T, Rounding>::atanh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:44: error: 'std::atanh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_exact<T, Rounding>::atanh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:44: error: 'std::atanh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_std<T, Rounding>::asinh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:77: error: 'std::asinh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_std<T, Rounding>::asinh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:77: error: 'std::asinh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_std<T, Rounding>::acosh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:78: error: 'std::acosh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_std<T, Rounding>::acosh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:78: error: 'std::acosh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_std<T, Rounding>::atanh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:79: error: 'std::atanh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_std<T, Rounding>::atanh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:79: error: 'std::atanh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_opp<T, Rounding>::asinh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:122: error: 'std::asinh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_opp<T, Rounding>::asinh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:122: error: 'std::asinh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_opp<T, Rounding>::atanh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:123: error: 'std::atanh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_opp<T, Rounding>::atanh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:123: error: 'std::atanh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_opp<T, Rounding>::acosh_down(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:132: error: 'std::acosh' has not been declared /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp: In member function 'T boost::numeric::interval_lib::rounded_transc_opp<T, Rounding>::acosh_up(const T&)': /TempData/boost_1_49_0_pathscale/boost/numeric/interval/rounded_transc.hpp:132: error: 'std::acosh' has not been declared Thus, I had a look in the boost include file boost/numeric/interval/detail/bugs.hpp and look like that apply the patch below fixes the compilation error: --- numeric/interval/detail/bugs.hpp.orig 2012-02-29 10:44:06.876597264 +0100 +++ numeric/interval/detail/bugs.hpp 2012-02-29 10:18:42.831581398 +0100 @@ -25,7 +25,7 @@ #else # define BOOST_NUMERIC_INTERVAL_using_math(a) using std::a # if defined(BOOST_HAS_INV_HYPERBOLIC) -# if defined(__GLIBCPP__) || defined(__GLIBCXX__) +# if defined(__GLIBCPP__) || defined(__GLIBCXX__) || defined(__GLIBC__) # define BOOST_NUMERIC_INTERVAL_using_ahyp(a) using ::a # else # define BOOST_NUMERIC_INTERVAL_using_ahyp(a) using std::a does anyone can comment? Thanks in advance, Roberto Fichera.