#include "libm.h"

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

static const long double toint = 1 / LDBL_EPSILON;

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

  if (e >= 0x3fff + LDBL_MANT_DIG - 1 || x == 0)
    return x;
  /* y = int(x) - x, where int(x) is an integer neighbor of x */
  if (u.i.se >> 15)
    y = x - toint + toint - x;
  else
    y = x + toint - toint - x;
  /* special case because of non-nearest rounding modes */
  if (e <= 0x3fff - 1) {
    FORCE_EVAL(y);
    return u.i.se >> 15 ? -1 : 0;
  }
  if (y > 0)
    return x + y - 1;
  return x + y;
}
#endif
