brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · c5b5282 Raw
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