namespace
openmp
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 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<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)