#include "libm.h"

#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
long double roundl(long double x) {
  return round(x);
}
#elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384

static const long double toint = 1 / LDBL_EPSILON;

long double roundl(long double x) {
  union ldshape u = {x};
  int e = u.i.se & 0x7fff;
  long double y;

  if (e >= 0x3fff + LDBL_MANT_DIG - 1)
    return x;
  if (u.i.se >> 15)
    x = -x;
  if (e < 0x3fff - 1) {
    FORCE_EVAL(x + toint);
    return 0 * u.f;
  }
  y = x + toint - toint - x;
  if (y > 0.5)
    y = y + x - 1;
  else if (y <= -0.5)
    y = y + x + 1;
  else
    y = y + x;
  if (u.i.se >> 15)
    y = -y;
  return y;
}
#endif
