37 #ifndef CERES_PUBLIC_FPCLASSIFY_H_
38 #define CERES_PUBLIC_FPCLASSIFY_H_
50 inline bool IsFinite (
double x) {
return _finite(
x) != 0; }
51 inline bool IsInfinite(
double x) {
return _finite(
x) == 0 && _isnan(
x) == 0; }
52 inline bool IsNaN (
double x) {
return _isnan(
x) != 0; }
54 int classification = _fpclass(
x);
55 return classification == _FPCLASS_NN ||
56 classification == _FPCLASS_PN;
59 #elif defined(ANDROID) && defined(_STLPORT_VERSION)
64 inline bool IsNormal (
double x) {
return isnormal(
x); }
68 return x == std::numeric_limits<double>::infinity() ||
69 x == -std::numeric_limits<double>::infinity();
81 inline bool IsNormal (
double x) {
return std::isnormal(
x); }
87 #endif // CERES_PUBLIC_FPCLASSIFY_H_