#include "libm.h"

#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
long double asinhl(long double x) {
  return asinh(x);
}
#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
/* asinh(x) = sign(x)*log(|x|+sqrt(x*x+1)) ~= x - x^3/6 + o(x^5) */
long double asinhl(long double x) {
  union ldshape u = {x};
  unsigned e = u.i.se & 0x7fff;
  unsigned s = u.i.se >> 15;

  /* |x| */
  u.i.se = e;
  x = u.f;

  if (e >= 0x3fff + 32) {
    /* |x| >= 0x1p32 or inf or nan */
    x = logl(x) + 0.693147180559945309417232121458176568L;
  } else if (e >= 0x3fff + 1) {
    /* |x| >= 2 */
    x = logl(2 * x + 1 / (sqrtl(x * x + 1) + x));
  } else if (e >= 0x3fff - 32) {
    /* |x| >= 0x1p-32 */
    x = log1pl(x + x * x / (sqrtl(x * x + 1) + 1));
  } else {
    /* |x| < 0x1p-32, raise inexact if x!=0 */
    FORCE_EVAL(x + 0x1p120f);
  }
  return s ? -x : x;
}
#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
// TODO: broken implementation to make things compile
long double asinhl(long double x) {
  return asinh(x);
}
#endif
