blob: f163dc02115fd3913cec5e48ca8ac0fc53d3748b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <complex.h> // for I, cimag, creal, complex, casin, clog, csqrt
double complex casin(double complex z)
{
double complex ca, ct, zz, z2;
double x, y;
x = creal(z);
y = cimag(z);
ca = x + y * I;
ct = ca * I;
zz = (x - y) * (x + y) + (2.0 * x * y) * I;
zz = 1.0 - creal(zz) - cimag(zz) * I;
z2 = csqrt(zz);
zz = ct + z2;
zz = clog(zz);
return zz * (-1.0 * I);
}
|