carg
返回复数极坐标形式的角度值。
接口定义
C interface:
float cargf(float complex x);
double carg(double complex x);
long double cargl(long double complex x);
参数
参数名 |
类型 |
描述 |
输入/输出 |
|---|---|---|---|
x |
|
表示输入数据的浮点值。 |
输入 |
返回值
- 返回复数极坐标形式的角度值y,y ∈ [-pi, +pi]。
- 特殊值说明如下所示。
输入值实部(real)
输入值虚部(imag)
输出值(y)
+0
+0
+0
+0
-0
-0
+0
inf
pi/2
+0
-inf
-pi/2
+0
snan
nan
+0
-snan
nan
+0
qnan
nan
+0
-qnan
nan
-0
+0
pi
-0
-0
-pi
-0
inf
pi/2
-0
-inf
-pi/2
-0
snan
nan
-0
-snan
nan
-0
qnan
nan
-0
-qnan
nan
inf
+0
+0
inf
-0
-0
inf
inf
pi/4
inf
-inf
-pi/4
inf
snan
nan
inf
-snan
nan
inf
qnan
nan
inf
-qnan
nan
-inf
+0
pi
-inf
-0
-pi
-inf
inf
3*pi/4
-inf
-inf
-3*pi/4
-inf
snan
nan
-inf
-snan
nan
-inf
qnan
nan
-inf
-qnan
nan
snan
+0
nan
snan
-0
nan
snan
inf
nan
snan
-inf
nan
snan
snan
nan
snan
-snan
nan
snan
qnan
nan
snan
-qnan
nan
-snan
+0
nan
-snan
-0
nan
-snan
inf
nan
-snan
-inf
nan
-snan
snan
nan
-snan
-snan
nan
-snan
qnan
nan
-snan
-qnan
nan
qnan
+0
nan
qnan
-0
nan
qnan
inf
nan
qnan
-inf
nan
qnan
snan
nan
qnan
-snan
nan
qnan
qnan
nan
qnan
-qnan
nan
-qnan
+0
nan
-qnan
-0
nan
-qnan
inf
nan
-qnan
-inf
nan
-qnan
snan
nan
-qnan
-snan
nan
-qnan
qnan
nan
-qnan
-qnan
nan
依赖
C: "km.h"
示例
// typical usage
double x1 = INFINITY, y1 = INFINITY;
double x2 = -INFINITY, y2 = 0;
double x3 = 0, y3 = -INFINITY;
double x4 = NAN, y4 = NAN;
double x5 = 0, y5 = 0;
// print result
printf("/*\n");
printf(" * carg(%.2f + %.2f*I) = %.6f\n", x1, y1, carg(__builtin_complex(x1, y1)));
printf(" * carg(%.2f + %.2f*I) = %.6f\n", x2, y2, carg(__builtin_complex(x2, y2)));
printf(" * carg(%.2f + %.2f*I) = %.6f\n", x3, y3, carg(__builtin_complex(x3, y3)));
printf(" * carg(%.2f + %.2f*I) = %.6f\n", x4, y4, carg(__builtin_complex(x4, y4)));
printf(" * carg(%.2f + %.2f*I) = %.6f\n", x5, y5, carg(__builtin_complex(x5, y5)));
/*
* carg(inf + inf*I) = 0.785398
* carg(-inf + 0.00*I) = 3.141593
* carg(0.00 + -inf*I) = -1.570796
* carg(nan + nan*I) = nan
* carg(0.00 + 0.00*I) = 0.000000
**/