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