CAPD RedHom Library
capd::homAux::RangeAlgorithms< ManualComputationalModel > Class Template Reference

#include <capd/homAux/RangeAlgorithms.h>

Public Types

typedef boost::mpl::if_c< CAPD_HAVE_TBB, RangeAlgorithms< TbbComputationalModel >, RangeAlgorithms< StdComputationalModel > >::type TbbModel
 
typedef RangeAlgorithms< StdComputationalModelStdModel
 
typedef boost::mpl::if_c< CAPD_HAVE_TBB, TbbModel, StdModel >::type AutomaticModel
 
typedef boost::variant< AutomaticModel, StdModel, TbbModelModels
 

Public Member Functions

 RangeAlgorithms (int model=DefaultModel())
 
template<typename Rng , typename Cmp = std::less<typename Rng::value_type>>
void sort (Rng &rng, Cmp cmp=Cmp())
 
template<typename Func , typename Rng >
void forEach (Rng &rng, Func func=Func())
 
template<typename Func , typename T1 , typename T2 >
void forLoop (T1 begin, T2 end, Func func=Func())
 
template<typename Rng , typename OutRng >
void partialSum (const Rng &rng, OutRng &out)
 
template<class Rng >
boost::range_iterator< Rng >::type maxElement (const Rng &rng)
 
template<typename Rng , typename Value , typename Op = std::plus<Value>>
Value accumulate (const Rng &rng, Value init, Op op=Op())
 

Static Public Member Functions

static int DefaultModel ()
 

Member Typedef Documentation

typedef boost::mpl::if_c<CAPD_HAVE_TBB, TbbModel, StdModel>::type capd::homAux::RangeAlgorithms< ManualComputationalModel >::AutomaticModel

Constructor & Destructor Documentation

Member Function Documentation

template<typename Rng , typename Value , typename Op = std::plus<Value>>
Value capd::homAux::RangeAlgorithms< ManualComputationalModel >::accumulate ( const Rng &  rng,
Value  init,
Op  op = Op() 
)
inline
static int capd::homAux::RangeAlgorithms< ManualComputationalModel >::DefaultModel ( )
static
template<typename Func , typename Rng >
void capd::homAux::RangeAlgorithms< ManualComputationalModel >::forEach ( Rng &  rng,
Func  func = Func() 
)
inline
template<typename Func , typename T1 , typename T2 >
void capd::homAux::RangeAlgorithms< ManualComputationalModel >::forLoop ( T1  begin,
T2  end,
Func  func = Func() 
)
inline
template<class Rng >
boost::range_iterator<Rng>::type capd::homAux::RangeAlgorithms< ManualComputationalModel >::maxElement ( const Rng &  rng)
inline
template<typename Rng , typename OutRng >
void capd::homAux::RangeAlgorithms< ManualComputationalModel >::partialSum ( const Rng &  rng,
OutRng &  out 
)
inline
template<typename Rng , typename Cmp = std::less<typename Rng::value_type>>
void capd::homAux::RangeAlgorithms< ManualComputationalModel >::sort ( Rng &  rng,
Cmp  cmp = Cmp() 
)
inline