?
本文檔使用 php中文網手冊 發(fā)布
在頭文件<complex.h>中定義 | ||
---|---|---|
float complex csqrtf(float complex z); | (1) | (自C99以來) |
double complex csqrt( double complex z ); | (2) | (自C99以來) |
long double complex csqrtl( long double complex z ); | (3) | (自C99以來) |
在頭文件<tgmath.h>中定義 | ||
#define sqrt(z) | (4) | (自C99以來) |
1-3)用負實軸計算分支切割z的復平方根。
4)類型 - 通用宏:如果z有類型long double complex,則調用csqrtl。 如果z具有類型double復合體,則調用csqrt,如果z具有類型float complex,則調用csqrtf。 如果z是實數或整數,那么宏調用相應的實函數(sqrtf,sqrt,sqrtl)。 如果z是虛數,則調用相應的復數版本。
z | - | complex argument |
---|
如果不出現(xiàn)錯誤,則返回z
右半平面范圍內的平方根,包括沿著實軸的虛軸([0; +∞)和沿虛軸的(-∞; +∞)。) 。
報告的錯誤與math_errhandling一致。
如果實現(xiàn)支持IEEE浮點運算,
考慮到虛部的符號,該功能在分支切割上是連續(xù)的
csqrt(conj(z))== conj(csqrt(z))
如果z是±0 + 0i,結果是+ 0 + 0i
如果z是x +∞i,即使x是NaN,結果也是+∞+∞i
如果z是x + NaNi,那么結果是NaN + NaNi(除非x是±∞)并且可以提高FE_INVALID
如果z是-∞+ yi,則對于有限正y,結果為+ 0 +∞i
如果z是+∞+ yi,則對于有限正y,結果為+∞+ 0i)
如果z是-∞+ NaNi,則結果是NaN±∞(虛數部分的符號未指定)
如果z是+∞+ NaNi,則結果是+∞+ NaNi
如果z是NaN + yi,則結果是NaN + NaNi,并且FE_INVALID可能會上升
如果z是NaN + NaNi,結果是NaN + NaNi
#include <stdio.h>#include <complex.h> int main(void){ double complex z1 = csqrt(-4); printf("Square root of -4 is %.1f%+.1fi\n", creal(z1), cimag(z1)); double complex z2 = csqrt(conj(-4)); // or, in C11, CMPLX(-4, -0.0) printf("Square root of -4-0i, the other side of the cut, is " "%.1f%+.1fi\n", creal(z2), cimag(z2));}
輸出:
Square root of -4 is 0.0+2.0i Square root of -4-0i, the other side of the cut, is 0.0-2.0i
C11標準(ISO / IEC 9899:2011):
7.3.8.3 csqrt函數(p:196)
7.25類型通用數學<tgmath.h>(p:373-375)
G.6.4.2 csqrt函數(p:544)
G.7類型 - 通用數學<tgmath.h>(p:545)
C99標準(ISO / IEC 9899:1999):
7.3.8.3 csqrt函數(p:178)
7.22類型通用數學<tgmath.h>(p:335-337)
G.6.4.2 csqrt函數(p:479)
G.7類型 - 通用數學<tgmath.h>(p:480)
cpowcpowfcpowl(C99)(C99)(C99) | 計算復數冪函數(函數) |
---|---|
sqrtsqrtfsqrtl(C99)(C99) | 計算平方根(√x)(函數) |
|sqrt的 C ++文檔 |