Namespaces
Variants

ctanhf, ctanh, ctanhl

From cppreference.net
헤더 파일에 정의됨 <complex.h>
float complex ctanhf ( float complex z ) ;
(1) (C99부터)
double complex ctanh ( double complex z ) ;
(2) (C99부터)
long double complex ctanhl ( long double complex z ) ;
(3) (C99부터)
헤더 파일에 정의됨 <tgmath.h>
#define tanh( z )
(4) (C99부터)
1-3) z 의 복소수 쌍곡탄젠트를 계산합니다.
4) 타입-제네릭 매크로: z 의 타입이 long double complex 인 경우 ctanhl 이 호출됩니다. z 의 타입이 double complex 인 경우 ctanh 가 호출됩니다. z 의 타입이 float complex 인 경우 ctanhf 가 호출됩니다. z 가 실수 또는 정수인 경우, 매크로는 해당 실수 함수( tanhf , tanh , tanhl )를 호출합니다. z 가 허수인 경우, 매크로는 함수 tan 의 해당 실수 버전을 호출하여 공식 tanh(iy) = i tan(y) 를 구현하며, 반환 타입은 허수입니다.

목차

매개변수

z - 복소 인수

반환값

오류가 발생하지 않으면, z 의 복소 쌍곡탄젠트가 반환됩니다

오류 처리 및 특수 값

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

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

  • ctanh ( conj ( z ) ) == conj ( ctanh ( z ) )
  • ctanh ( - z ) == - ctanh ( z )
  • 만약 z +0+0i 이면, 결과는 +0+0i 입니다
  • 만약 z x+∞i (임의의 [1] 유한한 x에 대해)이면, 결과는 NaN+NaNi 이며 FE_INVALID 가 발생합니다
  • 만약 z x+NaN (임의의 [2] 유한한 x에 대해)이면, 결과는 NaN+NaNi 이며 FE_INVALID 가 발생할 수 있습니다
  • 만약 z +∞+yi (임의의 유한한 양수 y에 대해)이면, 결과는 1+0i 입니다
  • 만약 z +∞+∞i 이면, 결과는 1±0i 입니다 (허수부의 부호는 명시되지 않음)
  • 만약 z +∞+NaNi 이면, 결과는 1±0i 입니다 (허수부의 부호는 명시되지 않음)
  • 만약 z NaN+0i 이면, 결과는 NaN+0i 입니다
  • 만약 z NaN+yi (임의의 0이 아닌 y에 대해)이면, 결과는 NaN+NaNi 이며 FE_INVALID 가 발생할 수 있습니다
  • 만약 z NaN+NaNi 이면, 결과는 NaN+NaNi 입니다
  1. DR471 에 따르면, 이는 0이 아닌 x에 대해서만 성립합니다. 만약 z 0+∞i 인 경우, 결과는 0+NaNi 가 되어야 합니다.
  2. DR471 에 따르면, 이는 0이 아닌 x에 대해서만 성립합니다. 만약 z 0+NaNi 인 경우, 결과는 0+NaNi 가 되어야 합니다.

참고 사항

Mathematical definition of hyperbolic tangent is tanh z =
e z
-e -z
e z
+e -z

쌍곡 탄젠트는 복소 평면에서의 해석 함수이며 가지 절단이 없습니다. 이 함수는 허수 성분에 대해 주기 πi를 가지며, 허수축을 따라 (0, π(1/2 + n)) 좌표에서 1차 극점을 가집니다. 그러나 일반적인 부동소수점 표현 방식으로는 π/2를 정확히 표현할 수 없으므로, 극점 오류가 발생하는 인수 값은 존재하지 않습니다.

예제

#include <stdio.h>
#include <math.h>
#include <complex.h>
int main(void)
{
    double complex z = ctanh(1);  // 실수 축을 따라 실제 tanh처럼 동작함
    printf("tanh(1+0i) = %f%+fi (tanh(1)=%f)\n", creal(z), cimag(z), tanh(1));
    double complex z2 = ctanh(I); // 허수 축을 따라 tangent처럼 동작함
    printf("tanh(0+1i) = %f%+fi ( tan(1)=%f)\n", creal(z2), cimag(z2), tan(1));
}

출력:

tanh(1+0i) = 0.761594+0.000000i (tanh(1)=0.761594)
tanh(0+1i) = 0.000000+1.557408i ( tan(1)=1.557408)

참조문헌

  • C11 표준 (ISO/IEC 9899:2011):
  • 7.3.6.6 The ctanh functions (p: 194)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • G.6.2.6 The ctanh functions (p: 542)
  • G.7 Type-generic math <tgmath.h> (p: 545)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.3.6.6 The ctanh functions (p: 176)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • G.6.2.6 The ctanh functions (p: 477)
  • G.7 Type-generic math <tgmath.h> (p: 480)

참고 항목

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