diff liboctave/dMatrix.cc @ 4469:53ee020af847

[project @ 2003-07-26 03:45:10 by jwe]
author jwe
date Sat, 26 Jul 2003 03:45:11 +0000
parents c4bde1d5eb98
children 9ec494b3eb5f
line wrap: on
line diff
--- a/liboctave/dMatrix.cc	Tue Jul 15 19:18:20 2003 +0000
+++ b/liboctave/dMatrix.cc	Sat Jul 26 03:45:11 2003 +0000
@@ -2235,33 +2235,33 @@
 
       for (int i = 0; i < nr; i++)
         {
-	  int idx_j = 0;
-
-	  double tmp_min = elem (i, idx_j);
-
-	  if (xisnan (tmp_min))
-	    idx_j = -1;
-	  else
+	  int idx_j;
+
+	  double tmp_min = octave_NaN;
+
+	  for (idx_j = 0; idx_j < nc; idx_j++)
 	    {
-	      for (int j = 1; j < nc; j++)
+	      tmp_min = elem (i, idx_j);
+
+	      if (! octave_is_NaN_or_NA (tmp_min))
+		break;
+	    }
+
+	  for (int j = idx_j+1; j < nc; j++)
+	    {
+	      double tmp = elem (i, j);
+
+	      if (octave_is_NaN_or_NA (tmp))
+		continue;
+	      else if (tmp < tmp_min)
 		{
-		  double tmp = elem (i, j);
-
-		  if (xisnan (tmp))
-		    {
-		      idx_j = -1;
-		      break;
-		    }
-		  else if (tmp < tmp_min)
-		    {
-		      idx_j = j;
-		      tmp_min = tmp;
-		    }
+		  idx_j = j;
+		  tmp_min = tmp;
 		}
 	    }
 
-	  result.elem (i) = (idx_j < 0) ? octave_NaN : tmp_min;
-	  index.elem (i) = idx_j;
+	  result.elem (i) = tmp_min;
+	  index.elem (i) = octave_is_NaN_or_NA (tmp_min) ? 0 : idx_j;
         }
     }
 
@@ -2290,33 +2290,33 @@
 
       for (int i = 0; i < nr; i++)
         {
-	  int idx_j = 0;
-
-	  double tmp_max = elem (i, idx_j);
-
-	  if (xisnan (tmp_max))
-	    idx_j = -1;
-	  else
+	  int idx_j;
+
+	  double tmp_max = octave_NaN;
+
+	  for (idx_j = 0; idx_j < nc; idx_j++)
 	    {
-	      for (int j = 1; j < nc; j++)
+	      tmp_max = elem (i, idx_j);
+
+	      if (! octave_is_NaN_or_NA (tmp_max))
+		break;
+	    }
+
+	  for (int j = idx_j+1; j < nc; j++)
+	    {
+	      double tmp = elem (i, j);
+
+	      if (octave_is_NaN_or_NA (tmp))
+		continue;
+	      else if (tmp > tmp_max)
 		{
-		  double tmp = elem (i, j);
-
-		  if (xisnan (tmp))
-		    {
-		      idx_j = -1;
-		      break;
-		    }
-		  else if (tmp > tmp_max)
-		    {
-		      idx_j = j;
-		      tmp_max = tmp;
-		    }
+		  idx_j = j;
+		  tmp_max = tmp;
 		}
 	    }
 
-	  result.elem (i) = (idx_j < 0) ? octave_NaN : tmp_max;
-	  index.elem (i) = idx_j;
+	  result.elem (i) = tmp_max;
+	  index.elem (i) = octave_is_NaN_or_NA (tmp_max) ? 0 : idx_j;
         }
     }
 
@@ -2345,33 +2345,33 @@
 
       for (int j = 0; j < nc; j++)
         {
-	  int idx_i = 0;
-
-	  double tmp_min = elem (idx_i, j);
-
-	  if (xisnan (tmp_min))
-	    idx_i = -1;
-	  else
+	  int idx_i;
+
+	  double tmp_min = octave_NaN;
+
+	  for (idx_i = 0; idx_i < nr; idx_i++)
 	    {
-	      for (int i = 1; i < nr; i++)
+	      tmp_min = elem (idx_i, j);
+
+	      if (! octave_is_NaN_or_NA (tmp_min))
+		break;
+	    }
+
+	  for (int i = idx_i+1; i < nr; i++)
+	    {
+	      double tmp = elem (i, j);
+
+	      if (octave_is_NaN_or_NA (tmp))
+		continue;
+	      else if (tmp < tmp_min)
 		{
-		  double tmp = elem (i, j);
-
-		  if (xisnan (tmp))
-		    {
-		      idx_i = -1;
-		      break;
-		    }
-		  else if (tmp < tmp_min)
-		    {
-		      idx_i = i;
-		      tmp_min = tmp;
-		    }
+		  idx_i = i;
+		  tmp_min = tmp;
 		}
 	    }
 
-	  result.elem (j) = (idx_i < 0) ? octave_NaN : tmp_min;
-	  index.elem (j) = idx_i;
+	  result.elem (j) = tmp_min;
+	  index.elem (j) = octave_is_NaN_or_NA (tmp_min) ? 0 : idx_i;
         }
     }
 
@@ -2400,33 +2400,33 @@
 
       for (int j = 0; j < nc; j++)
         {
-	  int idx_i = 0;
-
-	  double tmp_max = elem (idx_i, j);
-
-	  if (xisnan (tmp_max))
-	    idx_i = -1;
-	  else
+	  int idx_i;
+
+	  double tmp_max = octave_NaN;
+
+	  for (idx_i = 0; idx_i < nr; idx_i++)
 	    {
-	      for (int i = 1; i < nr; i++)
+	      tmp_max = elem (idx_i, j);
+
+	      if (! octave_is_NaN_or_NA (tmp_max))
+		break;
+	    }
+
+	  for (int i = idx_i+1; i < nr; i++)
+	    {
+	      double tmp = elem (i, j);
+
+	      if (octave_is_NaN_or_NA (tmp))
+		continue;
+	      else if (tmp > tmp_max)
 		{
-		  double tmp = elem (i, j);
-
-		  if (xisnan (tmp))
-		    {
-		      idx_i = -1;
-		      break;
-		    }
-		  else if (tmp > tmp_max)
-		    {
-		      idx_i = i;
-		      tmp_max = tmp;
-		    }
+		  idx_i = i;
+		  tmp_max = tmp;
 		}
 	    }
 
-	  result.elem (j) = (idx_i < 0) ? octave_NaN : tmp_max;
-	  index.elem (j) = idx_i;
+	  result.elem (j) = tmp_max;
+	  index.elem (j) = octave_is_NaN_or_NA (tmp_max) ? 0 : idx_i;
         }
     }