20 lines
314 B
C
20 lines
314 B
C
|
#include <math.h>
|
||
|
|
||
|
/* nearbyint is the same as rint, but it must not raise the inexact exception */
|
||
|
|
||
|
double nearbyint(double x)
|
||
|
{
|
||
|
#ifdef FE_INEXACT
|
||
|
#pragma STDC FENV_ACCESS ON
|
||
|
int e;
|
||
|
|
||
|
e = fetestexcept(FE_INEXACT);
|
||
|
#endif
|
||
|
x = rint(x);
|
||
|
#ifdef FE_INEXACT
|
||
|
if (!e)
|
||
|
feclearexcept(FE_INEXACT);
|
||
|
#endif
|
||
|
return x;
|
||
|
}
|