diff options
Diffstat (limited to 'inference-engine/thirdparty/clDNN/common/boost/1.64.0/include/boost-1_64/boost/compute/algorithm/sort_by_key.hpp')
-rw-r--r-- | inference-engine/thirdparty/clDNN/common/boost/1.64.0/include/boost-1_64/boost/compute/algorithm/sort_by_key.hpp | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/inference-engine/thirdparty/clDNN/common/boost/1.64.0/include/boost-1_64/boost/compute/algorithm/sort_by_key.hpp b/inference-engine/thirdparty/clDNN/common/boost/1.64.0/include/boost-1_64/boost/compute/algorithm/sort_by_key.hpp deleted file mode 100644 index c39bcf989..000000000 --- a/inference-engine/thirdparty/clDNN/common/boost/1.64.0/include/boost-1_64/boost/compute/algorithm/sort_by_key.hpp +++ /dev/null @@ -1,161 +0,0 @@ -//---------------------------------------------------------------------------// -// Copyright (c) 2013 Kyle Lutz <kyle.r.lutz@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_SORT_BY_KEY_HPP -#define BOOST_COMPUTE_ALGORITHM_SORT_BY_KEY_HPP - -#include <iterator> - -#include <boost/utility/enable_if.hpp> - -#include <boost/compute/system.hpp> -#include <boost/compute/command_queue.hpp> -#include <boost/compute/algorithm/detail/merge_sort_on_cpu.hpp> -#include <boost/compute/algorithm/detail/merge_sort_on_gpu.hpp> -#include <boost/compute/algorithm/detail/insertion_sort.hpp> -#include <boost/compute/algorithm/detail/radix_sort.hpp> -#include <boost/compute/algorithm/reverse.hpp> -#include <boost/compute/detail/iterator_range_size.hpp> - -namespace boost { -namespace compute { - -namespace detail { - -template<class KeyIterator, class ValueIterator> -inline void -dispatch_gpu_sort_by_key(KeyIterator keys_first, - KeyIterator keys_last, - ValueIterator values_first, - less<typename std::iterator_traits<KeyIterator>::value_type> compare, - command_queue &queue, - typename boost::enable_if_c< - is_radix_sortable< - typename std::iterator_traits<KeyIterator>::value_type - >::value - >::type* = 0) -{ - size_t count = detail::iterator_range_size(keys_first, keys_last); - - if(count < 32){ - detail::serial_insertion_sort_by_key( - keys_first, keys_last, values_first, compare, queue - ); - } - else { - detail::radix_sort_by_key( - keys_first, keys_last, values_first, queue - ); - } -} - -template<class KeyIterator, class ValueIterator> -inline void -dispatch_gpu_sort_by_key(KeyIterator keys_first, - KeyIterator keys_last, - ValueIterator values_first, - greater<typename std::iterator_traits<KeyIterator>::value_type> compare, - command_queue &queue, - typename boost::enable_if_c< - is_radix_sortable< - typename std::iterator_traits<KeyIterator>::value_type - >::value - >::type* = 0) -{ - size_t count = detail::iterator_range_size(keys_first, keys_last); - - if(count < 32){ - detail::serial_insertion_sort_by_key( - keys_first, keys_last, values_first, compare, queue - ); - } - else { - // radix sorts in descending order - detail::radix_sort_by_key( - keys_first, keys_last, values_first, false, queue - ); - } -} - -template<class KeyIterator, class ValueIterator, class Compare> -inline void dispatch_gpu_sort_by_key(KeyIterator keys_first, - KeyIterator keys_last, - ValueIterator values_first, - Compare compare, - command_queue &queue) -{ - size_t count = detail::iterator_range_size(keys_first, keys_last); - - if(count < 32){ - detail::serial_insertion_sort_by_key( - keys_first, keys_last, values_first, compare, queue - ); - } else { - detail::merge_sort_by_key_on_gpu( - keys_first, keys_last, values_first, compare, queue - ); - } -} - -template<class KeyIterator, class ValueIterator, class Compare> -inline void dispatch_sort_by_key(KeyIterator keys_first, - KeyIterator keys_last, - ValueIterator values_first, - Compare compare, - command_queue &queue) -{ - if(queue.get_device().type() & device::gpu) { - dispatch_gpu_sort_by_key(keys_first, keys_last, values_first, compare, queue); - return; - } - ::boost::compute::detail::merge_sort_by_key_on_cpu( - keys_first, keys_last, values_first, compare, queue - ); -} - -} // end detail namespace - -/// Performs a key-value sort using the keys in the range [\p keys_first, -/// \p keys_last) on the values in the range [\p values_first, -/// \p values_first \c + (\p keys_last \c - \p keys_first)) using \p compare. -/// -/// If no compare function is specified, \c less is used. -/// -/// \see sort() -template<class KeyIterator, class ValueIterator, class Compare> -inline void sort_by_key(KeyIterator keys_first, - KeyIterator keys_last, - ValueIterator values_first, - Compare compare, - command_queue &queue = system::default_queue()) -{ - ::boost::compute::detail::dispatch_sort_by_key( - keys_first, keys_last, values_first, compare, queue - ); -} - -/// \overload -template<class KeyIterator, class ValueIterator> -inline void sort_by_key(KeyIterator keys_first, - KeyIterator keys_last, - ValueIterator values_first, - command_queue &queue = system::default_queue()) -{ - typedef typename std::iterator_traits<KeyIterator>::value_type key_type; - - ::boost::compute::sort_by_key( - keys_first, keys_last, values_first, less<key_type>(), queue - ); -} - -} // end compute namespace -} // end boost namespace - -#endif // BOOST_COMPUTE_ALGORITHM_SORT_BY_KEY_HPP |