github.com/afumu/libc@v0.0.6/musl/src/math/nearbyintl.c (about)

     1  #include <math.h>
     2  #include <float.h>
     3  
     4  #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
     5  long double nearbyintl(long double x)
     6  {
     7  	return nearbyint(x);
     8  }
     9  #else
    10  #include <fenv.h>
    11  long 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