Stxxl
1.4.0
|
External merger, based on the loser tree data structure. ! More...
#include <pq_ext_merger.h>
External merger, based on the loser tree data structure. !
!
Arity_ | maximum arity of merger, does not need to be a power of 2 |
Definition at line 127 of file pq_ext_merger.h.
typedef AllocStr_ stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::alloc_strategy |
Definition at line 135 of file pq_ext_merger.h.
typedef block_type::bid_type stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::bid_type |
Definition at line 132 of file pq_ext_merger.h.
typedef BlockType_ stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::block_type |
Definition at line 131 of file pq_ext_merger.h.
typedef Cmp_ stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::comparator_type |
Definition at line 134 of file pq_ext_merger.h.
typedef read_write_pool<block_type> stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::pool_type |
Definition at line 136 of file pq_ext_merger.h.
typedef stxxl::uint64 stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::size_type |
Definition at line 130 of file pq_ext_merger.h.
typedef block_type::value_type stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::value_type |
Definition at line 133 of file pq_ext_merger.h.
anonymous enum |
Definition at line 139 of file pq_ext_merger.h.
stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::ext_merger | ( | ) | [inline] |
Definition at line 288 of file pq_ext_merger.h.
References init().
stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::ext_merger | ( | pool_type * | pool_ | ) | [inline] |
Definition at line 294 of file pq_ext_merger.h.
References init().
virtual stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::~ext_merger | ( | ) | [inline, virtual] |
Definition at line 301 of file pq_ext_merger.h.
References stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::block.
void stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::compact_tree | ( | ) | [inline, private] |
Definition at line 487 of file pq_ext_merger.h.
References stxxl::priority_queue_local::internal_bounded_stack< Tp_, max_size_ >::clear(), stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::make_inf(), stxxl::priority_queue_local::internal_bounded_stack< Tp_, max_size_ >::push(), stxxl::priority_queue_local::internal_bounded_stack< Tp_, max_size_ >::size(), and stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::swap().
void stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::deallocate_segment | ( | unsigned_type | slot | ) | [inline, protected] |
Definition at line 1080 of file pq_ext_merger.h.
References stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::allocated, stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::make_inf(), and stxxl::priority_queue_local::internal_bounded_stack< Tp_, max_size_ >::push().
void stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::double_k | ( | ) | [inline, private] |
Definition at line 458 of file pq_ext_merger.h.
References stxxl::priority_queue_local::internal_bounded_stack< Tp_, max_size_ >::empty(), stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::make_inf(), stxxl::priority_queue_local::internal_bounded_stack< Tp_, max_size_ >::push(), and stxxl::priority_queue_local::internal_bounded_stack< Tp_, max_size_ >::size().
void stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::init | ( | ) | [inline, private] |
Definition at line 317 of file pq_ext_merger.h.
References stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::block, stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::make_inf(), stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::merger, and stxxl::priority_queue_local::internal_bounded_stack< Tp_, max_size_ >::push().
void stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::insert_segment | ( | Merger & | another_merger, |
size_type | segment_size | ||
) | [inline] |
Definition at line 972 of file pq_ext_merger.h.
References stxxl::priority_queue_local::internal_bounded_stack< Tp_, max_size_ >::empty(), stxxl::block_manager::new_blocks(), stxxl::priority_queue_local::internal_bounded_stack< Tp_, max_size_ >::pop(), stxxl::read_write_pool< BlockType >::size_write(), stxxl::read_write_pool< BlockType >::steal(), stxxl::priority_queue_local::internal_bounded_stack< Tp_, max_size_ >::top(), and stxxl::read_write_pool< BlockType >::write().
Referenced by main(), and stxxl::priority_queue< Config_ >::make_space_available().
void stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::insert_segment | ( | std::list< bid_type > * | bidlist, |
block_type * | first_block, | ||
unsigned_type | first_size, | ||
unsigned_type | slot | ||
) | [inline, protected] |
bidlist | list of blocks to insert |
first_block | the first block of the sequence, before bidlist |
first_size | number of elements in the first block |
slot | slot to insert into |
Definition at line 1058 of file pq_ext_merger.h.
References stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::allocated, stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::bids, stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::block, stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::current, and std::swap().
bool stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::is_segment_allocated | ( | unsigned_type | slot | ) | const [inline, protected] |
Definition at line 1099 of file pq_ext_merger.h.
References stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::allocated.
bool stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::is_segment_empty | ( | unsigned_type | slot | ) | const [inline, protected] |
Definition at line 1092 of file pq_ext_merger.h.
bool stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::is_sentinel | ( | const value_type & | a | ) | const [inline, protected] |
Definition at line 144 of file pq_ext_merger.h.
bool stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::is_space_available | ( | ) | const [inline] |
Definition at line 963 of file pq_ext_merger.h.
References stxxl::priority_queue_local::internal_bounded_stack< Tp_, max_size_ >::empty().
unsigned_type stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::mem_cons | ( | ) | const [inline] |
Definition at line 550 of file pq_ext_merger.h.
void stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::multi_merge | ( | OutputIterator | begin, |
OutputIterator | end | ||
) | [inline] |
Definition at line 561 of file pq_ext_merger.h.
References stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::bids, stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::block, stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::current, stxxl::priority_queue_local::internal_bounded_stack< Tp_, max_size_ >::empty(), stxxl::read_write_pool< BlockType >::hint(), stxxl::is_sorted(), stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sequence_state::make_inf(), stxxl::priority_queue_local::merge3_iterator(), stxxl::priority_queue_local::merge4_iterator(), stxxl::priority_queue_local::merge_iterator(), stxxl::read_write_pool< BlockType >::read(), stxxl::priority_queue_local::internal_bounded_stack< Tp_, max_size_ >::size(), stxxl::STXXL_MIN(), and stxxl::request_interface::wait().
Referenced by main().
bool stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::not_sentinel | ( | const value_type & | a | ) | const [inline, protected] |
Definition at line 149 of file pq_ext_merger.h.
void stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::rebuild_loser_tree | ( | ) | [inline, private] |
Definition at line 355 of file pq_ext_merger.h.
void stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::set_pool | ( | pool_type * | pool_ | ) | [inline] |
Definition at line 311 of file pq_ext_merger.h.
Referenced by stxxl::priority_queue< Config_ >::init(), and stxxl::priority_queue< Config_ >::make_space_available().
size_type stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::size | ( | ) | const [inline] |
Definition at line 1050 of file pq_ext_merger.h.
Referenced by main().
comparator_type stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::cmp [protected] |
Definition at line 142 of file pq_ext_merger.h.
internal_bounded_stack<unsigned_type, arity> stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::free_segments [protected] |
Definition at line 270 of file pq_ext_merger.h.
unsigned_type stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::k [protected] |
Definition at line 264 of file pq_ext_merger.h.
unsigned_type stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::log_k [protected] |
Definition at line 263 of file pq_ext_merger.h.
pool_type* stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::pool [protected] |
Definition at line 283 of file pq_ext_merger.h.
block_type* stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::sentinel_block [protected] |
Definition at line 285 of file pq_ext_merger.h.
size_type stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::size_ [protected] |
Definition at line 262 of file pq_ext_merger.h.
sequence_state stxxl::priority_queue_local::ext_merger< BlockType_, Cmp_, Arity_, AllocStr_ >::states[arity_bound] [protected] |
Definition at line 281 of file pq_ext_merger.h.