libjmmcg  release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
parallel_algorithms.hpp File Reference
#include "manage_container_args.hpp"
#include "thread_client_context.hpp"
#include "thread_dsel_types.hpp"
#include "../../core/config.h"
#include "../../core/shared_ptr.hpp"
#include <boost/function.hpp>
#include "parallel_algorithms_impl.hpp"
Include dependency graph for parallel_algorithms.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::pass_value< V >
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::for_each_work_type< Op >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::transform_work_type< Op >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::for_each_reduce< Conts, Fn >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::countor_work_type< Pred, CTR >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::count_if_reduce< Conts, CtrPred >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::accumulator_work_type< BinOp, Acc >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::accumulate_reduce< Conts, Fn >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::find_if_reduce< Conts, CtrPred >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::max_element_reduce< Conts, Fn >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::min_element_reduce< Conts, Fn >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::transform_reduce< Conts, UniOp >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::transform2_reduce< Conts, BinOp >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::reverse_work_type< Colln >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::reverse_reduce< Conts, Fn >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::fill_n_reduce< Conts, UniOp >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::fill_reduce< Conts, UniOp >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::swap_ranges_reduce< Conts, Pred >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::merge_work_type< Comp, TPB >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::swap_pred< Dir, out_iterator, Closure >
 The comparator operator to be used within the merge or sort operation. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::merge_final_sorter< Iter, operation_type, LHSDir, RHSDir, Dummy >
 Merge operations are predicated upon the two input queues being sorted, so we can improve the algorithmic complexity by making use of std::merge() to merge the final sub-ranges in O(n/p) time. Note that the input is a bitonic sub-range, which makes this algorithm more complex. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::sort_final_sorter< Iter, operation_type, LHSDir, RHSDir, SortFn >
 
class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::batchers_bitonic_merge_reduce< Conts, Comp >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::sort_work_type< Comp, TPB >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::bitonic_sort_reduce< Conts, Comp >
 Assist with implementing the parallel versions of the standard algorithms. More...
 
struct  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::stl_functor_result_type< T >
 
class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::unary_fun_work_type< ArgT, UniFn, PT >
 An adaptor to allow STL unary functions to be operated upon in the thread_pool. More...
 
class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::binary_fun_work_type< ArgT1, ArgT2, BinFn, PT >
 An adaptor to allow STL binary functions to be operated upon in the thread_pool. More...
 

Namespaces

namespace  jmmcg
 Link with -lrt to include these functions.
 
namespace  jmmcg::LIBJMMCG_VER_NAMESPACE
 
namespace  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd
 Parallel Pixie Dust or PPD is the name of the thread library within libjmmcg.
 
namespace  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_
 
namespace  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap
 

Enumerations

enum class  jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::direction { jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::ascending , jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::alg_wk_wrap::descending }
 The direction of the resultant output sequence from a merge or sort opration. More...
 

Variables

const char jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::shuffle_str [] ="shuffle"
 
const char jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::lhs_merge_str [] ="lhs_merge"
 
const char jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::rhs_merge_str [] ="rhs_merge"
 
const char jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::combine1_str [] ="combine1"
 
const char jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::combine2_str [] ="combine2"
 
const char jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::ascending_lhs_str [] ="ascending_lhs"
 
const char jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::descending_rhs_str [] ="descending_rhs"
 
const char jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::merge_str [] ="merge"
 
const char jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::arg_str [] ="arg"
 
const char jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::lhs_str [] ="lhs"
 
const char jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::rhs_str [] ="rhs"
 
const char jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::unary_fun_str [] ="unary_fun"
 
const char jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::private_::binary_fun_str [] ="binary_fun"