35 lines · plain
1// (C) Copyright John Maddock 2005.2// Use, modification and distribution are subject to the3// Boost Software License, Version 1.0. (See accompanying file4// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)5 6#ifndef BOOST_MATH_COMPLEX_ACOSH_INCLUDED7#define BOOST_MATH_COMPLEX_ACOSH_INCLUDED8 9#ifndef BOOST_MATH_COMPLEX_DETAILS_INCLUDED10# include <boost/math/complex/details.hpp>11#endif12#ifndef BOOST_MATH_COMPLEX_ATANH_INCLUDED13# include <boost/math/complex/acos.hpp>14#endif15 16namespace boost{ namespace math{17 18template<class T> 19[[deprecated("Replaced by C++11")]] inline std::complex<T> acosh(const std::complex<T>& z)20{21 //22 // We use the relation acosh(z) = +-i acos(z)23 // Choosing the sign of multiplier to give real(acosh(z)) >= 024 // as well as compatibility with C99.25 //26 std::complex<T> result = boost::math::acos(z);27 if(!(boost::math::isnan)(result.imag()) && signbit(result.imag()))28 return detail::mult_i(result);29 return detail::mult_minus_i(result);30}31 32} } // namespaces33 34#endif // BOOST_MATH_COMPLEX_ACOSH_INCLUDED35