master
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}