Mercurial > hg > octave-lyh
diff liboctave/oct-sort.h @ 8820:89b95972e178
fix previously introduced problem in octave_sort, improve design
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Fri, 20 Feb 2009 07:08:09 +0100 |
parents | de16ebeef93d |
children | eb63fbe60fab |
line wrap: on
line diff
--- a/liboctave/oct-sort.h +++ b/liboctave/oct-sort.h @@ -171,6 +171,20 @@ struct MergeState { + MergeState (void) + : a (0), ia (0), alloced (0) + { reset (); } + + ~MergeState (void) + { delete [] a; delete [] ia; } + + void reset (void) + { min_gallop = MIN_GALLOP; n = 0; } + + void getmem (octave_idx_type need); + + void getmemi (octave_idx_type need); + // This controls when we get *into* galloping mode. It's // initialized to MIN_GALLOP. merge_lo and merge_hi tend to nudge // it higher for random data, and lower for highly structured @@ -219,14 +233,6 @@ octave_idx_type gallop_right (T key, T *a, octave_idx_type n, octave_idx_type hint, Comp comp); - void merge_init (void); - - void merge_freemem (void); - - int merge_getmem (octave_idx_type need); - - int merge_getmemi (octave_idx_type need); - template <class Comp> int merge_lo (T *pa, octave_idx_type na, T *pb, octave_idx_type nb,