__gnu_parallel::_LoserTreeBase.3cxx
Contents
Constructor & Destructor Documentation
template<typename_Tp,typename_Compare>__gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_LoserTreeBase(unsignedint__k,_Compare__comp)[inline]
The constructor.
Parameters__k The number of sequences to merge.
__comp The comparator to use.
References __gnu_parallel::__rd_log2(), __gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_M_first_insert,
__gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_M_log_k, and __gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_M_losers.
template<typename_Tp,typename_Compare>__gnu_parallel::_LoserTreeBase<_Tp,_Compare>::~_LoserTreeBase()[inline]
The destructor.
References __gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_M_losers.
Detailed Description
template<typename_Tp,typename_Compare>
class __gnu_parallel::_LoserTreeBase< _Tp, _Compare >"Guarded loser/tournament tree.
The smallest element is at the top.
Guarding is done explicitly through one flag _M_sup per element, inf is not needed due to a better
initialization routine. This is a well-performing variant.
Parameters_Tp the element type
_Compare the comparator to use, defaults to std::less<_Tp>
Member Data Documentation
template<typename_Tp,typename_Compare>_Compare__gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_M_comp[protected]
_Compare to use.
template<typename_Tp,typename_Compare>bool__gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_M_first_insert[protected]
State flag that determines whether the _LoserTree is empty. Only used for building the _LoserTree.
Referenced by __gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_LoserTreeBase(), and
__gnu_parallel::_LoserTreeBase<_Tp,_Compare>::__insert_start().
template<typename_Tp,typename_Compare>unsignedint__gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_M_log_k[protected]
log_2{_M_k}
Referenced by __gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_LoserTreeBase().
template<typename_Tp,typename_Compare>_Loser*__gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_M_losers[protected]
_LoserTree __elements.
Referenced by __gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_LoserTreeBase(),
__gnu_parallel::_LoserTreeBase<_Tp,_Compare>::~_LoserTreeBase(), __gnu_parallel::_LoserTreeBase<_Tp,_Compare>::__get_min_source(), and __gnu_parallel::_LoserTreeBase<_Tp,_Compare>::__insert_start().
Member Function Documentation
template<typename_Tp,typename_Compare>int__gnu_parallel::_LoserTreeBase<_Tp,_Compare>::__get_min_source()[inline]Returns
the index of the sequence with the smallest element.
References __gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_M_losers, and
__gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_Loser::_M_source.
template<typename_Tp,typename_Compare>void__gnu_parallel::_LoserTreeBase<_Tp,_Compare>::__insert_start(const_Tp&__key,int__source,bool__sup)[inline]
Initializes the sequence '_M_source' with the element '__key'.
Parameters__key the element to insert
__source __index of the __source __sequence
__sup flag that determines whether the value to insert is an explicit __supremum.
References __gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_M_first_insert,
__gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_Loser::_M_key, __gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_M_losers, __gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_Loser::_M_source, and
__gnu_parallel::_LoserTreeBase<_Tp,_Compare>::_Loser::_M_sup.
Name
__gnu_parallel::_LoserTreeBase< _Tp, _Compare > - Guarded loser/tournament tree.
Synopsis
#include <losertree.h>
Inherited by __gnu_parallel::_LoserTree<__stable,_Tp,_Compare>, and __gnu_parallel::_LoserTree<false,_Tp,_Compare>.
Classes
struct _Loser
Internal representation of a _LoserTree element.
PublicMemberFunctions_LoserTreeBase (unsigned int __k, _Compare __comp)
The constructor.
~_LoserTreeBase ()
The destructor.
int __get_min_source ()
void __insert_start (const _Tp &__key, int __source, bool __sup)
Initializes the sequence '_M_source' with the element '__key'.
ProtectedAttributes
_Compare _M_comp
_Compare to use.
bool _M_first_insert
State flag that determines whether the _LoserTree is empty.
unsigned int _M_ik
unsigned int _M_k
unsigned int _M_log_k_Loser * _M_losers
_LoserTree __elements.
unsigned int _M_offset