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

Function mismatch

include/boost/compute/algorithm/mismatch.hpp:37–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

35/// Space complexity: \Omega(1)
36template<class InputIterator1, class InputIterator2>
37inline std::pair<InputIterator1, InputIterator2>
38mismatch(InputIterator1 first1,
39 InputIterator1 last1,
40 InputIterator2 first2,
41 command_queue &queue = system::default_queue())
42{
43 BOOST_STATIC_ASSERT(is_device_iterator<InputIterator1>::value);
44 BOOST_STATIC_ASSERT(is_device_iterator<InputIterator2>::value);
45 typedef typename std::iterator_traits<InputIterator1>::value_type value_type;
46
47 ::boost::compute::equal_to<value_type> op;
48
49 InputIterator2 last2 = first2 + std::distance(first1, last1);
50
51 InputIterator1 iter =
52 boost::get<0>(
53 ::boost::compute::find(
54 ::boost::compute::make_transform_iterator(
55 ::boost::compute::make_zip_iterator(
56 boost::make_tuple(first1, first2)
57 ),
58 detail::unpack(op)
59 ),
60 ::boost::compute::make_transform_iterator(
61 ::boost::compute::make_zip_iterator(
62 boost::make_tuple(last1, last2)
63 ),
64 detail::unpack(op)
65 ),
66 false,
67 queue
68 ).base().get_iterator_tuple()
69 );
70
71 return std::make_pair(iter, first2 + std::distance(first1, iter));
72}
73
74/// \overload
75template<class InputIterator1, class InputIterator2>

Callers 2

BOOST_AUTO_TEST_CASEFunction · 0.85
equalFunction · 0.85

Calls 5

findFunction · 0.85
make_transform_iteratorFunction · 0.85
make_zip_iteratorFunction · 0.85
unpackFunction · 0.85
make_pairFunction · 0.85

Tested by 1

BOOST_AUTO_TEST_CASEFunction · 0.68