
Guillaume Melquiond wrote:
#if defined(__GLIBC__) && !defined(__GLIBCPP__) && (defined(__USE_MISC) || defined(__USE_XOPEN_EXTENDED) || defined(__USE_ISOC99)) && !defined(__ICC) # define BOOST_HAS_INV_HYPERBOLIC #endif
it's defined on both - mingw-3.4.1 and mingw. However there's something wrong with BOOST_NUMERIC_INTERVAL_using_ahyp . Here's preprocessor output from both compilers (sorry for line breaks): mingw (GCC-3.3.1) # 1 "C:/MinGW/Bronek/regression/boost/boost/numeric/interval/rounded_transc.hpp" 1 # 17 "C:/MinGW/Bronek/regression/boost/boost/numeric/interval/rounded_transc.hpp" namespace boost { namespace numeric { namespace interval_lib { template<class T, class Rounding> struct rounded_transc_exact: Rounding { T exp_down(const T& x) { using std::exp; return exp(x); } T exp_up (const T& x) { using std::exp; return exp(x); } T log_down(const T& x) { using std::log; return log(x); } T log_up (const T& x) { using std::log; return log(x); } T sin_down(const T& x) { using std::sin; return sin(x); } T sin_up (const T& x) { using std::sin; return sin(x); } T cos_down(const T& x) { using std::cos; return cos(x); } T cos_up (const T& x) { using std::cos; return cos(x); } T tan_down(const T& x) { using std::tan; return tan(x); } T tan_up (const T& x) { using std::tan; return tan(x); } T asin_down(const T& x) { using std::asin; return asin(x); } T asin_up (const T& x) { using std::asin; return asin(x); } T acos_down(const T& x) { using std::acos; return acos(x); } T acos_up (const T& x) { using std::acos; return acos(x); } T atan_down(const T& x) { using std::atan; return atan(x); } T atan_up (const T& x) { using std::atan; return atan(x); } T sinh_down(const T& x) { using std::sinh; return sinh(x); } T sinh_up (const T& x) { using std::sinh; return sinh(x); } T cosh_down(const T& x) { using std::cosh; return cosh(x); } T cosh_up (const T& x) { using std::cosh; return cosh(x); } T tanh_down(const T& x) { using std::tanh; return tanh(x); } T tanh_up (const T& x) { using std::tanh; return tanh(x); } T asinh_down(const T& x) { ; return asinh(x); } T asinh_up (const T& x) { ; return asinh(x); } T acosh_down(const T& x) { ; return acosh(x); } T acosh_up (const T& x) { ; return acosh(x); } T atanh_down(const T& x) { ; return atanh(x); } T atanh_up (const T& x) { ; return atanh(x); } }; mingw-3.4.1 (GCC-3.4.1) # 1 "C:/MinGW/Bronek/regression/boost/boost/numeric/interval/rounded_transc.hpp" 1 # 17 "C:/MinGW/Bronek/regression/boost/boost/numeric/interval/rounded_transc.hpp" namespace boost { namespace numeric { namespace interval_lib { template<class T, class Rounding> struct rounded_transc_exact: Rounding { T exp_down(const T& x) { using std::exp; return exp(x); } T exp_up (const T& x) { using std::exp; return exp(x); } T log_down(const T& x) { using std::log; return log(x); } T log_up (const T& x) { using std::log; return log(x); } T sin_down(const T& x) { using std::sin; return sin(x); } T sin_up (const T& x) { using std::sin; return sin(x); } T cos_down(const T& x) { using std::cos; return cos(x); } T cos_up (const T& x) { using std::cos; return cos(x); } T tan_down(const T& x) { using std::tan; return tan(x); } T tan_up (const T& x) { using std::tan; return tan(x); } T asin_down(const T& x) { using std::asin; return asin(x); } T asin_up (const T& x) { using std::asin; return asin(x); } T acos_down(const T& x) { using std::acos; return acos(x); } T acos_up (const T& x) { using std::acos; return acos(x); } T atan_down(const T& x) { using std::atan; return atan(x); } T atan_up (const T& x) { using std::atan; return atan(x); } T sinh_down(const T& x) { using std::sinh; return sinh(x); } T sinh_up (const T& x) { using std::sinh; return sinh(x); } T cosh_down(const T& x) { using std::cosh; return cosh(x); } T cosh_up (const T& x) { using std::cosh; return cosh(x); } T tanh_down(const T& x) { using std::tanh; return tanh(x); } T tanh_up (const T& x) { using std::tanh; return tanh(x); } T asinh_down(const T& x) { using ::asinh; return asinh(x); } T asinh_up (const T& x) { using ::asinh; return asinh(x); } T acosh_down(const T& x) { using ::acosh; return acosh(x); } T acosh_up (const T& x) { using ::acosh; return acosh(x); } T atanh_down(const T& x) { using ::atanh; return atanh(x); } T atanh_up (const T& x) { using ::atanh; return atanh(x); } }; Best regards B.