std:: log (std::complex)
|
헤더 파일에 정의됨
<complex>
|
||
|
template
<
class
T
>
std:: complex < T > log ( const std:: complex < T > & z ) ; |
||
복소수 값 z 의 자연 (밑 e ) 로그 를 계산하며, 음의 실수 축을 따라 가지 절단(branch cut)이 있습니다.
목차 |
매개변수
| z | - | 복소수 값 |
반환값
오류가 발생하지 않으면, 복소수 자연 로그 값이 반환됩니다. 이 값은 허수축을 따라 [−iπ, +iπ] 구간 내의 한 줄무늬 영역에 분포하며, 실수축 방향으로는 수학적으로 무한합니다.
오류 처리 및 특수 값
오류는 math_errhandling 과 일관되게 보고됩니다.
구현이 IEEE 부동 소수점 연산을 지원하는 경우,
- 함수는 허수부의 부호를 고려하여 브랜치 컷(branch cut) 위에서 연속적입니다.
- std:: log ( std:: conj ( z ) ) == std:: conj ( std:: log ( z ) )
-
만약
z
가
(-0,+0)이면, 결과는(-∞,π)이며 FE_DIVBYZERO 가 발생합니다. -
만약
z
가
(+0,+0)이면, 결과는(-∞,+0)이며 FE_DIVBYZERO 가 발생합니다. -
만약
z
가
(x,+∞)(임의의 유한한 x에 대해), 결과는(+∞,π/2)입니다. -
만약
z
가
(x,NaN)(임의의 유한한 x에 대해), 결과는(NaN,NaN)이며 FE_INVALID 가 발생할 수 있습니다. -
만약
z
가
(-∞,y)(임의의 유한한 양수 y에 대해), 결과는(+∞,π)입니다. -
만약
z
가
(+∞,y)(임의의 유한한 양수 y에 대해), 결과는(+∞,+0)입니다. -
만약
z
가
(-∞,+∞)이면, 결과는(+∞,3π/4)입니다. -
만약
z
가
(+∞,+∞)이면, 결과는(+∞,π/4)입니다. -
만약
z
가
(±∞,NaN)이면, 결과는(+∞,NaN)입니다. -
만약
z
가
(NaN,y)(임의의 유한한 y에 대해), 결과는(NaN,NaN)이며 FE_INVALID 가 발생할 수 있습니다. -
만약
z
가
(NaN,+∞)이면, 결과는(+∞,NaN)입니다. -
만약
z
가
(NaN,NaN)이면, 결과는(NaN,NaN)입니다.
참고 사항
복소수의 자연 로그는 z 극좌표 성분 (r,θ) 에 대해 ln r + i(θ+2nπ) 와 같으며, 주값은 ln r + iθ 입니다.
이 함수의 의미 체계는 C 함수 clog 와 일관성을 유지하도록 설계되었습니다.
예제
#include <cmath> #include <complex> #include <iostream> int main() { std::complex<double> z {0.0, 1.0}; // r = 1, θ = pi / 2 std::cout << "2 * log" << z << " = " << 2.0 * std::log(z) << '\n'; std::complex<double> z2 {sqrt(2.0) / 2, sqrt(2.0) / 2}; // r = 1, θ = pi / 4 std::cout << "4 * log" << z2 << " = " << 4.0 * std::log(z2) << '\n'; std::complex<double> z3 {-1.0, 0.0}; // r = 1, θ = pi std::cout << "log" << z3 << " = " << std::log(z3) << '\n'; std::complex<double> z4 {-1.0, -0.0}; // the other side of the cut std::cout << "log" << z4 << " (the other side of the cut) = " << std::log(z4) << '\n'; }
가능한 출력:
2 * log(0,1) = (0,3.14159) 4 * log(0.707107,0.707107) = (0,3.14159) log(-1,0) = (0,3.14159) log(-1,-0) (the other side of the cut) = (0,-3.14159)
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 2597 | C++98 | 명세가 부호 있는 0 허수부를 잘못 처리함 | 오류 요구사항 제거됨 |
참고 항목
|
음의 실수축을 따라 가지 절단을 갖는 복소수 상용 로그
(함수 템플릿) |
|
|
복소수 밑
e
지수 함수
(함수 템플릿) |
|
|
(C++11)
(C++11)
|
자연 (밑
e
) 로그 계산 (
ln(x)
)
(함수) |
|
함수
std::log
를 valarray의 각 요소에 적용
(함수 템플릿) |
|
|
C 문서
for
clog
|
|