hpx/parallel/util/merge_four.hpp

See Public API for a list of names and headers that are part of the public HPX API.

namespace hpx
namespace parallel
namespace util

Functions

template<typename Iter, typename Sent, typename Compare>
bool less_range(Iter it1, std::uint32_t pos1, Sent it2, std::uint32_t pos2, Compare comp)

Compare the elements pointed by it1 and it2, and if they are equals, compare their position, doing a stable comparison.

Return

result of the comparison

Parameters
  • [in] it1: : iterator to the first element

  • [in] pos1: : position of the object pointed by it1

  • [in] it2: : iterator to the second element

  • [in] pos2: : position of the element pointed by it2

  • [in] comp: : comparison object

template<typename Iter1, typename Sent1, typename Iter2, typename Sent2, typename Compare>
util::range<Iter1, Sent1> full_merge4(util::range<Iter1, Sent1> &rdest, util::range<Iter2, Sent2> vrange_input[4], std::uint32_t nrange_input, Compare comp)

Merge four ranges.

Return

range with all the elements move with the size adjusted

Parameters
  • [in] dest: range where move the elements merged. Their size must be greater or equal than the sum of the sizes of the ranges in the array R

  • [in] R: : array of ranges to merge

  • [in] nrange_input: : number of ranges in R

  • [in] comp: : comparison object

template<typename Value, typename Iter, typename Sent, typename Compare>
util::range<Value*> uninit_full_merge4(util::range<Value*> const &dest, util::range<Iter, Sent> vrange_input[4], std::uint32_t nrange_input, Compare comp)

Merge four ranges and put the result in uninitialized memory.

Return

range with all the elements move with the size adjusted

Parameters
  • [in] dest: range where create and move the elements merged. Their size must be greater or equal than the sum of the sizes of the ranges in the array R

  • [in] R: : array of ranges to merge

  • [in] nrange_input: : number of ranges in vrange_input

  • [in] comp: : comparison object