# HG changeset patch # User Rik # Date 1373728095 25200 # Node ID 259c1f295a1e4725d16ba79fe3ed81f2eb559c61 # Parent 78116b88dbf55697fe1428add3fe9de5dbb099e0 Use xfinite to replace some (isinf || isnan) instances in C++ code. * libinterp/corefcn/graphics.cc(max_axes_scale, check_limit_vals, FIX_LIMITS, update_axis_limits): Use xfinite. * libinterp/corefcn/ls-mat5.cc(save_mat5_array_length): Use xfinite. * libinterp/corefcn/pr-output.cc(pr_max_internal, pr_min_internal, set_format): Use xfinite. * liboctave/numeric/lo-mappers.h(X_NINT): Use xfinite. * liboctave/numeric/oct-rand.cc(do_scalar, do_float_scalar, fill): Use xfinite. * liboctave/util/lo-utils.cc(xtoo_large_for_float): Use xfinite. diff -r 78116b88dbf5 -r 259c1f295a1e libinterp/corefcn/graphics.cc --- a/libinterp/corefcn/graphics.cc Sat Jul 13 10:28:57 2013 +0200 +++ b/libinterp/corefcn/graphics.cc Sat Jul 13 08:08:15 2013 -0700 @@ -5491,8 +5491,7 @@ double min_pos = octave_Inf; double max_neg = -octave_Inf; get_children_limits (minval, maxval, min_pos, max_neg, kids, limit_type); - if (!xisinf (minval) && !xisnan (minval) - && !xisinf (maxval) && !xisnan (maxval)) + if (xfinite (minval) && xfinite (maxval)) { limits(0) = minval; limits(1) = maxval; @@ -5973,16 +5972,16 @@ const array_property& data) { double val = data.min_val (); - if (! (xisinf (val) || xisnan (val)) && val < min_val) + if (xfinite (val) && val < min_val) min_val = val; val = data.max_val (); - if (! (xisinf (val) || xisnan (val)) && val > max_val) + if (xfinite (val) && val > max_val) max_val = val; val = data.min_pos (); - if (! (xisinf (val) || xisnan (val)) && val > 0 && val < min_pos) + if (xfinite (val) && val > 0 && val < min_pos) min_pos = val; val = data.max_neg (); - if (! (xisinf (val) || xisnan (val)) && val < 0 && val > max_neg) + if (xfinite (val) && val < 0 && val > max_neg) max_neg = val; } */ @@ -6001,19 +6000,19 @@ double val; val = m(0); - if (! (xisinf (val) || xisnan (val)) && val < min_val) + if (xfinite (val) && val < min_val) min_val = val; val = m(1); - if (! (xisinf (val) || xisnan (val)) && val > max_val) + if (xfinite (val) && val > max_val) max_val = val; val = m(2); - if (! (xisinf (val) || xisnan (val)) && val > 0 && val < min_pos) + if (xfinite (val) && val > 0 && val < min_pos) min_pos = val; val = m(3); - if (! (xisinf (val) || xisnan (val)) && val < 0 && val > max_neg) + if (xfinite (val) && val < 0 && val > max_neg) max_neg = val; } } @@ -6478,16 +6477,16 @@ if (limits.numel () == 4) \ { \ val = limits(0); \ - if (! (xisinf (val) || xisnan (val))) \ + if (xfinite (val)) \ min_val = val; \ val = limits(1); \ - if (! (xisinf (val) || xisnan (val))) \ + if (xfinite (val)) \ max_val = val; \ val = limits(2); \ - if (! (xisinf (val) || xisnan (val))) \ + if (xfinite (val)) \ min_pos = val; \ val = limits(3); \ - if (! (xisinf (val) || xisnan (val))) \ + if (xfinite (val)) \ max_neg = val; \ } \ else \ @@ -7451,16 +7450,16 @@ if (limits.numel () == 4) { val = limits(0); - if (! (xisinf (val) || xisnan (val))) + if (xfinite (val)) min_val = val; val = limits(1); - if (! (xisinf (val) || xisnan (val))) + if (xfinite (val)) max_val = val; val = limits(2); - if (! (xisinf (val) || xisnan (val))) + if (xfinite (val)) min_pos = val; val = limits(3); - if (! (xisinf (val) || xisnan (val))) + if (xfinite (val)) max_neg = val; } else diff -r 78116b88dbf5 -r 259c1f295a1e libinterp/corefcn/ls-mat5.cc --- a/libinterp/corefcn/ls-mat5.cc Sat Jul 13 10:28:57 2013 +0200 +++ b/libinterp/corefcn/ls-mat5.cc Sat Jul 13 08:08:15 2013 -0700 @@ -1960,7 +1960,7 @@ { double tmp = val[i]; - if (! (xisnan (tmp) || xisinf (tmp)) + if (xfinite (tmp) && fabs (tmp) > std::numeric_limits::max ()) { too_large_for_float = true; diff -r 78116b88dbf5 -r 259c1f295a1e libinterp/corefcn/pr-output.cc --- a/libinterp/corefcn/pr-output.cc Sat Jul 13 10:28:57 2013 +0200 +++ b/libinterp/corefcn/pr-output.cc Sat Jul 13 08:08:15 2013 -0700 @@ -493,7 +493,7 @@ for (octave_idx_type i = 0; i < nr; i++) { double val = m(i,j); - if (xisinf (val) || xisnan (val)) + if (! xfinite (val)) continue; all_inf_or_nan = false; @@ -522,7 +522,7 @@ for (octave_idx_type i = 0; i < nr; i++) { double val = m(i,j); - if (xisinf (val) || xisnan (val)) + if (xfinite (val)) continue; all_inf_or_nan = false; @@ -998,11 +998,9 @@ double r_abs = rp < 0.0 ? -rp : rp; double i_abs = ip < 0.0 ? -ip : ip; - int r_x = (xisinf (rp) || xisnan (rp) || r_abs == 0.0) - ? 0 : num_digits (r_abs); - - int i_x = (xisinf (ip) || xisnan (ip) || i_abs == 0.0) - ? 0 : num_digits (i_abs); + int r_x = (! xfinite (rp) || r_abs == 0.0) ? 0 : num_digits (r_abs); + + int i_x = (! xfinite (ip) || i_abs == 0.0) ? 0 : num_digits (i_abs); int x_max, x_min; diff -r 78116b88dbf5 -r 259c1f295a1e liboctave/numeric/lo-mappers.h --- a/liboctave/numeric/lo-mappers.h Sat Jul 13 10:28:57 2013 +0200 +++ b/liboctave/numeric/lo-mappers.h Sat Jul 13 08:08:15 2013 -0700 @@ -234,7 +234,7 @@ T X_NINT (T x) { - return (xisinf (x) || xisnan (x)) ? x : xfloor (x + 0.5); + return (xfinite (x) ? xfloor (x + 0.5) : x); } inline OCTAVE_API double D_NINT (double x) { return X_NINT (x); } diff -r 78116b88dbf5 -r 259c1f295a1e liboctave/numeric/oct-rand.cc --- a/liboctave/numeric/oct-rand.cc Sat Jul 13 10:28:57 2013 +0200 +++ b/liboctave/numeric/oct-rand.cc Sat Jul 13 08:08:15 2013 -0700 @@ -360,7 +360,7 @@ break; case poisson_dist: - if (a < 0.0 || xisnan (a) || xisinf (a)) + if (a < 0.0 || ! xfinite (a)) retval = octave_NaN; else { @@ -371,7 +371,7 @@ break; case gamma_dist: - if (a <= 0.0 || xisnan (a) || xisinf (a)) + if (a <= 0.0 || ! xfinite (a)) retval = octave_NaN; else F77_FUNC (dgengam, DGENGAM) (1.0, a, retval); @@ -443,7 +443,7 @@ break; case poisson_dist: - if (da < 0.0 || xisnan (da) || xisinf (da)) + if (da < 0.0 || ! xfinite (a)) dretval = octave_NaN; else { @@ -454,7 +454,7 @@ break; case gamma_dist: - if (da <= 0.0 || xisnan (da) || xisinf (da)) + if (da <= 0.0 || ! xfinite (a)) retval = octave_NaN; else F77_FUNC (dgengam, DGENGAM) (1.0, da, dretval); @@ -748,7 +748,7 @@ case poisson_dist: if (use_old_generators) { - if (a < 0.0 || xisnan (a) || xisinf (a)) + if (a < 0.0 || ! xfinite (a)) #define RAND_FUNC(x) x = octave_NaN; MAKE_RAND (len); #undef RAND_FUNC @@ -769,7 +769,7 @@ case gamma_dist: if (use_old_generators) { - if (a <= 0.0 || xisnan (a) || xisinf (a)) + if (a <= 0.0 || ! xfinite (a)) #define RAND_FUNC(x) x = octave_NaN; MAKE_RAND (len); #undef RAND_FUNC @@ -838,7 +838,7 @@ if (use_old_generators) { double da = a; - if (da < 0.0 || xisnan (da) || xisinf (da)) + if (da < 0.0 || ! xfinite (a)) #define RAND_FUNC(x) x = octave_NaN; MAKE_RAND (len); #undef RAND_FUNC @@ -860,7 +860,7 @@ if (use_old_generators) { double da = a; - if (da <= 0.0 || xisnan (da) || xisinf (da)) + if (da <= 0.0 || ! xfinite (a)) #define RAND_FUNC(x) x = octave_NaN; MAKE_RAND (len); #undef RAND_FUNC diff -r 78116b88dbf5 -r 259c1f295a1e liboctave/util/lo-utils.cc --- a/liboctave/util/lo-utils.cc Sat Jul 13 10:28:57 2013 +0200 +++ b/liboctave/util/lo-utils.cc Sat Jul 13 08:08:15 2013 -0700 @@ -55,8 +55,7 @@ bool xtoo_large_for_float (double x) { - return (! (xisnan (x) || xisinf (x)) - && fabs (x) > std::numeric_limits::max ()); + return (xfinite (x) && fabs (x) > std::numeric_limits::max ()); } bool xtoo_large_for_float (const Complex& x)