#include "libm.h"

#if FLT_EVAL_METHOD == 2
#undef sqrtf
#define sqrtf sqrtl
#elif FLT_EVAL_METHOD == 1
#undef sqrtf
#define sqrtf sqrt
#endif

/* acosh(x) = log(x + sqrt(x*x-1)) */
float acoshf(float x) {
  union {
    float f;
    uint32_t i;
  } u = {x};
  uint32_t a = u.i & 0x7fffffff;

  if (a < 0x3f800000 + (1 << 23))
    /* |x| < 2, invalid if x < 1 or nan */
    /* up to 2ulp error in [1,1.125] */
    return log1pf(x - 1 + sqrtf((x - 1) * (x - 1) + 2 * (x - 1)));
  if (a < 0x3f800000 + (12 << 23))
    /* |x| < 0x1p12 */
    return logf(2 * x - 1 / (x + sqrtf(x * x - 1)));
  /* x >= 0x1p12 */
  return logf(x) + 0.693147180559945309417232121458176568f;
}
