计算复数x的反正切值。
C interface:
float complex catanf(float complex x);
double complex catan(double complex x);
long double complex catanl(long double complex x);
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
x |
|
表示输入数据的浮点值。 |
输入 |
输入值实部(x.real) |
输入值虚部(x.imag) |
输出值实部(y.real) |
输出值虚部(y.imag) |
---|---|---|---|
-inf |
-inf |
-pi/2 |
-0.0 |
-inf |
< +0.0 |
-pi/2 |
-0.0 |
-inf |
-0.0 |
-pi/2 |
-0.0 |
-inf |
+0.0 |
-pi/2 |
+0.0 |
-inf |
> +0.0 |
-pi/2 |
+0.0 |
-inf |
inf |
-pi/2 |
+0.0 |
-inf |
-nan |
-pi/2 |
+0.0 |
-inf |
nan |
-pi/2 |
+0.0 |
< +0.0 |
-inf |
-pi/2 |
-0.0 |
< +0.0 |
inf |
-pi/2 |
+0.0 |
< +0.0 |
-nan |
nan |
nan |
< +0.0 |
nan |
nan |
nan |
-0.0 |
-inf |
-pi/2 |
-0.0 |
-0.0 |
-0.0 |
-0.0 |
-0.0 |
-0.0 |
+0.0 |
-0.0 |
0.0 |
-0.0 |
inf |
-pi/2 |
+0.0 |
-0.0 |
-nan |
nan |
nan |
-0.0 |
nan |
nan |
nan |
+0.0 |
-inf |
pi/2 |
-0.0 |
+0.0 |
-0.0 |
+0.0 |
-0.0 |
+0.0 |
+0.0 |
+0.0 |
+0.0 |
+0.0 |
inf |
pi/2 |
+0.0 |
+0.0 |
-nan |
nan |
nan |
+0.0 |
nan |
nan |
nan |
> +0.0 |
-inf |
pi/2 |
-0.0 |
> +0.0 |
inf |
pi/2 |
+0.0 |
> +0.0 |
-nan |
nan |
nan |
> +0.0 |
nan |
nan |
nan |
inf |
-inf |
pi/2 |
-0.0 |
inf |
< +0.0 |
pi/2 |
-0.0 |
inf |
-0.0 |
pi/2 |
-0.0 |
inf |
+0.0 |
pi/2 |
+0.0 |
inf |
> +0.0 |
pi/2 |
+0.0 |
inf |
inf |
pi/2 |
+0.0 |
inf |
-nan |
pi/2 |
+0.0 |
inf |
nan |
pi/2 |
+0.0 |
-nan |
-inf |
nan |
-0.0 |
-nan |
< +0.0 |
nan |
nan |
-nan |
-0.0 |
nan |
-0.0 |
-nan |
+0.0 |
nan |
+0.0 |
-nan |
> +0.0 |
nan |
nan |
-nan |
inf |
nan |
+0.0 |
-nan |
-nan |
nan |
nan |
-nan |
nan |
nan |
nan |
nan |
-inf |
nan |
-0.0 |
nan |
< +0.0 |
nan |
nan |
nan |
-0.0 |
nan |
-0.0 |
nan |
+0.0 |
nan |
+0.0 |
nan |
> +0.0 |
nan |
nan |
nan |
inf |
nan |
+0.0 |
nan |
-nan |
nan |
nan |
nan |
nan |
nan |
nan |
C: "km.h"
// typical usage double x1 = 1.0, x2 = 2.0, x3 = 3.0, x4 = 4.0; double complex cx1 = __builtin_complex(x1, x2); double complex cx2 = __builtin_complex(x3, x4); double complex cx3 = __builtin_complex(NAN, NAN); double complex cx4 = __builtin_complex(INFINITY, -INFINITY); double ry; double iy; ry = __real__ catan(cx1); iy = __imag__ catan(cx1); printf("catan(cx1) = %.15f, %.15f\n", ry, iy); ry = __real__ catan(cx2); iy = __imag__ catan(cx2); printf("catan(cx2) = %.15f, %.15f\n", ry, iy); ry = __real__ catan(cx3); iy = __imag__ catan(cx3); printf("catan(cx3) = %.15f, %.15f\n", ry, iy); ry = __real__ catan(cx4); iy = __imag__ catan(cx4); printf("catan(cx4) = %.15f, %.15f\n", ry, iy); result: /* * catan(cx1) = 1.338972522294493, 0.402359478108525 * catan(cx2) = 1.448306995231464, 0.158997191679999 * catan(cx3) = nan, nan * catan(cx4) = 1.570796326794897, -0.000000000000000 */