summaryrefslogtreecommitdiff
path: root/inference-engine/thirdparty/clDNN/common/boost/1.64.0/include/boost-1_64/boost/compute/algorithm/find_end.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'inference-engine/thirdparty/clDNN/common/boost/1.64.0/include/boost-1_64/boost/compute/algorithm/find_end.hpp')
-rw-r--r--inference-engine/thirdparty/clDNN/common/boost/1.64.0/include/boost-1_64/boost/compute/algorithm/find_end.hpp136
1 files changed, 0 insertions, 136 deletions
diff --git a/inference-engine/thirdparty/clDNN/common/boost/1.64.0/include/boost-1_64/boost/compute/algorithm/find_end.hpp b/inference-engine/thirdparty/clDNN/common/boost/1.64.0/include/boost-1_64/boost/compute/algorithm/find_end.hpp
deleted file mode 100644
index 265a1da54..000000000
--- a/inference-engine/thirdparty/clDNN/common/boost/1.64.0/include/boost-1_64/boost/compute/algorithm/find_end.hpp
+++ /dev/null
@@ -1,136 +0,0 @@
-//---------------------------------------------------------------------------//
-// Copyright (c) 2014 Roshan <thisisroshansmail@gmail.com>
-//
-// Distributed under the Boost Software License, Version 1.0
-// See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt
-//
-// See http://boostorg.github.com/compute for more information.
-//---------------------------------------------------------------------------//
-
-#ifndef BOOST_COMPUTE_ALGORITHM_FIND_END_HPP
-#define BOOST_COMPUTE_ALGORITHM_FIND_END_HPP
-
-#include <boost/compute/algorithm/copy.hpp>
-#include <boost/compute/algorithm/detail/search_all.hpp>
-#include <boost/compute/container/detail/scalar.hpp>
-#include <boost/compute/container/vector.hpp>
-#include <boost/compute/detail/iterator_range_size.hpp>
-#include <boost/compute/detail/meta_kernel.hpp>
-#include <boost/compute/system.hpp>
-
-namespace boost {
-namespace compute {
-namespace detail {
-
-///
-/// \brief Helper function for find_end
-///
-/// Basically a copy of find_if which returns last occurence
-/// instead of first occurence
-///
-template<class InputIterator, class UnaryPredicate>
-inline InputIterator find_end_helper(InputIterator first,
- InputIterator last,
- UnaryPredicate predicate,
- command_queue &queue)
-{
- typedef typename std::iterator_traits<InputIterator>::value_type value_type;
- typedef typename std::iterator_traits<InputIterator>::difference_type difference_type;
-
- size_t count = detail::iterator_range_size(first, last);
- if(count == 0){
- return last;
- }
-
- const context &context = queue.get_context();
-
- detail::meta_kernel k("find_end");
- size_t index_arg = k.add_arg<int *>(memory_object::global_memory, "index");
- atomic_max<int_> atomic_max_int;
-
- k << k.decl<const int_>("i") << " = get_global_id(0);\n"
- << k.decl<const value_type>("value") << "="
- << first[k.var<const int_>("i")] << ";\n"
- << "if(" << predicate(k.var<const value_type>("value")) << "){\n"
- << " " << atomic_max_int(k.var<int_ *>("index"), k.var<int_>("i")) << ";\n"
- << "}\n";
-
- kernel kernel = k.compile(context);
-
- scalar<int_> index(context);
- kernel.set_arg(index_arg, index.get_buffer());
-
- index.write(static_cast<int_>(-1), queue);
-
- queue.enqueue_1d_range_kernel(kernel, 0, count, 0);
-
- int result = static_cast<int>(index.read(queue));
-
- if(result == -1){
- return last;
- }
- else {
- return first + static_cast<difference_type>(result);
- }
-}
-
-} // end detail namespace
-
-///
-/// \brief Substring matching algorithm
-///
-/// Searches for the last match of the pattern [p_first, p_last)
-/// in text [t_first, t_last).
-/// \return Iterator pointing to beginning of last occurence
-///
-/// \param t_first Iterator pointing to start of text
-/// \param t_last Iterator pointing to end of text
-/// \param p_first Iterator pointing to start of pattern
-/// \param p_last Iterator pointing to end of pattern
-/// \param queue Queue on which to execute
-///
-template<class TextIterator, class PatternIterator>
-inline TextIterator find_end(TextIterator t_first,
- TextIterator t_last,
- PatternIterator p_first,
- PatternIterator p_last,
- command_queue &queue = system::default_queue())
-{
- const context &context = queue.get_context();
-
- // there is no need to check if pattern starts at last n - 1 indices
- vector<uint_> matching_indices(
- detail::iterator_range_size(t_first, t_last)
- + 1 - detail::iterator_range_size(p_first, p_last),
- context
- );
-
- detail::search_kernel<PatternIterator,
- TextIterator,
- vector<uint_>::iterator> kernel;
-
- kernel.set_range(p_first, p_last, t_first, t_last, matching_indices.begin());
- kernel.exec(queue);
-
- using boost::compute::_1;
-
- vector<uint_>::iterator index =
- detail::find_end_helper(
- matching_indices.begin(),
- matching_indices.end(),
- _1 == 1,
- queue
- );
-
- // pattern was not found
- if(index == matching_indices.end())
- return t_last;
-
- return t_first + detail::iterator_range_size(matching_indices.begin(), index);
-}
-
-} //end compute namespace
-} //end boost namespace
-
-#endif // BOOST_COMPUTE_ALGORITHM_FIND_END_HPP