#include "libm.h"

#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
long double atanhl(long double x) {
  return atanh(x);
}
#elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
/* atanh(x) = log((1+x)/(1-x))/2 = log1p(2x/(1-x))/2 ~= x + x^3/3 + o(x^5) */
long double atanhl(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 < 0x3ff - 1) {
    if (e < 0x3ff - LDBL_MANT_DIG / 2) {
      /* handle underflow */
      if (e == 0)
        FORCE_EVAL((float)x);
    } else {
      /* |x| < 0.5, up to 1.7ulp error */
      x = 0.5 * log1pl(2 * x + 2 * x * x / (1 - x));
    }
  } else {
    /* avoid overflow */
    x = 0.5 * log1pl(2 * (x / (1 - x)));
  }
  return s ? -x : x;
}
#endif
