12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /* Boost interval/detail/bugs.hpp file
- *
- * Copyright 2000 Jens Maurer
- * Copyright 2002 Hervé Brönnimann, Guillaume Melquiond, Sylvain Pion
- *
- * Distributed under the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE_1_0.txt or
- * copy at http://www.boost.org/LICENSE_1_0.txt)
- */
- #ifndef BOOST_NUMERIC_INTERVAL_DETAIL_BUGS
- #define BOOST_NUMERIC_INTERVAL_DETAIL_BUGS
- #include <boost/config.hpp>
- #if defined(__GLIBC__) && (defined(__USE_MISC) || defined(__USE_XOPEN_EXTENDED) || defined(__USE_ISOC99)) && !defined(__ICC)
- # define BOOST_HAS_INV_HYPERBOLIC
- #endif
- #ifdef BOOST_NO_STDC_NAMESPACE
- # define BOOST_NUMERIC_INTERVAL_using_math(a) using ::a
- # ifdef BOOST_HAS_INV_HYPERBOLIC
- # define BOOST_NUMERIC_INTERVAL_using_ahyp(a) using ::a
- # endif
- #else
- # define BOOST_NUMERIC_INTERVAL_using_math(a) using std::a
- # if defined(BOOST_HAS_INV_HYPERBOLIC)
- # if defined(__GLIBCPP__) || defined(__GLIBCXX__)
- # define BOOST_NUMERIC_INTERVAL_using_ahyp(a) using ::a
- # else
- # define BOOST_NUMERIC_INTERVAL_using_ahyp(a) using std::a
- # endif
- # endif
- #endif
- #if defined(__COMO__) || defined(BOOST_INTEL)
- # define BOOST_NUMERIC_INTERVAL_using_max(a) using std::a
- #elif defined(BOOST_NO_STDC_NAMESPACE)
- # define BOOST_NUMERIC_INTERVAL_using_max(a) using ::a
- #else
- # define BOOST_NUMERIC_INTERVAL_using_max(a) using std::a
- #endif
- #ifndef BOOST_NUMERIC_INTERVAL_using_ahyp
- # define BOOST_NUMERIC_INTERVAL_using_ahyp(a)
- #endif
- #if defined(__GNUC__) && (__GNUC__ <= 2)
- // cf PR c++/1981 for a description of the bug
- #include <algorithm>
- #include <boost/config/no_tr1/cmath.hpp>
- namespace boost {
- namespace numeric {
- using std::min;
- using std::max;
- using std::sqrt;
- using std::exp;
- using std::log;
- using std::cos;
- using std::tan;
- using std::asin;
- using std::acos;
- using std::atan;
- using std::ceil;
- using std::floor;
- using std::sinh;
- using std::cosh;
- using std::tanh;
- # undef BOOST_NUMERIC_INTERVAL_using_max
- # undef BOOST_NUMERIC_INTERVAL_using_math
- # define BOOST_NUMERIC_INTERVAL_using_max(a)
- # define BOOST_NUMERIC_INTERVAL_using_math(a)
- # undef BOOST_NUMERIC_INTERVAL_using_ahyp
- # define BOOST_NUMERIC_INTERVAL_using_ahyp(a)
- } // namespace numeric
- } // namespace boost
- #endif
- #endif // BOOST_NUMERIC_INTERVAL_DETAIL_BUGS
|