?
本文檔使用 PHP中文網(wǎng)手冊(cè) 發(fā)布
在頭文件<math.h>中定義 | ||
---|---|---|
float complex clogf( float complex z ); | (1) | (since C99) |
double complex clog( double complex z ); | (2) | (since C99) |
long double complex clogl( long double complex z ); | (3) | (since C99) |
Defined in header <tgmath.h> | ||
#define log( z ) | (4) | (since C99) |
1-3)計(jì)算沿著負(fù)實(shí)軸的分支切割的復(fù)數(shù)自然(base- e)對(duì)數(shù)z
。
4)類型 - 通用宏:如果z
有類型long
double
complex
,clogl
被調(diào)用。如果z
有類型double
complex
,clog
稱為,如果z
有類型float
complex
,clogf
稱為。如果z
是真實(shí)的或整數(shù),則宏調(diào)用相應(yīng)的實(shí)函數(shù)(logf
,log
,logl
)。如果z
是虛構(gòu)的,則調(diào)用相應(yīng)的復(fù)數(shù)版本。
z | - | 復(fù)雜的論點(diǎn) |
---|
如果沒有出現(xiàn)錯(cuò)誤,則復(fù)數(shù)自然對(duì)數(shù)z
返回,在沿虛軸的間隔-iπ,+iπ中的條帶范圍內(nèi),并且在實(shí)軸上數(shù)學(xué)上無界。
報(bào)告的錯(cuò)誤與math_errhandling一致。
如果實(shí)現(xiàn)支持IEEE浮點(diǎn)運(yùn)算,
考慮到虛部的符號(hào),該功能在分支切割上是連續(xù)的
clog(conj(z))
==
conj(clog(z))
如果z
是-0+0i
,結(jié)果是-∞+πi
并且FE_DIVBYZERO
被提出
如果z
是+0+0i
,結(jié)果是-∞+0i
并且FE_DIVBYZERO
被提出
如果z
是x+∞i
(對(duì)于任何有限的x),結(jié)果是+∞+πi/2
如果z
是x+NaNi
(對(duì)于任何有限的x),結(jié)果是NaN+NaNi
并FE_INVALID
可能會(huì)提出
如果z
是-∞+yi
(對(duì)于任何有限的正y),結(jié)果是-∞+πi
如果z
是+∞+yi
(對(duì)于任何有限的正y),結(jié)果是-∞+0i
如果z
是-∞+∞i
,結(jié)果是+∞+3πi/4
如果z
是+∞+∞i
,結(jié)果是+∞+πi/4
如果z
是±∞+NaNi
,結(jié)果是+∞+NaNi
如果z
是NaN+yi
(對(duì)于任何有限的y),結(jié)果是NaN+NaNi
并且FE_INVALID
可能會(huì)被提出
如果z
是NaN+∞i
,結(jié)果是+∞+NaNi
如果z
是NaN+NaNi
,結(jié)果是NaN+NaNi
具有極坐標(biāo)分量(r,θ)的復(fù)數(shù)z的自然對(duì)數(shù)等于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.141593i4*log(sqrt(2)/2+sqrt(2)i/2) = 0.0+3.141593ilog(-1+0i) = 0.0+3.141593ilog(-1-0i) (the other side of the cut) = 0.0-3.141593i
C11標(biāo)準(zhǔn)(ISO / IEC 9899:2011):
7.3.7.2堵塞功能(p:195)
7.25類型通用數(shù)學(xué)<tgmath.h>(p:373-375)
G.6.3.2堵塞功能(p:543-544)
G.7類型 - 通用數(shù)學(xué)<tgmath.h>(p:545)
C99標(biāo)準(zhǔn)(ISO / IEC 9899:1999):
7.3.7.2堵塞功能(p:176-177)
7.22類型通用數(shù)學(xué)<tgmath.h>(p:335-337)
G.6.3.2堵塞功能(p:478-479)
G.7類型 - 通用數(shù)學(xué)<tgmath.h>(p:480)