STXXL  1.4.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity > Class Template Reference

Detailed Description

template<class ValueType, class CompareType, unsigned MaxArity>
class stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >

Loser tree from Knuth, "Sorting and Searching", Section 5.4.1.

Parameters
MaxAritymaximum arity of loser tree, has to be a power of two

Definition at line 38 of file pq_losertree.h.

+ Inheritance diagram for stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >:
+ Collaboration diagram for stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >:

Public Types

enum  { max_arity = MaxArity }
 
typedef CompareType comparator_type
 
typedef value_type Element
 
typedef ValueType value_type
 

Public Member Functions

 loser_tree ()
 
 ~loser_tree ()
 
void init ()
 
void insert_segment (Element *target, unsigned_type length)
 insert segment beginning at target More...
 
bool is_sentinel (const Element &a)
 
bool is_space_available () const
 
unsigned_type mem_cons () const
 
void multi_merge (Element *begin, Element *end)
 
void multi_merge (Element *, unsigned_type length)
 
bool not_sentinel (const Element &a)
 
unsigned_type size () const
 
void swap (loser_tree &obj)
 

Private Member Functions

void compactTree ()
 
void deallocate_segment (unsigned_type slot)
 
void doubleK ()
 
unsigned_type initWinner (unsigned_type root)
 
bool is_segment_empty (unsigned_type slot)
 
void multi_merge_k (Element *target, unsigned_type length)
 
void rebuildLoserTree ()
 
void update_on_insert (unsigned_type node, const Element &newKey, unsigned_type newIndex, Element *winnerKey, unsigned_type *winnerIndex, unsigned_type *mask)
 
- Private Member Functions inherited from stxxl::noncopyable
 noncopyable ()
 

Private Attributes

comparator_type cmp
 
Elementcurrent [MaxArity]
 
Elementcurrent_end [MaxArity]
 
internal_bounded_stack
< unsigned_type, MaxArity > 
free_slots
 
unsigned_type k
 
unsigned_type logK
 
unsigned_type mem_cons_
 
Elementsegment [MaxArity]
 
unsigned_type segment_size [MaxArity]
 
Element sentinel
 
unsigned_type size_
 

Member Typedef Documentation

template<class ValueType, class CompareType, unsigned MaxArity>
typedef CompareType stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::comparator_type

Definition at line 42 of file pq_losertree.h.

template<class ValueType, class CompareType, unsigned MaxArity>
typedef value_type stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::Element

Definition at line 43 of file pq_losertree.h.

template<class ValueType, class CompareType, unsigned MaxArity>
typedef ValueType stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::value_type

Definition at line 41 of file pq_losertree.h.

Member Enumeration Documentation

template<class ValueType, class CompareType, unsigned MaxArity>
anonymous enum
Enumerator
max_arity 

Definition at line 44 of file pq_losertree.h.

Constructor & Destructor Documentation

template<class ValueType , class CompareType , unsigned MaxArity>
stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::~loser_tree ( )

Definition at line 461 of file pq_losertree.h.

References STXXL_VERBOSE1, and STXXL_VERBOSE2.

Member Function Documentation

template<class ValueType , class CompareType , unsigned MaxArity>
void stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::compactTree ( )
private

Definition at line 359 of file pq_losertree.h.

References STXXL_VERBOSE3.

template<class ValueType , class CompareType , unsigned MaxArity>
void stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::deallocate_segment ( unsigned_type  slot)
private

Definition at line 480 of file pq_losertree.h.

References STXXL_VERBOSE2.

template<class ValueType , class CompareType , unsigned MaxArity>
void stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::doubleK ( )
private

Definition at line 329 of file pq_losertree.h.

References STXXL_VERBOSE3.

template<class ValueType , class CompareType , unsigned MaxArity>
void stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::init ( )
template<class ValueType, class CompareType, unsigned MaxArity>
unsigned_type stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::initWinner ( unsigned_type  root)
private
template<class ValueType , class CompareType , unsigned MaxArity>
void stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::insert_segment ( Element target,
unsigned_type  length 
)

insert segment beginning at target

Definition at line 416 of file pq_losertree.h.

References STXXL_VERBOSE2.

template<class ValueType , class CompareType , unsigned MaxArity>
bool stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::is_segment_empty ( unsigned_type  slot)
inlineprivate

Definition at line 681 of file pq_losertree.h.

template<class ValueType, class CompareType, unsigned MaxArity>
bool stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::is_sentinel ( const Element a)
inline

Definition at line 158 of file pq_losertree.h.

template<class ValueType, class CompareType, unsigned MaxArity>
bool stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::is_space_available ( ) const
inline

Definition at line 198 of file pq_losertree.h.

template<class ValueType, class CompareType, unsigned MaxArity>
unsigned_type stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::mem_cons ( ) const
inline

Definition at line 196 of file pq_losertree.h.

template<class ValueType, class CompareType, unsigned MaxArity>
void stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::multi_merge ( Element begin,
Element end 
)
inline

Definition at line 190 of file pq_losertree.h.

template<class ValueType , class CompareType , unsigned MaxArity>
void stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::multi_merge ( Element target,
unsigned_type  length 
)
template<class ValueType, class CompareType, unsigned MaxArity>
void stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::multi_merge_k ( Element target,
unsigned_type  length 
)
private
template<class ValueType, class CompareType, unsigned MaxArity>
bool stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::not_sentinel ( const Element a)
inline

Definition at line 162 of file pq_losertree.h.

template<class ValueType , class CompareType , unsigned MaxArity>
void stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::rebuildLoserTree ( )
private

Definition at line 236 of file pq_losertree.h.

template<class ValueType, class CompareType, unsigned MaxArity>
unsigned_type stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::size ( ) const
inline

Definition at line 206 of file pq_losertree.h.

template<class ValueType, class CompareType, unsigned MaxArity>
void stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::swap ( loser_tree< ValueType, CompareType, MaxArity > &  obj)
inline

Definition at line 172 of file pq_losertree.h.

template<class ValueType, class CompareType, unsigned MaxArity>
void stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::update_on_insert ( unsigned_type  node,
const Element newKey,
unsigned_type  newIndex,
Element winnerKey,
unsigned_type winnerIndex,
unsigned_type mask 
)
private

Member Data Documentation

template<class ValueType, class CompareType, unsigned MaxArity>
comparator_type stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::cmp
private
template<class ValueType, class CompareType, unsigned MaxArity>
Element* stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::current[MaxArity]
private
template<class ValueType, class CompareType, unsigned MaxArity>
Element* stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::current_end[MaxArity]
private
template<class ValueType, class CompareType, unsigned MaxArity>
internal_bounded_stack<unsigned_type, MaxArity> stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::free_slots
private
template<class ValueType, class CompareType, unsigned MaxArity>
unsigned_type stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::k
private
template<class ValueType, class CompareType, unsigned MaxArity>
unsigned_type stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::logK
private
template<class ValueType, class CompareType, unsigned MaxArity>
unsigned_type stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::mem_cons_
private
template<class ValueType, class CompareType, unsigned MaxArity>
Element* stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::segment[MaxArity]
private
template<class ValueType, class CompareType, unsigned MaxArity>
unsigned_type stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::segment_size[MaxArity]
private
template<class ValueType, class CompareType, unsigned MaxArity>
Element stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::sentinel
private
template<class ValueType, class CompareType, unsigned MaxArity>
unsigned_type stxxl::priority_queue_local::loser_tree< ValueType, CompareType, MaxArity >::size_
private

The documentation for this class was generated from the following file: