Stxxl
1.4.0
|
Go to the source code of this file.
Namespaces | |
namespace | stxxl |
| |
namespace | stxxl::priority_queue_local |
Defines | |
#define | Merge3Case(a, b, c) |
#define | StartMerge4(a, b, c, d) |
#define | Merge4Case(a, b, c, d) |
Functions | |
template<class InputIterator , class OutputIterator , class Cmp_ > | |
void | stxxl::priority_queue_local::merge_iterator (InputIterator &source0, InputIterator &source1, OutputIterator target, unsigned_type length, Cmp_ &cmp) |
template<class InputIterator , class OutputIterator , class Cmp_ > | |
void | stxxl::priority_queue_local::merge3_iterator (InputIterator &source0, InputIterator &source1, InputIterator &source2, OutputIterator target, unsigned_type length, Cmp_ &cmp) |
template<class InputIterator , class OutputIterator , class Cmp_ > | |
void | stxxl::priority_queue_local::merge4_iterator (InputIterator &source0, InputIterator &source1, InputIterator &source2, InputIterator &source3, OutputIterator target, unsigned_type length, Cmp_ &cmp) |
#define Merge3Case | ( | a, | |
b, | |||
c | |||
) |
s ## a ## b ## c : \ if (target == done) \ return; \ *target = *source ## a; \ ++target; \ ++source ## a; \ if (cmp(*source ## b, *source ## a)) \ goto s ## a ## b ## c; \ if (cmp(*source ## c, *source ## a)) \ goto s ## b ## a ## c; \ goto s ## b ## c ## a;
Referenced by stxxl::priority_queue_local::merge3_iterator().
#define Merge4Case | ( | a, | |
b, | |||
c, | |||
d | |||
) |
s ## a ## b ## c ## d : \ if (target == done) \ return; \ *target = *source ## a; \ ++target; \ ++source ## a; \ if (cmp(*source ## c, *source ## a)) \ { \ if (cmp(*source ## b, *source ## a)) \ goto s ## a ## b ## c ## d; \ else \ goto s ## b ## a ## c ## d; \ } \ else \ { \ if (cmp(*source ## d, *source ## a)) \ goto s ## b ## c ## a ## d; \ else \ goto s ## b ## c ## d ## a; \ }
Referenced by stxxl::priority_queue_local::merge4_iterator().
#define StartMerge4 | ( | a, | |
b, | |||
c, | |||
d | |||
) |
if ((!cmp(*source ## a, *source ## b)) && (!cmp(*source ## b, *source ## c)) && (!cmp(*source ## c, *source ## d))) \ goto s ## a ## b ## c ## d;
Referenced by stxxl::priority_queue_local::merge4_iterator().