Namespaces
Variants

catanhf, catanh, catanhl

From cppreference.net
헤더 파일에 정의됨 <complex.h>
float complex catanhf ( float complex z ) ;
(1) (C99부터)
double complex catanh ( double complex z ) ;
(2) (C99부터)
long double complex catanhl ( long double complex z ) ;
(3) (C99부터)
헤더 파일에 정의됨 <tgmath.h>
#define atanh( z )
(4) (C99부터)
1-3) 복소수 z 의 복소 아크 쌍곡탄젠트를 계산하며, 실수축을 따라 [−1; +1] 구간 외부에 분기 절단을 가집니다.
4) 타입-제네릭 매크로: z long double complex 타입을 가지면 catanhl 이 호출됩니다. z double complex 타입을 가지면 catanh 이 호출되며, z float complex 타입을 가지면 catanhf 가 호출됩니다. z 가 실수 또는 정수인 경우, 매크로는 해당 실수 함수( atanhf , atanh , atanhl )를 호출합니다. z 가 허수인 경우, 매크로는 atan 의 해당 실수 버전을 호출하여 atanh(iy) = i atan(y) 공식을 구현하며, 반환 타입은 허수입니다.

목차

매개변수

z - 복소 인수

반환값

오류가 발생하지 않으면, z 의 복소수 아크 쌍곡탄젠트가 반환됩니다. 이는 실수 축을 따라 수학적으로 무한하고 허수 축을 따라 [−iπ/2; +iπ/2] 구간에 있는 반띠 영역 내에 있습니다.

오류 처리 및 특수 값

오류는 math_errhandling 과 일관되게 보고됩니다

구현이 IEEE 부동 소수점 연산을 지원하는 경우,

  • catanh ( conj ( z ) ) == conj ( catanh ( z ) )
  • catanh ( - z ) == - catanh ( z )
  • 만약 z +0+0i 이면, 결과는 +0+0i 입니다.
  • 만약 z +0+NaNi 이면, 결과는 +0+NaNi 입니다.
  • 만약 z +1+0i 이면, 결과는 +∞+0i 이며 FE_DIVBYZERO 가 발생합니다.
  • 만약 z x+∞i (유한한 양수 x에 대해)이면, 결과는 +0+iπ/2 입니다.
  • 만약 z x+NaNi (0이 아닌 유한한 x에 대해)이면, 결과는 NaN+NaNi 이며 FE_INVALID 가 발생할 수 있습니다.
  • 만약 z +∞+yi (유한한 양수 y에 대해)이면, 결과는 +0+iπ/2 입니다.
  • 만약 z +∞+∞i 이면, 결과는 +0+iπ/2 입니다.
  • 만약 z +∞+NaNi 이면, 결과는 +0+NaNi 입니다.
  • 만약 z NaN+yi (유한한 y에 대해)이면, 결과는 NaN+NaNi 이며 FE_INVALID 가 발생할 수 있습니다.
  • 만약 z NaN+∞i 이면, 결과는 ±0+iπ/2 입니다 (실수부의 부호는 명시되지 않음).
  • 만약 z NaN+NaNi 이면, 결과는 NaN+NaNi 입니다.

참고 사항

C 표준에서는 이 함수를 "복소 아크 쌍곡 탄젠트"라고 명명하지만, 쌍곡선 함수의 역함수는 면적 함수입니다. 이들의 인수는 호가 아닌 쌍곡선 섹터의 면적입니다. 올바른 명칭은 "복소 역쌍곡 탄젠트"이며, 덜 일반적으로 "복소 면적 쌍곡 탄젠트"라고도 합니다.

역쌍곡탄젠트는 다가 함수이며 복소평면에서 가지 자름이 필요합니다. 가지 자름은 관례적으로 실수축의 선분 (-∞,-1] [+1,+∞) 에 위치합니다.

The mathematical definition of the principal value of the inverse hyperbolic tangent is atanh z =
ln(1+z)-ln(z-1)
2
.


For any z, atanh(z) =
atan(iz)
i

예제

#include <stdio.h>
#include <complex.h>
int main(void)
{
    double complex z = catanh(2);
    printf("catanh(+2+0i) = %f%+fi\n", creal(z), cimag(z));
    double complex z2 = catanh(conj(2)); // or catanh(CMPLX(2, -0.0)) in C11
    printf("catanh(+2-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2));
    // for any z, atanh(z) = atan(iz)/i
    double complex z3 = catanh(1+2*I);
    printf("catanh(1+2i) = %f%+fi\n", creal(z3), cimag(z3));
    double complex z4 = catan((1+2*I)*I)/I;
    printf("catan(i * (1+2i))/i = %f%+fi\n", creal(z4), cimag(z4));
}

출력:

catanh(+2+0i) = 0.549306+1.570796i
catanh(+2-0i) (the other side of the cut) = 0.549306-1.570796i
catanh(1+2i) = 0.173287+1.178097i
catan(i * (1+2i))/i = 0.173287+1.178097i

참조문헌

  • C11 표준 (ISO/IEC 9899:2011):
  • 7.3.6.3 The catanh functions (p: 193)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • G.6.2.3 The catanh functions (p: 540-541)
  • G.7 Type-generic math <tgmath.h> (p: 545)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.3.6.3 The catanh functions (p: 175)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • G.6.2.3 The catanh functions (p: 475-476)
  • G.7 Type-generic math <tgmath.h> (p: 480)

참고 항목

(C99) (C99) (C99)
복소수 쌍곡선 아크 사인 계산
(함수)
(C99) (C99) (C99)
복소수 쌍곡선 아크 코사인 계산
(함수)
(C99) (C99) (C99)
복소수 쌍곡선 탄젠트 계산
(함수)
(C99) (C99) (C99)
역쌍곡선 탄젠트 계산 ( artanh(x) )
(함수)
C++ 문서 for atanh