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