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