|
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().
1.7.6.1