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>void 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>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>void 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 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>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)