cannam@79: cannam@79: #ifndef NAN_INF_H cannam@79: #define NAN_INF_H cannam@79: Chris@92: #define ISNAN(x) (sizeof(x) == sizeof(double) ? ISNANd(x) : ISNANf(x)) Chris@92: static inline int ISNANf(float x) { return x != x; } Chris@92: static inline int ISNANd(double x) { return x != x; } Chris@92: Chris@92: #define ISINF(x) (sizeof(x) == sizeof(double) ? ISINFd(x) : ISINFf(x)) Chris@92: static inline int ISINFf(float x) { return !ISNANf(x) && ISNANf(x - x); } Chris@92: static inline int ISINFd(double x) { return !ISNANd(x) && ISNANd(x - x); } cannam@79: cannam@79: #endif