You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
79 lines
2.2 KiB
79 lines
2.2 KiB
/* 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
|
|
|