| STXXL
    1.4-dev
    | 
#include <vector>#include <iterator>#include <algorithm>#include <stxxl/bits/verbose.h>#include <stxxl/bits/common/is_sorted.h>#include <stxxl/bits/common/utils.h>#include <stxxl/bits/parallel/merge.h>#include <stxxl/bits/parallel/losertree.h>#include <stxxl/bits/parallel/settings.h>#include <stxxl/bits/parallel/equally_split.h>#include <stxxl/bits/parallel/multiseq_selection.h>#include <stxxl/bits/parallel/timing.h>#include <stxxl/bits/parallel/tags.h>Go to the source code of this file.
| Namespaces | |
| stxxl | |
| STXXLlibrary namespace | |
| stxxl::parallel | |
| Macros | |
| #define | POS(i) seqs_begin[(i)].first | 
| #define | STOPS(i) seqs_begin[(i)].second | 
| #define | STXXL_DECISION(a, b, c, d) | 
| #define | STXXL_MERGE3CASE(a, b, c, c0, c1) | 
| #define | STXXL_MERGE4CASE(a, b, c, d, c0, c1, c2) | 
| #define | STXXL_NO_POINTER(T) | 
| #define | STXXL_NO_POINTER_UNGUARDED(T) | 
| Functions | |
| template<typename RandomAccessIteratorPair > | |
| std::iterator_traits< typename RandomAccessIteratorPair::first_type > ::difference_type | stxxl::parallel::iterpair_size (const RandomAccessIteratorPair &p) | 
| Length of a sequence described by a pair of iterators.  More... | |
| template<typename RandomAccessIteratorIterator , typename RandomAccessIterator3 , typename DiffType , typename Comparator > | |
| RandomAccessIterator3 | stxxl::parallel::multiway_merge_3_combined (RandomAccessIteratorIterator seqs_begin, RandomAccessIteratorIterator seqs_end, RandomAccessIterator3 target, DiffType length, Comparator comp) | 
| template<template< typename RAI, typename C > class Iterator, typename RandomAccessIteratorIterator , typename RandomAccessIterator3 , typename DiffType , typename Comparator > | |
| RandomAccessIterator3 | stxxl::parallel::multiway_merge_3_variant (RandomAccessIteratorIterator seqs_begin, RandomAccessIteratorIterator seqs_end, RandomAccessIterator3 target, DiffType length, Comparator comp) | 
| Highly efficient 3-way merging procedure.  More... | |
| template<typename RandomAccessIteratorIterator , typename RandomAccessIterator3 , typename DiffType , typename Comparator > | |
| RandomAccessIterator3 | stxxl::parallel::multiway_merge_4_combined (RandomAccessIteratorIterator seqs_begin, RandomAccessIteratorIterator seqs_end, RandomAccessIterator3 target, DiffType length, Comparator comp) | 
| template<template< typename RAI, typename C > class iterator, typename RandomAccessIteratorIterator , typename RandomAccessIterator3 , typename DiffType , typename Comparator > | |
| RandomAccessIterator3 | stxxl::parallel::multiway_merge_4_variant (RandomAccessIteratorIterator seqs_begin, RandomAccessIteratorIterator seqs_end, RandomAccessIterator3 target, DiffType length, Comparator comp) | 
| Highly efficient 4-way merging procedure.  More... | |
| template<bool Stable, typename RandomAccessIteratorIterator , typename RandomAccessIterator3 , typename DiffType , typename Comparator > | |
| RandomAccessIterator3 | stxxl::parallel::multiway_merge_bubble (RandomAccessIteratorIterator seqs_begin, RandomAccessIteratorIterator seqs_end, RandomAccessIterator3 target, DiffType length, Comparator comp) | 
| Basic multi-way merging procedure.  More... | |
| template<typename LoserTreeType , typename RandomAccessIteratorIterator , typename RandomAccessIterator3 , typename DiffType , typename Comparator > | |
| RandomAccessIterator3 | stxxl::parallel::multiway_merge_loser_tree (RandomAccessIteratorIterator seqs_begin, RandomAccessIteratorIterator seqs_end, RandomAccessIterator3 target, DiffType length, Comparator comp) | 
| Multi-way merging procedure for a high branching factor, guarded case.  More... | |
| template<bool Stable, typename RandomAccessIteratorIterator , typename RandomAccessIterator3 , typename DiffType , typename Comparator > | |
| RandomAccessIterator3 | stxxl::parallel::multiway_merge_loser_tree_combined (RandomAccessIteratorIterator seqs_begin, RandomAccessIteratorIterator seqs_end, RandomAccessIterator3 target, DiffType length, Comparator comp) | 
| template<bool Stable, typename RandomAccessIteratorIterator , typename RandomAccessIterator3 , typename DiffType , typename Comparator > | |
| RandomAccessIterator3 | stxxl::parallel::multiway_merge_loser_tree_sentinel (RandomAccessIteratorIterator seqs_begin, RandomAccessIteratorIterator seqs_end, RandomAccessIterator3 target, DiffType length, Comparator comp) | 
| template<typename LoserTreeType , typename RandomAccessIteratorIterator , typename RandomAccessIterator3 , typename DiffType , typename Comparator > | |
| RandomAccessIterator3 | stxxl::parallel::multiway_merge_loser_tree_unguarded (RandomAccessIteratorIterator seqs_begin, RandomAccessIteratorIterator seqs_end, RandomAccessIterator3 target, DiffType length, Comparator comp) | 
| Multi-way merging procedure for a high branching factor, unguarded case.  More... | |
| template<bool Stable, typename RandomAccessIteratorIterator , typename DiffType , typename Comparator > | |
| void | stxxl::parallel::parallel_multiway_merge_exact_splitting (const RandomAccessIteratorIterator &seqs_begin, const RandomAccessIteratorIterator &seqs_end, DiffType length, DiffType total_length, Comparator comp, std::vector< typename std::iterator_traits< RandomAccessIteratorIterator >::value_type > *chunks, const thread_index_t num_threads) | 
| Splitting method for parallel multi-way merge routine: use multisequence selection for exact splitting.  More... | |
| template<bool Stable, typename RandomAccessIteratorIterator , typename DiffType , typename Comparator > | |
| void | stxxl::parallel::parallel_multiway_merge_sampling_splitting (const RandomAccessIteratorIterator &seqs_begin, const RandomAccessIteratorIterator &seqs_end, DiffType length, DiffType total_length, Comparator comp, std::vector< typename std::iterator_traits< RandomAccessIteratorIterator >::value_type > *chunks, const thread_index_t num_threads) | 
| Splitting method for parallel multi-way merge routine: use sampling and binary search for in-exact splitting.  More... | |
| template<bool Stable, typename RandomAccessIteratorIterator , typename Comparator > | |
| std::iterator_traits< typename std::iterator_traits < RandomAccessIteratorIterator > ::value_type::first_type > ::difference_type | stxxl::parallel::prepare_unguarded (RandomAccessIteratorIterator seqs_begin, RandomAccessIteratorIterator seqs_end, Comparator comp, int &min_sequence) | 
| Prepare a set of sequences to be merged without a (end) guard.  More... | |
| template<typename RandomAccessIteratorIterator , typename Comparator > | |
| std::iterator_traits< typename std::iterator_traits < RandomAccessIteratorIterator > ::value_type::first_type > ::difference_type | stxxl::parallel::prepare_unguarded_sentinel (RandomAccessIteratorIterator seqs_begin, RandomAccessIteratorIterator seqs_end, Comparator comp) | 
| Prepare a set of sequences to be merged with a (end) guard (sentinel)  More... | |
| template<bool Stable, bool Sentinels, typename RandomAccessIteratorIterator , typename RandomAccessIterator3 , typename DiffType , typename Comparator > | |
| RandomAccessIterator3 | stxxl::parallel::sequential_multiway_merge (RandomAccessIteratorIterator seqs_begin, RandomAccessIteratorIterator seqs_end, RandomAccessIterator3 target, DiffType length, Comparator comp) | 
| Sequential multi-way merging switch.  More... | |
| #define POS | ( | i | ) | seqs_begin[(i)].first | 
Referenced by stxxl::parallel::multiway_merge_bubble().
| #define STOPS | ( | i | ) | seqs_begin[(i)].second | 
Referenced by stxxl::parallel::multiway_merge_bubble().
| #define STXXL_DECISION | ( | a, | |
| b, | |||
| c, | |||
| d | |||
| ) | 
Referenced by stxxl::parallel::multiway_merge_4_variant().
| #define STXXL_MERGE3CASE | ( | a, | |
| b, | |||
| c, | |||
| c0, | |||
| c1 | |||
| ) | 
Referenced by stxxl::parallel::multiway_merge_3_variant().
| #define STXXL_MERGE4CASE | ( | a, | |
| b, | |||
| c, | |||
| d, | |||
| c0, | |||
| c1, | |||
| c2 | |||
| ) | 
Referenced by stxxl::parallel::multiway_merge_4_variant().
| #define STXXL_NO_POINTER | ( | T | ) | 
Definition at line 1079 of file multiway_merge.h.
| #define STXXL_NO_POINTER_UNGUARDED | ( | T | ) | 
Definition at line 1106 of file multiway_merge.h.