changeset 5385:5f48f2956e37

[project @ 2005-06-14 16:04:03 by jwe]
author jwe
date Tue, 14 Jun 2005 16:04:03 +0000
parents 8df6524b9500
children f64ec7b38586
files liboctave/CMatrix.cc liboctave/ChangeLog liboctave/dMatrix.cc
diffstat 3 files changed, 10 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/CMatrix.cc
+++ b/liboctave/CMatrix.cc
@@ -2607,10 +2607,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)
+	     && (r_val > FLT_MAX || r_val < FLT_MIN))
+	    || (! octave_is_NaN_or_NA (i_val)
+		&& (i_val > FLT_MAX || i_val < FLT_MIN)))
 	  return true;
       }
 
--- a/liboctave/ChangeLog
+++ b/liboctave/ChangeLog
@@ -1,3 +1,8 @@
+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.
+
 2005-06-02  John W. Eaton  <jwe@octave.org>
 
 	* Array.cc (assignN): Try harder to correctly resize previously
--- a/liboctave/dMatrix.cc
+++ b/liboctave/dMatrix.cc
@@ -2114,7 +2114,7 @@
     {
       double val = elem (i);
 
-      if (val > FLT_MAX || val < FLT_MIN)
+      if (! octave_is_NaN_or_NA (val) && (val > FLT_MAX || val < FLT_MIN))
 	return true;
     }