clogf, clog, clogl
From cppreference.net
|
헤더 파일에 정의됨
<complex.h>
|
||
| (1) | (C99부터) | |
| (2) | (C99부터) | |
| (3) | (C99부터) | |
|
헤더 파일에 정의됨
<tgmath.h>
|
||
|
#define log( z )
|
(4) | (C99부터) |
1-3)
음의 실수 축을 따라 가지 절단(branch cut)을 적용하여
z
의 복소수 자연 (밑이
e
인) 로그를 계산합니다.
4)
타입-제네릭 매크로:
z
의 타입이
long
double
complex
인 경우,
clogl
이 호출됩니다.
z
의 타입이
double
complex
인 경우,
clog
이 호출됩니다.
z
의 타입이
float
complex
인 경우,
clogf
이 호출됩니다.
z
가 실수 또는 정수인 경우, 매크로는 해당 실수 함수(
logf
,
log
,
logl
)를 호출합니다.
z
가 허수인 경우, 해당 복소수 버전이 호출됩니다.
목차 |
매개변수
| z | - | 복소 인수 |
반환값
오류가 발생하지 않으면, 복소수 자연 로그 값이
z
에 대해 반환됩니다. 이 값은 허수축을 따라
[−iπ, +iπ]
구간 내의 스트립 범위에 속하며, 실수축 방향으로는 수학적으로 무한합니다.
오류 처리 및 특수 값
오류는 math_errhandling 과 일관되게 보고됩니다
구현이 IEEE 부동 소수점 연산을 지원하는 경우,
- 함수는 허수부의 부호를 고려하여 브랜치 컷(branch cut) 위에서 연속입니다.
- clog ( conj ( z ) ) == conj ( clog ( z ) )
-
만약
z가-0+0i이면, 결과는-∞+πi이며 FE_DIVBYZERO 가 발생합니다. -
만약
z가+0+0i이면, 결과는-∞+0i이며 FE_DIVBYZERO 가 발생합니다. -
만약
z가x+∞i(임의의 유한한 x에 대해)이면, 결과는+∞+πi/2입니다. -
만약
z가x+NaNi(임의의 유한한 x에 대해)이면, 결과는NaN+NaNi이며 FE_INVALID 이 발생할 수 있습니다. -
만약
z가-∞+yi(임의의 유한한 양의 y에 대해)이면, 결과는+∞+πi입니다. -
만약
z가+∞+yi(임의의 유한한 양의 y에 대해)이면, 결과는+∞+0i입니다. -
만약
z가-∞+∞i이면, 결과는+∞+3πi/4입니다. -
만약
z가+∞+∞i이면, 결과는+∞+πi/4입니다. -
만약
z가±∞+NaNi이면, 결과는+∞+NaNi입니다. -
만약
z가NaN+yi(임의의 유한한 y에 대해)이면, 결과는NaN+NaNi이며 FE_INVALID 이 발생할 수 있습니다. -
만약
z가NaN+∞i이면, 결과는+∞+NaNi입니다. -
만약
z가NaN+NaNi이면, 결과는NaN+NaNi입니다.
참고 사항
복소수의 자연 로그 z 가 극좌표 성분 (r,θ) 를 가질 때, 그 값은 ln r + i(θ+2nπ) 이며, 주값은 ln r + iθ 입니다.
예제
이 코드 실행
#include <stdio.h> #include <math.h> #include <complex.h> int main(void) { double complex z = clog(I); // r = 1, θ = pi/2 printf("2*log(i) = %.1f%+fi\n", creal(2*z), cimag(2*z)); double complex z2 = clog(sqrt(2)/2 + sqrt(2)/2*I); // r = 1, θ = pi/4 printf("4*log(sqrt(2)/2+sqrt(2)i/2) = %.1f%+fi\n", creal(4*z2), cimag(4*z2)); double complex z3 = clog(-1); // r = 1, θ = pi printf("log(-1+0i) = %.1f%+fi\n", creal(z3), cimag(z3)); double complex z4 = clog(conj(-1)); // or clog(CMPLX(-1, -0.0)) in C11 printf("log(-1-0i) (the other side of the cut) = %.1f%+fi\n", creal(z4), cimag(z4)); }
출력:
2*log(i) = 0.0+3.141593i 4*log(sqrt(2)/2+sqrt(2)i/2) = 0.0+3.141593i log(-1+0i) = 0.0+3.141593i log(-1-0i) (the other side of the cut) = 0.0-3.141593i
참고문헌
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.3.7.2 clog 함수들 (p: 195)
-
- 7.25 타입-제네릭 수학 <tgmath.h> (p: 373-375)
-
- G.6.3.2 clog 함수들 (p: 543-544)
-
- G.7 타입-제네릭 수학 <tgmath.h> (p: 545)
- C99 표준 (ISO/IEC 9899:1999):
-
- 7.3.7.2 clog 함수들 (p: 176-177)
-
- 7.22 타입-제네릭 수학 <tgmath.h> (p: 335-337)
-
- G.6.3.2 clog 함수들 (p: 478-479)
-
- G.7 타입-제네릭 수학 <tgmath.h> (p: 480)
참고 항목
|
(C99)
(C99)
(C99)
|
복소수 밑-e 지수 계산
(함수) |
|
(C99)
(C99)
|
자연 (밑-
e
) 로그 계산 (
ln(x)
)
(함수) |
|
C++ 문서
for
log
|
|