carg
cargf, carg, cargl
在头文件 | | |
---|---|---|
float cargf( float complex z | (1) | (since C99) |
double carg( double complex z | (2) | (since C99) |
long double cargl( long double complex z | (3) | (since C99) |
Defined in header <tgmath.h> | | |
#define carg( z ) | (4) | (since C99) |
1-3)z
用沿着负实轴的分支来计算参数(也称为相位角)。
4)式泛型宏:如果z
具有类型long double
complex
,long double
imaginary
或long double
,cargl
被调用。如果z
有类型float
complex
,float
imaginary
或者float
,cargf
被调用。如果z
有类型double
complex
,double
imaginary
,double
,或任何整数类型,carg
被调用。
参数
z | - | 复杂的论点 |
---|
返回值
如果没有错误发生,则返回z
间隔(-π;π)的相位角。
处理错误和特殊情况,就像该函数被实现为atan2(cimag(z),
creal(z))
。
例
#include <stdio.h>
#include <complex.h>
int main(void)
{
double complex z1 = 1.0+0.0*I;
printf("phase angle of %.1f%+.1fi is %f\n", creal(z1), cimag(z1), carg(z1)
double complex z2 = 0.0+1.0*I;
printf("phase angle of %.1f%+.1fi is %f\n", creal(z2), cimag(z2), carg(z2)
double complex z3 = -1.0+0.0*I;
printf("phase angle of %.1f%+.1fi is %f\n", creal(z3), cimag(z3), carg(z3)
double complex z4 = conj(z3 // or CMPLX(-1, -0.0)
printf("phase angle of %.1f%+.1fi (the other side of the cut) is %f\n",
creal(z4), cimag(z4), carg(z4)
}
输出:
phase angle of 1.0+0.0i is 0.000000
phase angle of 0.0+1.0i is 1.570796
phase angle of -1.0+0.0i is 3.141593
phase angle of -1.0-0.0i (the other side of the cut) is -3.141593
参考
- C11标准(ISO / IEC 9899:2011):