libjmmcg  build_2783
A C++ library containing an eclectic mix of useful, advanced components.
jmmcg::ppd::private_::alg_wk_wrap::batchers_bitonic_merge_reduce< Conts, Comp >::merge< LHSDir, RHSDir, FinalSort > Class Template Reference

#include <parallel_algorithms.hpp>

Public Types

typedef swap_pred< lhs_dir, out_iterator, operation_typeswapper_t
 
typedef boost::function< void(out_iterator, out_iterator, std::binary_negate< swapper_t >)> sort_fn_t
 

Public Member Functions

constexpr merge (out_iterator b, out_iterator e, operation_type const &f, sort_fn_t const &sfn, cliques::element_type const cl) noexcept(true) FORCE_INLINE
 
virtual ~merge () FORCE_INLINE
 
void __fastcall process () const
 
constexpr bool __fastcall operator< (merge const &) const noexcept(true) FORCE_INLINE
 

Static Public Attributes

static constexpr direction lhs_dir =LHSDir
 The general direction of the comparator. More...
 
static constexpr direction rhs_dir =RHSDir
 The direction that the rhs of the sort should be flipped, because for merges the sequence is bitonic, so the rhs sub-ranges need to be flipped. More...
 
static constexpr ppd::generic_traits::memory_access_modes memory_access_mode =thread_pool_type::template swap_ranges_t<typename containers_type::output_t::container_type, swapper_t>::memory_access_mode
 

Detailed Description

template<class Conts, typename Comp>
template<direction LHSDir, direction RHSDir, template< class, class, direction, direction, class > class FinalSort>
class jmmcg::ppd::private_::alg_wk_wrap::batchers_bitonic_merge_reduce< Conts, Comp >::merge< LHSDir, RHSDir, FinalSort >

Definition at line 880 of file parallel_algorithms.hpp.

Member Typedef Documentation

◆ sort_fn_t

template<class Conts , typename Comp >
template<direction LHSDir, direction RHSDir, template< class, class, direction, direction, class > class FinalSort>
typedef boost::function<void (out_iterator, out_iterator, std::binary_negate<swapper_t>)> jmmcg::ppd::private_::alg_wk_wrap::batchers_bitonic_merge_reduce< Conts, Comp >::merge< LHSDir, RHSDir, FinalSort >::sort_fn_t

Definition at line 263 of file parallel_algorithms_impl.hpp.

◆ swapper_t

template<class Conts , typename Comp >
template<direction LHSDir, direction RHSDir, template< class, class, direction, direction, class > class FinalSort>
typedef swap_pred<lhs_dir, out_iterator, operation_type> jmmcg::ppd::private_::alg_wk_wrap::batchers_bitonic_merge_reduce< Conts, Comp >::merge< LHSDir, RHSDir, FinalSort >::swapper_t

Definition at line 262 of file parallel_algorithms_impl.hpp.

Constructor & Destructor Documentation

◆ merge()

template<class Conts , typename Comp >
template<direction LHSDir, direction RHSDir, template< class, class, direction, direction, class > class FinalSort>
constexpr jmmcg::ppd::private_::alg_wk_wrap::batchers_bitonic_merge_reduce< Conts, Comp >::merge< LHSDir, RHSDir, FinalSort >::merge ( out_iterator  b,
out_iterator  e,
operation_type const &  f,
sort_fn_t const &  sfn,
cliques::element_type const  cl 
)
inlineconstexprnoexcept

◆ ~merge()

template<class Conts , typename Comp >
template<direction LHSDir, direction RHSDir, template< class, class, direction, direction, class > class FinalSort>
virtual jmmcg::ppd::private_::alg_wk_wrap::batchers_bitonic_merge_reduce< Conts, Comp >::merge< LHSDir, RHSDir, FinalSort >::~merge ( )
inlinevirtual

Member Function Documentation

◆ operator<()

template<class Conts , typename Comp >
template<direction LHSDir, direction RHSDir, template< class, class, direction, direction, class > class FinalSort>
constexpr bool __fastcall jmmcg::ppd::private_::alg_wk_wrap::batchers_bitonic_merge_reduce< Conts, Comp >::merge< LHSDir, RHSDir, FinalSort >::operator< ( merge< LHSDir, RHSDir, FinalSort > const &  ) const
inlineconstexprnoexcept

◆ process()

template<class Conts , typename Comp >
template<direction LHSDir, direction RHSDir, template< class, class, direction, direction, class > class FinalSort>
void __fastcall jmmcg::ppd::private_::alg_wk_wrap::batchers_bitonic_merge_reduce< Conts, Comp >::merge< LHSDir, RHSDir, FinalSort >::process ( ) const
inline

Member Data Documentation

◆ lhs_dir

template<class Conts , typename Comp >
template<direction LHSDir, direction RHSDir, template< class, class, direction, direction, class > class FinalSort>
constexpr direction jmmcg::ppd::private_::alg_wk_wrap::batchers_bitonic_merge_reduce< Conts, Comp >::merge< LHSDir, RHSDir, FinalSort >::lhs_dir =LHSDir
staticconstexpr

The general direction of the comparator.

Definition at line 260 of file parallel_algorithms_impl.hpp.

◆ memory_access_mode

template<class Conts , typename Comp >
template<direction LHSDir, direction RHSDir, template< class, class, direction, direction, class > class FinalSort>
constexpr ppd::generic_traits::memory_access_modes jmmcg::ppd::private_::alg_wk_wrap::batchers_bitonic_merge_reduce< Conts, Comp >::merge< LHSDir, RHSDir, FinalSort >::memory_access_mode =thread_pool_type::template swap_ranges_t<typename containers_type::output_t::container_type, swapper_t>::memory_access_mode
staticconstexpr

To assist in allowing compile-time computation of the algorithmic order of the threading model.

Definition at line 268 of file parallel_algorithms_impl.hpp.

◆ rhs_dir

template<class Conts , typename Comp >
template<direction LHSDir, direction RHSDir, template< class, class, direction, direction, class > class FinalSort>
constexpr direction jmmcg::ppd::private_::alg_wk_wrap::batchers_bitonic_merge_reduce< Conts, Comp >::merge< LHSDir, RHSDir, FinalSort >::rhs_dir =RHSDir
staticconstexpr

The direction that the rhs of the sort should be flipped, because for merges the sequence is bitonic, so the rhs sub-ranges need to be flipped.

Definition at line 261 of file parallel_algorithms_impl.hpp.


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