1#include "libm.h"
2
3// FIXME
4
5/* asin(z) = -i log(i z + sqrt(1 - z*z)) */
6
7double complex casin(double complex z) {
8    double complex w;
9    double x, y;
10
11    x = creal(z);
12    y = cimag(z);
13    w = CMPLX(1.0 - (x - y) * (x + y), -2.0 * x * y);
14    return clog(CMPLX(-y, x) + csqrt(w));
15}
16