名稱空間
變體
操作

std::log(std::complex)

來自 cppreference.com
< cpp‎ | 數值‎ | 複數
 
 
 
 
定義於標頭檔案 <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