Index: fusl/src/complex/casin.c |
diff --git a/fusl/src/complex/casin.c b/fusl/src/complex/casin.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..dfdda988bafcda9403b7e03ef55f4a0eaf9349a9 |
--- /dev/null |
+++ b/fusl/src/complex/casin.c |
@@ -0,0 +1,16 @@ |
+#include "libm.h" |
+ |
+// FIXME |
+ |
+/* asin(z) = -i log(i z + sqrt(1 - z*z)) */ |
+ |
+double complex casin(double complex z) |
+{ |
+ double complex w; |
+ double x, y; |
+ |
+ x = creal(z); |
+ y = cimag(z); |
+ w = CMPLX(1.0 - (x - y)*(x + y), -2.0*x*y); |
+ return clog(CMPLX(-y, x) + csqrt(w)); |
+} |