changeset 5387:5b00a8beb504

[project @ 2005-06-14 17:13:45 by jwe]
author jwe
date Tue, 14 Jun 2005 17:13:45 +0000
parents f64ec7b38586
children 7099eb9841b4
files liboctave/CMatrix.cc liboctave/CNDArray.cc liboctave/ChangeLog liboctave/dMatrix.cc liboctave/dNDArray.cc
diffstat 5 files changed, 28 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/CMatrix.cc
+++ b/liboctave/CMatrix.cc
@@ -2607,12 +2607,10 @@
 	double r_val = std::real (val);
 	double i_val = std::imag (val);
 
-	if ((! octave_is_NaN_or_NA (r_val)
-	     && ! xisinf (r_val)
-	     && (r_val > FLT_MAX || r_val < FLT_MIN))
-	    || (! octave_is_NaN_or_NA (i_val)
-		&& ! xisinf (i_val)
-		&& (i_val > FLT_MAX || i_val < FLT_MIN)))
+	if ((! (octave_is_NaN_or_NA (r_val) || xisinf (r_val))
+	     && fabs (r_val) > FLT_MAX)
+	    || (! (octave_is_NaN_or_NA (i_val) || xisinf (i_val))
+		&& fabs (i_val) > FLT_MAX))
 	  return true;
       }
 
--- a/liboctave/CNDArray.cc
+++ b/liboctave/CNDArray.cc
@@ -594,10 +594,10 @@
       double r_val = std::real (val);
       double i_val = std::imag (val);
 
-      if (r_val > FLT_MAX
-	  || i_val > FLT_MAX
-	  || r_val < FLT_MIN
-	  || i_val < FLT_MIN)
+      if ((! (octave_is_NaN_or_NA (r_val) || xisinf (r_val))
+	   && fabs (r_val) > FLT_MAX)
+	  || (! (octave_is_NaN_or_NA (i_val) || xisinf (i_val))
+	      && fabs (i_val) > FLT_MAX))
 	return true;
     }
 
--- a/liboctave/ChangeLog
+++ b/liboctave/ChangeLog
@@ -1,12 +1,24 @@
 2005-06-14  John W. Eaton  <jwe@octave.org>
 
-    * dMatrix.cc (Matrix::too_large_for_float): Special case Inf values too.
-    * CMatrix.cc (ComplexMatrix::too_large_for_float): Ditto.
+	* dMatrix.cc (Matrix::too_large_for_float): Only check if abs
+	value is greater than FLT_MAX.
+	* CMatrix.cc (ComplexMatrix::too_large_for_float): Ditto.
+	* dNDArray.cc (NDArray::too_large_for_float): Ditto.
+	* CNDArray.cc (ComplexNDArray::too_large_for_float): Ditto.
+
+	* dMatrix.cc (Matrix::too_large_for_float): Special case Inf
+	values too.
+	* CMatrix.cc (ComplexMatrix::too_large_for_float): Ditto.
+
+	* dNDArray.cc (NDArray::too_large_for_float): Likewise for NaN,
+	NA, Inf values.
+	* CNDArray.cc (ComplexNDArray::too_large_for_float): Ditto.
 
 2005-06-14  David Bateman  <dbateman@free.fr>
 
-    * dMatrix.cc (Matrix::too_large_for_float): Special case NaN and NA values.
-    * CMatrix.cc (ComplexMatrix::too_large_for_float): Ditto.
+	* dMatrix.cc (Matrix::too_large_for_float): Special case NaN and
+	NA values.
+	* CMatrix.cc (ComplexMatrix::too_large_for_float): Ditto.
 
 2005-06-02  John W. Eaton  <jwe@octave.org>
 
--- a/liboctave/dMatrix.cc
+++ b/liboctave/dMatrix.cc
@@ -2114,9 +2114,8 @@
     {
       double val = elem (i);
 
-      if (! octave_is_NaN_or_NA (val)
-	  && ! xisinf (val)
-	  && (val > FLT_MAX || val < FLT_MIN))
+      if (! (octave_is_NaN_or_NA (val) || xisinf (val))
+	  && fabs (val) > FLT_MAX)
 	return true;
     }
 
--- a/liboctave/dNDArray.cc
+++ b/liboctave/dNDArray.cc
@@ -589,7 +589,8 @@
     {
       double val = elem (i);
 
-      if (val > FLT_MAX || val < FLT_MIN)
+      if (! (octave_is_NaN_or_NA (val) || xisinf (val))
+	  && fabs (val) > FLT_MAX)
 	return true;
     }