// inverse trig complex functions, it also contains all the includes
// that we need to implement all these functions.
//
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-#include <boost/config/no_tr1/complex.hpp>
-#include <boost/limits.hpp>
-#include <math.h> // isnan where available
-#include <boost/config/no_tr1/cmath.hpp>
+
+#include <cmath>
+#include <complex>
+#include <limits>
#include <boost/math/special_functions/sign.hpp>
#include <boost/math/special_functions/fpclassify.hpp>
#include <boost/math/special_functions/sign.hpp>
#include <boost/math/constants/constants.hpp>
-#ifdef BOOST_NO_STDC_NAMESPACE
-namespace std{ using ::sqrt; }
-#endif
-
namespace boost{ namespace math{ namespace detail{
template <class T>
// insufficient internal precision:
return std::sqrt((std::numeric_limits<double>::max)()) / t;
}
-#if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x564))
-// workaround for type deduction bug:
-inline float safe_max(float t)
-{
- return std::sqrt((std::numeric_limits<float>::max)()) / t;
-}
-inline double safe_max(double t)
-{
- return std::sqrt((std::numeric_limits<double>::max)()) / t;
-}
-#endif
+
template <class T>
inline T safe_min(T t)
{
// insufficient internal precision:
return std::sqrt((std::numeric_limits<double>::min)()) * t;
}
-#if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x564))
-// type deduction workaround:
-inline double safe_min(double t)
-{
- return std::sqrt((std::numeric_limits<double>::min)()) * t;
-}
-inline float safe_min(float t)
-{
- return std::sqrt((std::numeric_limits<float>::min)()) * t;
-}
-#endif
} } } // namespaces