1234567891011121314151617181920212223242526272829303132 |
- // (C) Copyright John Maddock 2005.
- // Use, modification and distribution are subject to 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_MATH_COMPLEX_ASINH_INCLUDED
- #define BOOST_MATH_COMPLEX_ASINH_INCLUDED
- #ifndef BOOST_MATH_COMPLEX_DETAILS_INCLUDED
- # include <boost/math/complex/details.hpp>
- #endif
- #ifndef BOOST_MATH_COMPLEX_ASIN_INCLUDED
- # include <boost/math/complex/asin.hpp>
- #endif
- namespace boost{ namespace math{
- template<class T>
- inline std::complex<T> asinh(const std::complex<T>& x)
- {
- //
- // We use asinh(z) = i asin(-i z);
- // Note that C99 defines this the other way around (which is
- // to say asin is specified in terms of asinh), this is consistent
- // with C99 though:
- //
- return ::boost::math::detail::mult_i(::boost::math::asin(::boost::math::detail::mult_minus_i(x)));
- }
- } } // namespaces
- #endif // BOOST_MATH_COMPLEX_ASINH_INCLUDED
|