1#include <fenv.h>
2#include <math.h>
3
4/* nearbyint is the same as rint, but it must not raise the inexact exception */
5
6double nearbyint(double x)
7{
8#ifdef FE_INEXACT
9	#pragma STDC FENV_ACCESS ON
10	int e;
11
12	e = fetestexcept(FE_INEXACT);
13#endif
14	x = rint(x);
15#ifdef FE_INEXACT
16	if (!e)
17		feclearexcept(FE_INEXACT);
18#endif
19	return x;
20}
21