MCPcopy Create free account
hub / github.com/boostorg/compute / is_permutation

Function is_permutation

include/boost/compute/algorithm/is_permutation.hpp:40–62  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

38///
39template<class InputIterator1, class InputIterator2>
40inline bool is_permutation(InputIterator1 first1,
41 InputIterator1 last1,
42 InputIterator2 first2,
43 InputIterator2 last2,
44 command_queue &queue = system::default_queue())
45{
46 typedef typename std::iterator_traits<InputIterator1>::value_type value_type1;
47 typedef typename std::iterator_traits<InputIterator2>::value_type value_type2;
48
49 size_t count1 = detail::iterator_range_size(first1, last1);
50 size_t count2 = detail::iterator_range_size(first2, last2);
51
52 if(count1 != count2) return false;
53
54 vector<value_type1> temp1(first1, last1, queue);
55 vector<value_type2> temp2(first2, last2, queue);
56
57 sort(temp1.begin(), temp1.end(), queue);
58 sort(temp2.begin(), temp2.end(), queue);
59
60 return equal(temp1.begin(), temp1.end(),
61 temp2.begin(), queue);
62}
63
64} // end compute namespace
65} // end boost namespace

Callers 3

BOOST_AUTO_TEST_CASEFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85

Calls 5

iterator_range_sizeFunction · 0.85
sortFunction · 0.85
equalFunction · 0.85
beginMethod · 0.45
endMethod · 0.45

Tested by 1

BOOST_AUTO_TEST_CASEFunction · 0.68