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>
inline 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.

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

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

  • it2[in] : iterator to the second element

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

  • comp[in] : comparison object

Returns

result of the comparison

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.

Parameters
  • dest[in] 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

  • R[in] : array of ranges to merge

  • nrange_input[in] : number of ranges in R

  • comp[in] : comparison object

Returns

range with all the elements move with the size adjusted

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.

Parameters
  • dest[in] 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

  • R[in] : array of ranges to merge

  • nrange_input[in] : number of ranges in vrange_input

  • comp[in] : comparison object

Returns

range with all the elements move with the size adjusted