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

Macros

#define fmax_def(type, name, isnan_func)

Functions

 fmax_def (float, fmaxf, isnan)
 fmax_def (double, fmax, isnan)
 fmax_def (long double, fmaxl, isnan)

Macro Definition Documentation

◆ fmax_def

#define fmax_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

◆ fmax_def() [1/3]

fmax_def ( double ,
fmax ,
isnan  )

◆ fmax_def() [2/3]

fmax_def ( float ,
fmaxf ,
isnan  )

◆ fmax_def() [3/3]

fmax_def ( long double ,
fmaxl ,
isnan  )