nearbyintf.c 717 Bytes
#include <math.h>

#undef nearbyintf

/* nearbyintf is not supposed to be the same as roundf according to OpenBSD's
 * documentation. Indeed:
 * - they round halfway cases to the nearest integer instead of away from zero
 *   (nearbyint(4.5) = 4 while round(4.5) = 5 for example).
 * - nearbyint is guaranteed never to set floating point flags or trigger
 *   floating point exceptions (which are disabled by default)
 *   accroding to OpenBSD open manual page.
 *
 * However, as nearbyintf is required by micropython only, in order to save
 * space and time (nearbyintf OpenBSD 6.0 implementation required some other
 * function implementation), we used roundf. */

float nearbyintf(float x) {
  return roundf(x);
}