comparison 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
comparison
equal deleted inserted replaced
8720:dda421a1f1e6 8721:e9cb742df9eb
221 { 221 {
222 if (mode == ASCENDING) 222 if (mode == ASCENDING)
223 retval.sort_internal (true); 223 retval.sort_internal (true);
224 else if (mode == DESCENDING) 224 else if (mode == DESCENDING)
225 retval.sort_internal (false); 225 retval.sort_internal (false);
226 else
227 abort ();
228 } 226 }
229 else if (dim != 0) 227 else if (dim != 0)
230 (*current_liboctave_error_handler) ("Range::sort: invalid dimension"); 228 (*current_liboctave_error_handler) ("Range::sort: invalid dimension");
231 229
232 return retval; 230 return retval;
242 { 240 {
243 if (mode == ASCENDING) 241 if (mode == ASCENDING)
244 retval.sort_internal (sidx, true); 242 retval.sort_internal (sidx, true);
245 else if (mode == DESCENDING) 243 else if (mode == DESCENDING)
246 retval.sort_internal (sidx, false); 244 retval.sort_internal (sidx, false);
247 else
248 abort ();
249 } 245 }
250 else if (dim != 0) 246 else if (dim != 0)
251 (*current_liboctave_error_handler) ("Range::sort: invalid dimension"); 247 (*current_liboctave_error_handler) ("Range::sort: invalid dimension");
252 248
253 return retval; 249 return retval;
250 }
251
252 sortmode
253 Range::is_sorted (sortmode mode) const
254 {
255 if (rng_nelem > 1 && rng_inc < 0)
256 mode = (mode == ASCENDING) ? UNSORTED : DESCENDING;
257 else if (rng_nelem > 1 && rng_inc > 0)
258 mode = (mode == DESCENDING) ? UNSORTED : ASCENDING;
259 else
260 mode = mode ? mode : ASCENDING;
254 } 261 }
255 262
256 std::ostream& 263 std::ostream&
257 operator << (std::ostream& os, const Range& a) 264 operator << (std::ostream& os, const Range& a)
258 { 265 {