1#include "libm.h" 2#include <float.h> 3#include <math.h> 4 5#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024 6long double nearbyintl(long double x) { 7 return nearbyint(x); 8} 9#else 10#include <fenv.h> 11long double nearbyintl(long double x) { 12#ifdef FE_INEXACT 13 PRAGMA_STDC_FENV_ACCESS_ON 14 int e; 15 16 e = fetestexcept(FE_INEXACT); 17#endif 18 x = rintl(x); 19#ifdef FE_INEXACT 20 if (!e) 21 feclearexcept(FE_INEXACT); 22#endif 23 return x; 24} 25#endif 26