diff liboctave/lo-mappers.cc @ 4469:53ee020af847

[project @ 2003-07-26 03:45:10 by jwe]
author jwe
date Sat, 26 Jul 2003 03:45:11 +0000
parents efd8cd91857e
children 55211d6748c4
line wrap: on
line diff
--- a/liboctave/lo-mappers.cc	Tue Jul 15 19:18:20 2003 +0000
+++ b/liboctave/lo-mappers.cc	Sat Jul 26 03:45:11 2003 +0000
@@ -133,13 +133,39 @@
 double
 xmin (double x, double y)
 {
-  return x < y ? x : (xisnan (x) ? x : y);
+  if (x < y)
+    return x;
+
+  if (y <= x)
+    return y;
+
+  if (octave_is_NaN_or_NA (x) && ! octave_is_NaN_or_NA (y))
+    return y;
+  else if (octave_is_NaN_or_NA (y) && ! octave_is_NaN_or_NA (x))
+    return x;
+  else if (octave_is_NA (x) || octave_is_NA (y))
+    return octave_NA;
+  else
+    return octave_NaN;
 }
 
 double
 xmax (double x, double y)
 {
-  return x > y ? x : (xisnan (x) ? x : y);
+  if (x > y)
+    return x;
+
+  if (y >= x)
+    return y;
+
+  if (octave_is_NaN_or_NA (x) && ! octave_is_NaN_or_NA (y))
+    return y;
+  else if (octave_is_NaN_or_NA (y) && ! octave_is_NaN_or_NA (x))
+    return x;
+  else if (octave_is_NA (x) || octave_is_NA (y))
+    return octave_NA;
+  else
+    return octave_NaN;
 }
 
 // complex -> complex mappers.