casinl.c raw

   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
  22