cacos
Compute the arccosine of a complex number.
Interface Definition
C interface:
float complex cacosf(float complex x);
double complex cacos(double complex x);
Parameters
Parameter |
Type |
Description |
Input/Output |
|---|---|---|---|
x |
|
Floating-point value of the input data. |
Input |
Return Value
- Normal range: The arccosine of the complex number x is returned.
- Special values: See the following table.
Real Part of the Input (x.real)
Imaginary Part of the Input (x.imag)
Real Part of the Output (y.real)
Imaginary Part of the Output (y.imag)
0
0
π/2
0
0
0
π/2
0
0
inf
π/2
-inf
0
-inf
π/2
inf
0
SNaN
π/2
NaN
0
–SNaN
π/2
NaN
0
QNaN
π/2
NaN
0
–QNaN
π/2
NaN
0
0
π/2
0
0
0
π/2
0
0
inf
π/2
-inf
0
-inf
π/2
inf
0
SNaN
π/2
NaN
0
–SNaN
π/2
NaN
0
QNaN
π/2
NaN
0
–QNaN
π/2
NaN
inf
0
0
-inf
inf
0
0
inf
inf
inf
π/4
-inf
inf
-inf
π/4
inf
inf
SNaN
NaN
-inf
inf
–SNaN
NaN
-inf
inf
QNaN
NaN
-inf
inf
–QNaN
NaN
-inf
-inf
0
pi
-inf
-inf
0
pi
inf
-inf
inf
3*π/4
-inf
-inf
-inf
3*π/4
inf
-inf
SNaN
NaN
-inf
-inf
–SNaN
NaN
-inf
-inf
QNaN
NaN
-inf
-inf
–QNaN
NaN
-inf
SNaN
0
NaN
NaN
SNaN
0
NaN
NaN
SNaN
inf
NaN
-inf
SNaN
-inf
NaN
inf
SNaN
SNaN
NaN
NaN
SNaN
–SNaN
NaN
NaN
SNaN
QNaN
NaN
NaN
SNaN
–QNaN
NaN
NaN
–SNaN
0
NaN
NaN
–SNaN
0
NaN
NaN
–SNaN
inf
NaN
-inf
–SNaN
-inf
NaN
inf
–SNaN
SNaN
NaN
NaN
–SNaN
–SNaN
NaN
NaN
–SNaN
QNaN
NaN
NaN
–SNaN
–QNaN
NaN
NaN
QNaN
0
NaN
NaN
QNaN
0
NaN
NaN
QNaN
inf
NaN
-inf
QNaN
-inf
NaN
inf
QNaN
SNaN
NaN
NaN
QNaN
–SNaN
NaN
NaN
QNaN
QNaN
NaN
NaN
QNaN
–QNaN
NaN
NaN
–QNaN
0
NaN
NaN
–QNaN
0
NaN
NaN
–QNaN
inf
NaN
-inf
–QNaN
-inf
NaN
inf
–QNaN
SNaN
NaN
NaN
–QNaN
–SNaN
NaN
NaN
–QNaN
QNaN
NaN
NaN
–QNaN
–QNaN
NaN
NaN
Dependency
C: "kc.h"
Example
// typical usage
double x1 = INFINITY, y1 = INFINITY;
double x2 = 2.0, y2 = 3.0;
double x3 = -2.5, y3 = -3.4;
double x4 = NAN, y4 = NAN;
double x5 = 0, y5 = 0;
// print result
printf("/*\n");
printf(" * cacos(%.2f + %.2f*I) = %.6f\n", x1, y1, cacos(__builtin_complex(x1, y1)));
printf(" * cacos(%.2f + %.2f*I) = %.6f\n", x2, y2, cacos(__builtin_complex(x2, y2)));
printf(" * cacos(%.2f + %.2f*I) = %.6f\n", x3, y3, cacos(__builtin_complex(x3, y3)));
printf(" * cacos(%.2f + %.2f*I) = %.6f\n", x4, y4, cacos(__builtin_complex(x4, y4)));
printf(" * cacos(%.2f + %.2f*I) = %.6f\n", x5, y5, cacos(__builtin_complex(x5, y5)));
printf(" **/\n");
/*
* cacos(inf + inf*I) = 0.785398
* cacos(2.00 + 3.00*I) = 1.000144
* cacos(-2.50 + -3.40*I) = 2.191594
* cacos(nan + nan*I) = nan
* cacos(0.00 + 0.00*I) = 1.570796
**/