/* 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 |