Mercurial > octave
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.