blob: 797ea94b6f48cbb5d5e17f0049af700aa2e82b54 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <complex.h> // for I, cimagf, crealf, complex, casinf, clogf, csqrtf
float complex casinf(float complex z)
{
float complex ca, ct, zz, z2;
float x, y;
x = crealf(z);
y = cimagf(z);
ca = x + y * I;
ct = ca * I;
zz = (x - y) * (x + y) + (2.0f * x * y) * I;
zz = 1.0f - crealf(zz) - cimagf(zz) * I;
z2 = csqrtf(zz);
zz = ct + z2;
zz = clogf(zz);
return zz * (-1.0f * I);
}
|