COMBINATORIAL_BLAS  1.6
iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc > Class Template Reference

#include <funnel.h>

Classes

struct  rebind
 
class  stream
 
class  stream_iterator
 

Public Types

enum  order_tag_ { order = Order }
 
enum  mmth_tag_ { MAX_MERGE_TREE_HEIGHT = 16 }
 
typedef unsigned int order_t
 
typedef Splitter splitter
 
typedef std::iterator_traits< RanIt >::value_type value_type
 
typedef Alloc allocator
 
typedef RanIt iterator
 
typedef Pred predicate
 

Public Member Functions

 merge_tree (order_t k)
 
 merge_tree (order_t k, const allocator &alloc)
 
 ~merge_tree ()
 
void add_stream (RanIt begin, RanIt end)
 
stream_iterator begin ()
 
stream_iterator end ()
 
void reset ()
 
void set_refiller (const Refiller &r)
 
const Refiller & get_refiller () const
 
template<class FwIt >
FwIt empty (FwIt begin, FwIt end)
 
template<class OutIt >
OutIt empty (OutIt begin)
 
template<class It >
It operator() (It begin, It end)
 
template<class OutIt >
OutIt operator() (OutIt begin)
 
template<class FwIt >
FwIt operator() (FwIt begin, FwIt end)
 

Static Public Member Functions

static order_t min_order ()
 

Friends

class special_< RanIt, Order, Splitter, Pred, Refiller, Alloc >
 
struct Node
 

Detailed Description

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
class iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >

Definition at line 120 of file funnel.h.

Member Typedef Documentation

◆ allocator

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
typedef Alloc iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::allocator

Definition at line 129 of file funnel.h.

◆ iterator

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
typedef RanIt iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::iterator

Definition at line 130 of file funnel.h.

◆ order_t

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
typedef unsigned int iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::order_t

Definition at line 124 of file funnel.h.

◆ predicate

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
typedef Pred iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::predicate

Definition at line 131 of file funnel.h.

◆ splitter

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
typedef Splitter iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::splitter

Definition at line 127 of file funnel.h.

◆ value_type

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
typedef std::iterator_traits<RanIt>::value_type iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::value_type

Definition at line 128 of file funnel.h.

Member Enumeration Documentation

◆ mmth_tag_

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
enum iosort::merge_tree::mmth_tag_
Enumerator
MAX_MERGE_TREE_HEIGHT 

Definition at line 126 of file funnel.h.

◆ order_tag_

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
enum iosort::merge_tree::order_tag_
Enumerator
order 

Definition at line 125 of file funnel.h.

Constructor & Destructor Documentation

◆ merge_tree() [1/2]

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::merge_tree ( order_t  k)
inline

Definition at line 162 of file funnel.h.

◆ merge_tree() [2/2]

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::merge_tree ( order_t  k,
const allocator alloc 
)
inline

Definition at line 164 of file funnel.h.

◆ ~merge_tree()

template<int order, class Splitter , class Pred , class Refiller , class Alloc >
iosort::merge_tree< order, Splitter, Pred, Refiller, Alloc >::~merge_tree ( )

Definition at line 217 of file funnel.timpl.h.

Member Function Documentation

◆ add_stream()

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
void iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::add_stream ( RanIt  begin,
RanIt  end 
)
inline

Definition at line 206 of file funnel.h.

◆ begin()

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
stream_iterator iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::begin ( )
inline

Definition at line 208 of file funnel.h.

◆ empty() [1/2]

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
template<class FwIt >
FwIt iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::empty ( FwIt  begin,
FwIt  end 
)
inline

Definition at line 219 of file funnel.h.

◆ empty() [2/2]

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
template<class OutIt >
OutIt iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::empty ( OutIt  begin)
inline

Definition at line 222 of file funnel.h.

◆ end()

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
stream_iterator iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::end ( )
inline

Definition at line 210 of file funnel.h.

◆ get_refiller()

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
const Refiller& iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::get_refiller ( ) const
inline

Definition at line 216 of file funnel.h.

◆ min_order()

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
static order_t iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::min_order ( )
inlinestatic

Definition at line 168 of file funnel.h.

◆ operator()() [1/3]

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
template<class It >
It iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::operator() ( It  begin,
It  end 
)
inline

◆ operator()() [2/3]

template<int order, class Splitter , class Pred , class Refiller , class Alloc >
template<class OutIt >
OutIt iosort::merge_tree< order, Splitter, Pred, Refiller, Alloc >::operator() ( OutIt  begin)
inline

Definition at line 264 of file funnel.timpl.h.

◆ operator()() [3/3]

template<int order, class Splitter , class Pred , class Refiller , class Alloc >
template<class FwIt >
FwIt iosort::merge_tree< order, Splitter, Pred, Refiller, Alloc >::operator() ( FwIt  begin,
FwIt  end 
)

Definition at line 247 of file funnel.timpl.h.

◆ reset()

template<int order, class Splitter , class Pred , class Refiller , class Alloc >
void iosort::merge_tree< order, Splitter, Pred, Refiller, Alloc >::reset ( )
inline

Definition at line 230 of file funnel.timpl.h.

◆ set_refiller()

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
void iosort::merge_tree< RanIt, Order, Splitter, Pred, Refiller, Alloc >::set_refiller ( const Refiller &  r)
inline

Definition at line 214 of file funnel.h.

Friends And Related Function Documentation

◆ Node

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
friend struct Node
friend

Definition at line 135 of file funnel.h.

◆ special_< RanIt, Order, Splitter, Pred, Refiller, Alloc >

template<class RanIt, int Order = 2, class Splitter = default_splitter<Order>, class Pred = std::less<typename std::iterator_traits<RanIt>::value_type>, class Refiller = nop_refill<RanIt>, class Alloc = std::allocator<typename std::iterator_traits<RanIt>::value_type>>
friend class special_< RanIt, Order, Splitter, Pred, Refiller, Alloc >
friend

Definition at line 122 of file funnel.h.


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