ctanf, ctan, ctanl
|
헤더 파일에 정의됨
<complex.h>
|
||
| (1) | (C99부터) | |
| (2) | (C99부터) | |
| (3) | (C99부터) | |
|
헤더 파일에 정의됨
<tgmath.h>
|
||
|
#define tan( z )
|
(4) | (C99부터) |
z
의 복소 탄젠트를 계산합니다.
z
의 타입이
long
double
complex
인 경우
ctanl
이 호출됩니다.
z
의 타입이
double
complex
인 경우
ctan
이 호출됩니다.
z
의 타입이
float
complex
인 경우
ctanf
이 호출됩니다.
z
가 실수 또는 정수인 경우, 매크로는 해당 실수 함수(
tanf
,
tan
,
tanl
)를 호출합니다.
z
가 허수인 경우, 매크로는 함수
tanh
의 해당 실수 버전을 호출하여 공식
tan(iy) = i tanh(y)
를 구현하며, 반환 타입은 허수입니다.
목차 |
매개변수
| z | - | 복소 인수 |
반환값
오류가 발생하지 않으면,
z
의 복소 탄젠트가 반환됩니다.
오류 및 특수 사례는 해당 연산이
-
i
*
ctanh
(
i
*
z
)
로 구현된 것처럼 처리됩니다. 여기서
i
는 허수 단위입니다.
참고 사항
탄젠트는 복소 평면에서의 해석 함수이며 가지 절단(branch cut)이 없습니다. 이 함수는 실수 성분에 대해 주기 πi를 가지며, 실수 축 상의 (π(1/2 + n), 0) 좌표에서 1차 극점(poles of the first order)을 가집니다. 그러나 일반적인 부동 소수점 표현으로는 π/2를 정확히 표현할 수 없기 때문에, 극점 오류(pole error)가 발생하는 인수 값은 존재하지 않습니다.
Mathematical definition of the tangent is tan z =|
i(e
-iz
-e iz ) |
|
e
-iz
+e iz |
예제
#include <stdio.h> #include <math.h> #include <complex.h> int main(void) { double complex z = ctan(1); // 실수 축에서 실제 탄젠트처럼 동작함 printf("tan(1+0i) = %f%+fi ( tan(1)=%f)\n", creal(z), cimag(z), tan(1)); double complex z2 = ctan(I); // 허수 축에서 tanh처럼 동작함 printf("tan(0+1i) = %f%+fi (tanh(1)=%f)\n", creal(z2), cimag(z2), tanh(1)); }
출력:
tan(1+0i) = 1.557408+0.000000i ( tan(1)=1.557408) tan(0+1i) = 0.000000+0.761594i (tanh(1)=0.761594)
참고문헌
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.3.5.6 The ctan functions (p: 192)
-
- 7.25 Type-generic complex <tgmath.h> (p: 373-375)
-
- G.7 Type-generic math <tgmath.h> (p: 545)
- C99 표준 (ISO/IEC 9899:1999):
-
- 7.3.5.6 The ctan functions (p: 174)
-
- 7.22 Type-generic complex <tgcomplex.h> (p: 335-337)
-
- G.7 Type-generic math <tgmath.h> (p: 480)
참고 항목
|
(C99)
(C99)
(C99)
|
복소 쌍곡탄젠트를 계산함
(함수) |
|
(C99)
(C99)
(C99)
|
복소 사인을 계산함
(함수) |
|
(C99)
(C99)
(C99)
|
복소 코사인을 계산함
(함수) |
|
(C99)
(C99)
(C99)
|
복소 아크탄젠트를 계산함
(함수) |
|
(C99)
(C99)
|
탄젠트를 계산함 (
tan(x)
)
(함수) |
|
C++ 문서
for
tan
|
|