| 1 | #include "complex_impl.h" |
| 2 | |
| 3 | #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024 |
| 4 | long double complex casinl(long double complex z) |
| 5 | { |
| 6 | 	return casin(z); |
| 7 | } |
| 8 | #else |
| 9 | // FIXME |
| 10 | long double complex casinl(long double complex z) |
| 11 | { |
| 12 | 	long double complex w; |
| 13 | 	long double x, y; |
| 14 | |
| 15 | 	x = creall(z); |
| 16 | 	y = cimagl(z); |
| 17 | 	w = CMPLXL(1.0 - (x - y)*(x + y), -2.0*x*y); |
| 18 | 	long double complex r = clogl(CMPLXL(-y, x) + csqrtl(w)); |
| 19 | 	return CMPLXL(cimagl(r), -creall(r)); |
| 20 | } |
| 21 | #endif |