Mercurial > hg > octave-nkf
diff liboctave/Range.cc @ 8721:e9cb742df9eb
imported patch sort3.diff
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Wed, 11 Feb 2009 15:25:53 +0100 |
parents | 0131fa223dbc |
children | d2b06871afac |
line wrap: on
line diff
--- a/liboctave/Range.cc +++ b/liboctave/Range.cc @@ -223,8 +223,6 @@ retval.sort_internal (true); else if (mode == DESCENDING) retval.sort_internal (false); - else - abort (); } else if (dim != 0) (*current_liboctave_error_handler) ("Range::sort: invalid dimension"); @@ -244,8 +242,6 @@ retval.sort_internal (sidx, true); else if (mode == DESCENDING) retval.sort_internal (sidx, false); - else - abort (); } else if (dim != 0) (*current_liboctave_error_handler) ("Range::sort: invalid dimension"); @@ -253,6 +249,17 @@ return retval; } +sortmode +Range::is_sorted (sortmode mode) const +{ + if (rng_nelem > 1 && rng_inc < 0) + mode = (mode == ASCENDING) ? UNSORTED : DESCENDING; + else if (rng_nelem > 1 && rng_inc > 0) + mode = (mode == DESCENDING) ? UNSORTED : ASCENDING; + else + mode = mode ? mode : ASCENDING; +} + std::ostream& operator << (std::ostream& os, const Range& a) {