Mercurial > hg > octave-lyh
diff liboctave/dMatrix.cc @ 4634:79fe96966ca0
[project @ 2003-11-19 21:22:39 by jwe]
author | jwe |
---|---|
date | Wed, 19 Nov 2003 21:23:19 +0000 |
parents | 77566be8b9e9 |
children | 334a27c8f453 |
line wrap: on
line diff
--- a/liboctave/dMatrix.cc +++ b/liboctave/dMatrix.cc @@ -2033,22 +2033,19 @@ bool Matrix::any_element_is_negative (bool neg_zero) const { - int nr = rows (); - int nc = cols (); + int nel = nelem (); if (neg_zero) { - for (int j = 0; j < nc; j++) - for (int i = 0; i < nr; i++) - if (lo_ieee_signbit (elem (i, j))) - return true; + for (int i = 0; i < nel; i++) + if (lo_ieee_signbit (elem (i))) + return true; } else { - for (int j = 0; j < nc; j++) - for (int i = 0; i < nr; i++) - if (elem (i, j) < 0) - return true; + for (int i = 0; i < nel; i++) + if (elem (i) < 0) + return true; } return false; @@ -2058,34 +2055,31 @@ bool Matrix::any_element_is_inf_or_nan (void) const { - int nr = rows (); - int nc = cols (); - - for (int j = 0; j < nc; j++) - for (int i = 0; i < nr; i++) - { - double val = elem (i, j); - if (xisinf (val) || xisnan (val)) - return 1; - } - return 0; + int nel = nelem (); + + for (int i = 0; i < nel; i++) + { + double val = elem (i); + if (xisinf (val) || xisnan (val)) + return true; + } + + return false; } bool Matrix::all_elements_are_int_or_inf_or_nan (void) const { - int nr = rows (); - int nc = cols (); - - for (int j = 0; j < nc; j++) - for (int i = 0; i < nr; i++) - { - double val = elem (i, j); - if (xisnan (val) || D_NINT (val) == val) - continue; - else - return false; - } + int nel = nelem (); + + for (int i = 0; i < nel; i++) + { + double val = elem (i); + if (xisnan (val) || D_NINT (val) == val) + continue; + else + return false; + } return true; } @@ -2096,31 +2090,29 @@ bool Matrix::all_integers (double& max_val, double& min_val) const { - int nr = rows (); - int nc = cols (); - - if (nr > 0 && nc > 0) + int nel = nelem (); + + if (nel > 0) { - max_val = elem (0, 0); - min_val = elem (0, 0); + max_val = elem (0); + min_val = elem (0); } else return false; - for (int j = 0; j < nc; j++) - for (int i = 0; i < nr; i++) - { - double val = elem (i, j); - - if (val > max_val) - max_val = val; - - if (val < min_val) - min_val = val; - - if (D_NINT (val) != val) - return false; - } + for (int i = 0; i < nel; i++) + { + double val = elem (i); + + if (val > max_val) + max_val = val; + + if (val < min_val) + min_val = val; + + if (D_NINT (val) != val) + return false; + } return true; } @@ -2128,17 +2120,15 @@ bool Matrix::too_large_for_float (void) const { - int nr = rows (); - int nc = cols (); - - for (int j = 0; j < nc; j++) - for (int i = 0; i < nr; i++) - { - double val = elem (i, j); - - if (val > FLT_MAX || val < FLT_MIN) - return true; - } + int nel = nelem (); + + for (int i = 0; i < nel; i++) + { + double val = elem (i); + + if (val > FLT_MAX || val < FLT_MIN) + return true; + } return false; }