tlx
Loading...
Searching...
No Matches
LoserTreeCopyUnguardedBase< ValueType, Comparator > Class Template Reference

Unguarded loser tree, copying the whole element into the tree structure. More...

#include <loser_tree.hpp>

Inheritance diagram for LoserTreeCopyUnguardedBase< ValueType, Comparator >:
LoserTreeCopyUnguarded< Stable, ValueType, Comparator >

Classes

struct  Loser
 Internal representation of a loser tree player/node. More...

Public Types

using Source
 size of counters and array indexes

Public Member Functions

 LoserTreeCopyUnguardedBase (Source k, const ValueType &sentinel, const Comparator &cmp=Comparator())
Source min_source ()
 return the index of the player with the smallest element.
void insert_start (const ValueType *keyp, const Source &source, bool sup)
Source init_winner (const Source &root)
void init ()

Static Public Attributes

static constexpr Source invalid_
 sentinel for invalid or finished Sources

Protected Attributes

Source ik_
 number of nodes
Source k_
 log_2(ik) next greater power of 2
SimpleVector< Loserlosers_
 array containing loser tree nodes
Comparator cmp_
 the comparator object

Detailed Description

template<typename ValueType, typename Comparator = std::less<ValueType>>
class tlx::LoserTreeCopyUnguardedBase< ValueType, Comparator >

Unguarded loser tree, copying the whole element into the tree structure.

This is a base class for the LoserTreeCopyUnguarded<true> and <false> classes.

No guarding is done, therefore not a single input sequence must run empty. This is a very fast variant.

Definition at line 529 of file loser_tree.hpp.

Member Typedef Documentation

◆ Source

template<typename ValueType, typename Comparator = std::less<ValueType>>
using Source

size of counters and array indexes

Definition at line 533 of file loser_tree.hpp.

Constructor & Destructor Documentation

◆ LoserTreeCopyUnguardedBase()

template<typename ValueType, typename Comparator = std::less<ValueType>>
LoserTreeCopyUnguardedBase ( Source k,
const ValueType & sentinel,
const Comparator & cmp = Comparator() )
inline

Definition at line 557 of file loser_tree.hpp.

Member Function Documentation

◆ init()

template<typename ValueType, typename Comparator = std::less<ValueType>>
void init ( )
inline

Definition at line 603 of file loser_tree.hpp.

◆ init_winner()

template<typename ValueType, typename Comparator = std::less<ValueType>>
Source init_winner ( const Source & root)
inline

Definition at line 585 of file loser_tree.hpp.

◆ insert_start()

template<typename ValueType, typename Comparator = std::less<ValueType>>
void insert_start ( const ValueType * keyp,
const Source & source,
bool sup )
inline

Definition at line 574 of file loser_tree.hpp.

◆ min_source()

template<typename ValueType, typename Comparator = std::less<ValueType>>
Source min_source ( )
inline

return the index of the player with the smallest element.

Definition at line 568 of file loser_tree.hpp.

Member Data Documentation

◆ cmp_

template<typename ValueType, typename Comparator = std::less<ValueType>>
Comparator cmp_
protected

the comparator object

Definition at line 554 of file loser_tree.hpp.

◆ ik_

template<typename ValueType, typename Comparator = std::less<ValueType>>
Source ik_
protected

number of nodes

Definition at line 548 of file loser_tree.hpp.

◆ invalid_

template<typename ValueType, typename Comparator = std::less<ValueType>>
Source invalid_
staticconstexpr

sentinel for invalid or finished Sources

Definition at line 536 of file loser_tree.hpp.

◆ k_

template<typename ValueType, typename Comparator = std::less<ValueType>>
Source k_
protected

log_2(ik) next greater power of 2

Definition at line 550 of file loser_tree.hpp.

◆ losers_

template<typename ValueType, typename Comparator = std::less<ValueType>>
SimpleVector<Loser> losers_
protected

array containing loser tree nodes

Definition at line 552 of file loser_tree.hpp.


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