ppqsort::impl::openmp namespace

Functions

template<typename RandomIt, typename Compare>
auto is_sorted_par(RandomIt begin, RandomIt end, Compare comp, const std::size_t size, const int n_threads, bool leftmost) -> bool
template<typename RandomIt, typename Compare, bool branchless, typename T = typename std::iterator_traits<RandomIt>::value_type, typename diff_t = typename std::iterator_traits<RandomIt>::difference_type>
auto par_loop(RandomIt begin, RandomIt end, Compare comp, diff_t bad_allowed, diff_t seq_thr, int threads, bool leftmost = true) -> void
template<class RandomIt, class Compare, typename T = typename std::iterator_traits<RandomIt>::value_type, typename diff_t = typename std::iterator_traits<RandomIt>::difference_type>
auto partition_right_branchless_par(const RandomIt g_begin, const RandomIt g_end, Compare comp, const int thread_count) -> std::pair<RandomIt, bool>
template<side s, typename diff_t>
auto get_new_block(diff_t& t_size, diff_t& t_iter, diff_t& t_block_bound, diff_t& g_distance, diff_t& g_offset, const int& block_size) -> bool
template<side s, typename RandomIt, typename diff_t>
auto swap_blocks(const int& g_dirty_blocks_side, const RandomIt& g_begin, const diff_t& t_old, const diff_t& t_block_bound, std::unique_ptr<bool[]>& reserved, const int& block_size) -> void
template<typename RandomIt, typename diff_t>
auto swap_dirty_blocks(const RandomIt& g_begin, const diff_t& t_left, const diff_t& t_right, const diff_t& t_left_end, const diff_t& t_right_start, int& g_dirty_blocks_left, int& g_dirty_blocks_right, diff_t& g_first_offset, diff_t& g_last_offset, std::unique_ptr<bool[]>& g_reserved_left, std::unique_ptr<bool[]>& g_reserved_right, const int& block_size) -> void
template<typename RandomIt, typename Compare, typename T = typename std::iterator_traits<RandomIt>::value_type, typename diff_t = typename std::iterator_traits<RandomIt>::difference_type>
auto partition_to_right_par(const RandomIt& g_begin, const RandomIt& g_end, const Compare& comp, const int& thread_count) -> std::pair<RandomIt, bool>

Function documentation

template<typename RandomIt, typename Compare>
bool ppqsort::impl::openmp::is_sorted_par(RandomIt begin, RandomIt end, Compare comp, const std::size_t size, const int n_threads, bool leftmost)

template<typename RandomIt, typename Compare, bool branchless, typename T = typename std::iterator_traits<RandomIt>::value_type, typename diff_t = typename std::iterator_traits<RandomIt>::difference_type>
void ppqsort::impl::openmp::par_loop(RandomIt begin, RandomIt end, Compare comp, diff_t bad_allowed, diff_t seq_thr, int threads, bool leftmost = true)

template<class RandomIt, class Compare, typename T = typename std::iterator_traits<RandomIt>::value_type, typename diff_t = typename std::iterator_traits<RandomIt>::difference_type>
std::pair<RandomIt, bool> ppqsort::impl::openmp::partition_right_branchless_par(const RandomIt g_begin, const RandomIt g_end, Compare comp, const int thread_count)

template<side s, typename diff_t>
bool ppqsort::impl::openmp::get_new_block(diff_t& t_size, diff_t& t_iter, diff_t& t_block_bound, diff_t& g_distance, diff_t& g_offset, const int& block_size)

template<side s, typename RandomIt, typename diff_t>
void ppqsort::impl::openmp::swap_blocks(const int& g_dirty_blocks_side, const RandomIt& g_begin, const diff_t& t_old, const diff_t& t_block_bound, std::unique_ptr<bool[]>& reserved, const int& block_size)

template<typename RandomIt, typename diff_t>
void ppqsort::impl::openmp::swap_dirty_blocks(const RandomIt& g_begin, const diff_t& t_left, const diff_t& t_right, const diff_t& t_left_end, const diff_t& t_right_start, int& g_dirty_blocks_left, int& g_dirty_blocks_right, diff_t& g_first_offset, diff_t& g_last_offset, std::unique_ptr<bool[]>& g_reserved_left, std::unique_ptr<bool[]>& g_reserved_right, const int& block_size)

template<typename RandomIt, typename Compare, typename T = typename std::iterator_traits<RandomIt>::value_type, typename diff_t = typename std::iterator_traits<RandomIt>::difference_type>
std::pair<RandomIt, bool> ppqsort::impl::openmp::partition_to_right_par(const RandomIt& g_begin, const RandomIt& g_end, const Compare& comp, const int& thread_count)