diff --git a/src/c/num_pred.d b/src/c/num_pred.d index 1ca72747d..edb51e6b2 100644 --- a/src/c/num_pred.d +++ b/src/c/num_pred.d @@ -64,17 +64,16 @@ si_float_infinity_p(cl_object x) bool ecl_float_nan_p(cl_object x) { - return !ecl_number_equalp(x,x); -/* switch (ecl_t_of(x)) { */ -/* case t_singlefloat: */ -/* return !isnan(ecl_single_float(x)); */ -/* case t_doublefloat: */ -/* return !isnan(ecl_double_float(x)); */ -/* case t_longfloat: */ -/* return !isnan(ecl_long_float(x)); */ -/* default: */ -/* return 0; */ -/* } */ + switch (ecl_t_of(x)) { + case t_singlefloat: + return isnan(ecl_single_float(x)); + case t_doublefloat: + return isnan(ecl_double_float(x)); + case t_longfloat: + return isnan(ecl_long_float(x)); + default: + return 0; + } } bool @@ -82,11 +81,11 @@ ecl_float_infinity_p(cl_object x) { switch (ecl_t_of(x)) { case t_singlefloat: - return !isfinite(ecl_single_float(x)); + return isinf(ecl_single_float(x)); case t_doublefloat: - return !isfinite(ecl_double_float(x)); + return isinf(ecl_double_float(x)); case t_longfloat: - return !isfinite(ecl_long_float(x)); + return isinf(ecl_long_float(x)); default: return 0; }