mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-30 05:31:39 +00:00
include: Add some C99 floating point comparison macros.
This commit is contained in:
parent
8772b38494
commit
42b13eff24
|
@ -342,6 +342,34 @@ static inline int __signbit(double x)
|
|||
|
||||
#endif
|
||||
|
||||
#ifdef _UCRT
|
||||
|
||||
_ACRTIMP int __cdecl _dpcomp(double, double);
|
||||
_ACRTIMP int __cdecl _fdpcomp(float, float);
|
||||
|
||||
#define _FP_LT 1
|
||||
#define _FP_EQ 2
|
||||
#define _FP_GT 4
|
||||
|
||||
#ifdef __GNUC__
|
||||
# define isgreater(x, y) __builtin_isgreater(x, y)
|
||||
# define isgreaterequal(x, y) __builtin_isgreaterequal(x, y)
|
||||
# define isless(x, y) __builtin_isless(x, y)
|
||||
# define islessequal(x, y) __builtin_islessequal(x, y)
|
||||
# define islessgreater(x, y) __builtin_islessgreater(x, y)
|
||||
# define isunordered(x, y) __builtin_isunordered(x, y)
|
||||
#else
|
||||
# define __FP_COMPARE(x,y) (sizeof(x) == sizeof(float) && sizeof(y) == sizeof(float) ? _fdpcomp(x,y) : _dpcomp(x,y))
|
||||
# define isgreater(x, y) ((__FP_COMPARE(x, y) & _FP_GT) != 0)
|
||||
# define isgreaterequal(x, y) ((__FP_COMPARE(x, y) & (_FP_GT|_FP_EQ)) != 0)
|
||||
# define isless(x, y) ((__FP_COMPARE(x, y) & _FP_LT) != 0)
|
||||
# define islessequal(x, y) ((__FP_COMPARE(x, y) & (_FP_LT|_FP_EQ)) != 0)
|
||||
# define islessgreater(x, y) ((__FP_COMPARE(x, y) & (_FP_LT|_FP_GT)) != 0)
|
||||
# define isunordered(x, y) (!__FP_COMPARE(x, y))
|
||||
#endif
|
||||
|
||||
#endif /* _UCRT */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue