DPC++ Runtime
Runtime libraries for oneAPI DPC++
group_sort.hpp File Reference
#include "group_helpers_sorters.hpp"
#include <sycl/detail/pi.h>
#include <sycl/detail/type_traits.hpp>
#include <sycl/exception.hpp>
#include <stddef.h>
#include <system_error>
#include <type_traits>
#include <utility>
Include dependency graph for group_sort.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  sycl::_V1::ext::oneapi::experimental::detail::has_difference_type< T, typename >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::has_difference_type< T, std::void_t< typename T::difference_type > >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::has_difference_type< T * >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::is_sorter_impl< Sorter, Group, Val, typename >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::is_sorter_impl< Sorter, Group, Ptr, std::void_t< typename has_difference_type< Ptr >::type > >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::is_sorter< Sorter, Group, ValOrPtr >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::is_key_value_sorter< Sorter, Group, Key, Value, typename >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::is_key_value_sorter< Sorter, Group, Key, Value, std::enable_if_t< std::is_same_v< std::invoke_result_t< Sorter, Group, Key, Value >, std::tuple< Key, Value > > &&sycl::is_group_v< Group > > >
 

Namespaces

 sycl
 
 sycl::_V1
 
 sycl::_V1::ext
 
 sycl::_V1::ext::oneapi
 
 sycl::_V1::ext::oneapi::experimental
 
 sycl::_V1::ext::oneapi::experimental::detail
 

Functions

template<typename Group , typename T , typename Sorter >
std::enable_if_t< detail::is_sorter< Sorter, Group, T >::value, T > sycl::_V1::ext::oneapi::experimental::sort_over_group ([[maybe_unused]] Group group, [[maybe_unused]] T value, [[maybe_unused]] Sorter sorter)
 
template<typename Group , typename T , typename Compare , size_t Extent>
std::enable_if_t<!detail::is_sorter< Compare, Group, T >::value, T > sycl::_V1::ext::oneapi::experimental::sort_over_group (experimental::group_with_scratchpad< Group, Extent > exec, T value, Compare comp)
 
template<typename Group , typename T , size_t Extent>
std::enable_if_t< sycl::is_group_v< std::decay_t< Group > >, T > sycl::_V1::ext::oneapi::experimental::sort_over_group (experimental::group_with_scratchpad< Group, Extent > exec, T value)
 
template<typename Group , typename T , std::size_t ElementsPerWorkItem, typename Sorter , typename Properties = ext::oneapi::experimental::empty_properties_t>
std::enable_if_t< sycl::ext::oneapi::experimental::is_property_list_v< std::decay_t< Properties > >, void > sycl::_V1::ext::oneapi::experimental::sort_over_group ([[maybe_unused]] Group g, [[maybe_unused]] sycl::span< T, ElementsPerWorkItem > values, [[maybe_unused]] Sorter sorter, [[maybe_unused]] Properties properties={})
 
template<typename Group , typename T , std::size_t Extent, std::size_t ElementsPerWorkItem, typename Properties = ext::oneapi::experimental::empty_properties_t>
std::enable_if_t< sycl::ext::oneapi::experimental::is_property_list_v< std::decay_t< Properties > >, void > sycl::_V1::ext::oneapi::experimental::sort_over_group (experimental::group_with_scratchpad< Group, Extent > exec, sycl::span< T, ElementsPerWorkItem > values, Properties properties={})
 
template<typename Group , typename T , std::size_t Extent, std::size_t ElementsPerWorkItem, typename Compare , typename Properties = ext::oneapi::experimental::empty_properties_t>
std::enable_if_t<!sycl::ext::oneapi::experimental::is_property_list_v< std::decay_t< Compare > > &&sycl::ext::oneapi::experimental::is_property_list_v< std::decay_t< Properties > >, void > sycl::_V1::ext::oneapi::experimental::sort_over_group (experimental::group_with_scratchpad< Group, Extent > exec, sycl::span< T, ElementsPerWorkItem > values, Compare comp, Properties properties={})
 
template<typename Group , typename Iter , typename Sorter >
std::enable_if_t< detail::is_sorter< Sorter, Group, Iter >::value, void > sycl::_V1::ext::oneapi::experimental::joint_sort ([[maybe_unused]] Group group, [[maybe_unused]] Iter first, [[maybe_unused]] Iter last, [[maybe_unused]] Sorter sorter)
 
template<typename Group , typename Iter , typename Compare , size_t Extent>
std::enable_if_t<!detail::is_sorter< Compare, Group, Iter >::value, void > sycl::_V1::ext::oneapi::experimental::joint_sort (experimental::group_with_scratchpad< Group, Extent > exec, Iter first, Iter last, Compare comp)
 
template<typename Group , typename Iter , size_t Extent>
std::enable_if_t< sycl::is_group_v< std::decay_t< Group > >, void > sycl::_V1::ext::oneapi::experimental::joint_sort (experimental::group_with_scratchpad< Group, Extent > exec, Iter first, Iter last)
 
template<typename Group , typename KeyTy , typename ValueTy , typename Sorter >
std::enable_if_t< detail::is_key_value_sorter< Sorter, Group, KeyTy, ValueTy >::value, std::tuple< KeyTy, ValueTy > > sycl::_V1::ext::oneapi::experimental::sort_key_value_over_group ([[maybe_unused]] Group g, [[maybe_unused]] KeyTy key, [[maybe_unused]] ValueTy value, [[maybe_unused]] Sorter sorter)
 
template<typename Group , typename KeyTy , typename ValueTy , typename Compare , std::size_t Extent>
std::enable_if_t< !detail::is_key_value_sorter< Compare, Group, KeyTy, ValueTy >::value, std::tuple< KeyTy, ValueTy > > sycl::_V1::ext::oneapi::experimental::sort_key_value_over_group (experimental::group_with_scratchpad< Group, Extent > exec, KeyTy key, ValueTy value, Compare comp)
 
template<typename KeyTy , typename ValueTy , typename Group , std::size_t Extent>
std::enable_if_t< sycl::is_group_v< std::decay_t< Group > >, std::tuple< KeyTy, ValueTy > > sycl::_V1::ext::oneapi::experimental::sort_key_value_over_group (experimental::group_with_scratchpad< Group, Extent > exec, KeyTy key, ValueTy value)