Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::atanh(std::complex)

      From cppreference.com
      <cpp‎ |numeric‎ |complex
       
       
       
       
      Defined in header<complex>
      template<class T>
      complex<T> atanh(const complex<T>& z);
      (since C++11)

      Computes the complex arc hyperbolic tangent ofz with branch cuts outside the interval[−1; +1] along the real axis.

      Contents

      [edit]Parameters

      z - complex value

      [edit]Return value

      If no errors occur, the complex arc hyperbolic tangent ofz is returned, in the range of a half-strip mathematically unbounded along the real axis and in the interval[−iπ/2; +iπ/2] along the imaginary axis.

      [edit]Error handling and special values

      Errors are reported consistent withmath_errhandling.

      If the implementation supports IEEE floating-point arithmetic,

      • std::atanh(std::conj(z))==std::conj(std::atanh(z))
      • std::atanh(-z)==-std::atanh(z)
      • Ifz is(+0,+0), the result is(+0,+0)
      • Ifz is(+0,NaN), the result is(+0,NaN)
      • Ifz is(+1,+0), the result is(+∞,+0) andFE_DIVBYZERO is raised
      • Ifz is(x,+∞) (for any finite positive x), the result is(+0,π/2)
      • Ifz is(x,NaN) (for any finite nonzero x), the result is(NaN,NaN) andFE_INVALID may be raised
      • Ifz is(+∞,y) (for any finite positive y), the result is(+0,π/2)
      • Ifz is(+∞,+∞), the result is(+0,π/2)
      • Ifz is(+∞,NaN), the result is(+0,NaN)
      • Ifz is(NaN,y) (for any finite y), the result is(NaN,NaN) andFE_INVALID may be raised
      • Ifz is(NaN,+∞), the result is(±0,π/2) (the sign of the real part is unspecified)
      • Ifz is(NaN,NaN), the result is(NaN,NaN)

      [edit]Notes

      Although the C++ standard names this function "complex arc hyperbolic tangent", the inverse functions of the hyperbolic functions are the area functions. Their argument is the area of a hyperbolic sector, not an arc. The correct name is "complex inverse hyperbolic tangent", and, less common, "complex area hyperbolic tangent".

      Inverse hyperbolic tangent is a multivalued function and requires a branch cut on the complex plane. The branch cut is conventionally placed at the line segments(-∞,-1] and[+1,+∞) of the real axis.

      The mathematical definition of the principal value of the inverse hyperbolic tangent isatanh z =
      ln(1+z) - ln(1-z)
      2
      .
      For anyz,atanh(z) =
      atan(iz)
      i
      .

      [edit]Example

      Run this code
      #include <complex>#include <iostream> int main(){std::cout<<std::fixed;std::complex<double> z1(2.0,0.0);std::cout<<"atanh"<< z1<<" = "<<std::atanh(z1)<<'\n'; std::complex<double> z2(2.0,-0.0);std::cout<<"atanh"<< z2<<" (the other side of the cut) = "<<std::atanh(z2)<<'\n'; // for any z, atanh(z) = atanh(iz) / istd::complex<double> z3(1.0,2.0);std::complex<double> i(0.0,1.0);std::cout<<"atanh"<< z3<<" = "<<std::atanh(z3)<<'\n'<<"atan"<< z3* i<<" / i = "<<std::atan(z3* i)/ i<<'\n';}

      Output:

      atanh(2.000000,0.000000) = (0.549306,1.570796)atanh(2.000000,-0.000000) (the other side of the cut) = (0.549306,-1.570796)atanh(1.000000,2.000000) = (0.173287,1.178097)atan(-2.000000,1.000000) / i = (0.173287,1.178097)

      [edit]See also

      computes area hyperbolic sine of a complex number (\({\small\operatorname{arsinh}{z}}\)arsinh(z))
      (function template)[edit]
      computes area hyperbolic cosine of a complex number (\({\small\operatorname{arcosh}{z}}\)arcosh(z))
      (function template)[edit]
      computes hyperbolic tangent of a complex number (\({\small\tanh{z}}\)tanh(z))
      (function template)[edit]
      (C++11)(C++11)(C++11)
      computes the inverse hyperbolic tangent (\({\small\operatorname{artanh}{x}}\)artanh(x))
      (function)[edit]
      C documentation forcatanh
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/numeric/complex/atanh&oldid=150833"

      [8]ページ先頭

      ©2009-2025 Movatter.jp