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

Macros

#define fmin_def(type, name, isnan_func)

Functions

 fmin_def (float, fminf, isnan)
 fmin_def (double, fmin, isnan)
 fmin_def (long double, fminl, isnan)

Macro Definition Documentation

◆ fmin_def

#define fmin_def ( type,
name,
isnan_func )
Value:
type name(type x, type y) \
{ \
__ESBMC_HIDE:; \
int x_is_nan = isnan_func(x); \
int y_is_nan = isnan_func(y); \
\
/* If both argument are NaN, NaN is returned */ \
if (x_is_nan && y_is_nan) \
return NAN; \
\
/* If one arg is NaN, the other is returned */ \
if (x_is_nan) \
return y; \
\
if (y_is_nan) \
return x; \
\
return (x < y ? x : y); \
} \
\
type __##name(type x, type y) \
{ \
__ESBMC_HIDE:; \
return name(x, y); \
}

Function Documentation

◆ fmin_def() [1/3]

fmin_def ( double ,
fmin ,
isnan  )

◆ fmin_def() [2/3]

fmin_def ( float ,
fminf ,
isnan  )

◆ fmin_def() [3/3]

fmin_def ( long double ,
fminl ,
isnan  )