ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
round.c File Reference
#include <math.h>
#include <fenv.h>
Include dependency graph for round.c:

Macros

#define round_def(ret_type, type, name, rint_func, copysign_func, abs_func)

Functions

 round_def (float, float, roundf, rintf, copysignf, fabsf)
 round_def (double, double, round, rint, copysign, fabs)
 round_def (long double, long double, roundl, rintl, copysignl, fabsl)
 round_def (long, float, lroundf, rintf, copysignf, fabsf)
 round_def (long, double, lround, rint, copysign, fabs)
 round_def (long, long double, lroundl, rintl, copysignl, fabsl)
 round_def (long long, float, llroundf, rintf, copysignf, fabsf)
 round_def (long long, double, llround, rint, copysign, fabs)
 round_def (long long, long double, llroundl, rintl, copysignl, fabsl)

Macro Definition Documentation

◆ round_def

#define round_def ( ret_type,
type,
name,
rint_func,
copysign_func,
abs_func )
Value:
ret_type name(type f) \
{ \
__ESBMC_HIDE:; \
type result; \
int save_round = fegetround(); \
fesetround(FE_TOWARDZERO); \
result = rint_func(copysign_func(0.5 + abs_func(f), f)); \
fesetround(save_round); \
return result; \
} \
\
ret_type __##name(type f) \
{ \
__ESBMC_HIDE:; \
return name(f); \
}
int fegetround(void)
Definition fenv.c:5

Function Documentation

◆ round_def() [1/9]

round_def ( double ,
double ,
round ,
rint ,
copysign ,
fabs  )

◆ round_def() [2/9]

round_def ( float ,
float ,
roundf ,
rintf ,
copysignf ,
fabsf  )

◆ round_def() [3/9]

round_def ( long double ,
long double ,
roundl ,
rintl ,
copysignl ,
fabsl  )

◆ round_def() [4/9]

round_def ( long long ,
double ,
llround ,
rint ,
copysign ,
fabs  )

◆ round_def() [5/9]

round_def ( long long ,
float ,
llroundf ,
rintf ,
copysignf ,
fabsf  )

◆ round_def() [6/9]

round_def ( long long ,
long double ,
llroundl ,
rintl ,
copysignl ,
fabsl  )

◆ round_def() [7/9]

round_def ( long ,
double ,
lround ,
rint ,
copysign ,
fabs  )

◆ round_def() [8/9]

round_def ( long ,
float ,
lroundf ,
rintf ,
copysignf ,
fabsf  )

◆ round_def() [9/9]

round_def ( long ,
long double ,
lroundl ,
rintl ,
copysignl ,
fabsl  )