#include "libm.h"

float sinhf(float x) {
  union {
    float f;
    uint32_t i;
  } u = {.f = x};
  uint32_t w;
  float t, h, absx;

  h = 0.5;
  if (u.i >> 31)
    h = -h;
  /* |x| */
  u.i &= 0x7fffffff;
  absx = u.f;
  w = u.i;

  /* |x| < log(FLT_MAX) */
  if (w < 0x42b17217) {
    t = expm1f(absx);
    if (w < 0x3f800000) {
      if (w < 0x3f800000 - (12 << 23))
        return x;
      return h * (2 * t - t * t / (t + 1));
    }
    return h * (t + t / (t + 1));
  }

  /* |x| > logf(FLT_MAX) or nan */
  t = 2 * h * __expo2f(absx);
  return t;
}
