--- a/math_compat.h +++ b/math_compat.h @@ -6,38 +6,9 @@ * @brief Do not use, json-c internal, may be changed or removed at any time. */ -/* Define isnan, isinf, infinity and nan on Windows/MSVC */ - -#ifndef HAVE_DECL_ISNAN -#ifdef HAVE_DECL__ISNAN -#include -#define isnan(x) _isnan(x) -#else -/* On platforms like AIX and "IBM i" we need to provide our own isnan */ -#define isnan(x) ((x) != (x)) -#endif -#endif - -#ifndef HAVE_DECL_ISINF -#ifdef HAVE_DECL__FINITE -#include -#define isinf(x) (!_finite(x)) -#else -#include -/* On platforms like AIX and "IBM i" we need to provide our own isinf */ -#define isinf(x) ((x) < -DBL_MAX || (x) > DBL_MAX) -#endif -#endif - -#ifndef HAVE_DECL_INFINITY -#include -#define INFINITY (DBL_MAX + DBL_MAX) -#define HAVE_DECL_INFINITY -#endif - -#ifndef HAVE_DECL_NAN -#define NAN (INFINITY - INFINITY) -#define HAVE_DECL_NAN -#endif +#undef isnan +#define isnan(x) __builtin_isnan(x) +#undef isinf +#define isinf(x) __builtin_isinf(x) #endif