1#include "libm.h" 2#include <fenv.h> 3#include <math.h> 4 5/* nearbyint is the same as rint, but it must not raise the inexact exception */ 6 7double nearbyint(double x) { 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