std::log(std::complex)
來自 cppreference.com
定義於標頭檔案 <complex> |
||
template< class T > std::complex<T> log( const std::complex<T>& z ); |
||
計算複數 z 的自然(底數為 e)對數,並在負實軸上有一分支切割。
目錄 |
[編輯] 引數
z | - | 複數型別的值 |
[編輯] 返回值
如果沒有發生錯誤,返回 z 的復自然對數,其範圍為沿虛軸在區間 [−iπ, +iπ] 內的條帶,沿實軸在數學上無界。
[編輯] 錯誤處理和特殊值
錯誤報告與 math_errhandling 保持一致。
如果實現支援 IEEE 浮點算術,
- 函式在分支切割上是連續的,並考慮虛部的符號
- 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)
[編輯] 注意
具有極座標分量 (r,θ) 的複數 z 的自然對數等於 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++ 標準。
缺陷報告 | 應用於 | 釋出時的行為 | 正確的行為 |
---|---|---|---|
LWG 2597 | C++98 | 規範錯誤處理了帶符號的零虛部 | 已移除錯誤要求 |
[編輯] 參閱
具有沿負實軸分支割線的複數常用對數 (函式模板) | |
複數 e 的指數 (函式模板) | |
(C++11)(C++11) |
計算自然(底數為 e)對數(ln(x)) (函式) |
將函式 std::log 應用於 valarray 的每個元素 (函式模板) | |
C 文件 關於 clog
|