catanhf, catanh, catanhl
From cppreference.net
|
헤더 파일에 정의됨
<complex.h>
|
||
| (1) | (C99부터) | |
| (2) | (C99부터) | |
| (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 |
| 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
|
|