名稱空間
變體
操作

clogf, clog, clogl

來自 cppreference.com
< c‎ | 數值‎ | 複數
定義在標頭檔案 <complex.h>
float complex       clogf( float complex z );
(1) (C99 起)
double complex      clog( double complex z );
(2) (C99 起)
long double complex clogl( long double complex z );
(3) (C99 起)
定義於標頭檔案 <tgmath.h>
#define log( z )
(4) (C99 起)
1-3) 計算 z 的複數自然(以 e 為底)對數,其分支切割沿負實軸。
4) 型別泛型宏:如果 z 的型別為 long double complex,則呼叫 clogl。如果 z 的型別為 double complex,則呼叫 clog;如果 z 的型別為 float complex,則呼叫 clogf。如果 z 是實數或整數,則宏呼叫相應的實數函式(logfloglogl)。如果 z 是虛數,則呼叫相應的複數版本。

目錄

[編輯] 引數

z - 複數引數

[編輯] 返回值

如果未發生錯誤,則返回 z 的複數自然對數,其範圍在沿虛軸的區間 [−iπ, +iπ] 的條帶內,沿實軸在數學上無界。

[編輯] 錯誤處理與特殊值

錯誤按照 math_errhandling 報告

如果實現支援 IEEE 浮點算術,

  • 函式在分支切割上是連續的,並考慮虛部的符號
  • clog(conj(z)) == conj(clog(z))
  • 如果 z-0+0i,結果為 -∞+πi 並引發 FE_DIVBYZERO
  • 如果 z+0+0i,結果為 -∞+0i 並引發 FE_DIVBYZERO
  • 如果 zx+∞i (對於任何有限 x),結果為 +∞+πi/2
  • 如果 zx+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
  • zNaN+yi (對於任意有限 y),則結果為 NaN+NaNi 且可能引發 FE_INVALID
  • 如果 zNaN+∞i,結果為 +∞+NaNi
  • zNaN+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++ 文件 用於 log