DPC++ Runtime
Runtime libraries for oneAPI DPC++
group_sort.hpp File Reference
#include "group_helpers_sorters.hpp"
#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 > > >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::is_array_key_value_sorter< Sorter, Group, Key, Value, Properties, ElementsPerWorkItem, typename >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::is_array_key_value_sorter< Sorter, Group, Key, Value, Properties, ElementsPerWorkItem, std::enable_if_t< std::is_same_v< std::invoke_result_t< Sorter, Group, sycl::span< Key, ElementsPerWorkItem >, sycl::span< Value, ElementsPerWorkItem >, Properties >, void > &&sycl::is_group_v< Group > > >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::is_sort_group_helper< GroupHelper, typename >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::is_sort_group_helper< GroupHelper, std::enable_if_t< sycl::is_group_v< decltype(std::declval< GroupHelper >().get_group())> &&std::is_same_v< decltype(std::declval< GroupHelper >().get_memory()), sycl::span< std::byte > > > >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::is_comparator< Comp, T, typename >
 
struct  sycl::_V1::ext::oneapi::experimental::detail::is_comparator< Comp, T, std::enable_if_t< std::is_convertible_v< std::invoke_result_t< Comp, T, T >, bool > > >
 

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 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 GroupHelper , typename Iter >
std::enable_if_t< detail::is_sort_group_helper< GroupHelper >::value > sycl::_V1::ext::oneapi::experimental::joint_sort (GroupHelper gh, Iter first, Iter last)
 
template<typename GroupHelper , typename Iter , typename Compare >
std::enable_if_t< detail::is_sort_group_helper< GroupHelper >::value > sycl::_V1::ext::oneapi::experimental::joint_sort (GroupHelper gh, Iter first, Iter last, Compare comp)
 
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 GroupHelper , typename T >
std::enable_if_t< detail::is_sort_group_helper< GroupHelper >::value, T > sycl::_V1::ext::oneapi::experimental::sort_over_group (GroupHelper gh, T value)
 
template<typename GroupHelper , typename T , typename Compare >
std::enable_if_t< detail::is_sort_group_helper< GroupHelper >::value, T > sycl::_V1::ext::oneapi::experimental::sort_over_group (GroupHelper gh, T value, Compare comp)
 
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 GroupHelper , typename KeyTy , typename ValueTy >
std::enable_if_t< detail::is_sort_group_helper< GroupHelper >::value, std::tuple< KeyTy, ValueTy > > sycl::_V1::ext::oneapi::experimental::sort_key_value_over_group (GroupHelper gh, KeyTy key, ValueTy value)
 
template<typename GroupHelper , typename KeyTy , typename ValueTy , typename Compare >
std::enable_if_t< detail::is_sort_group_helper< GroupHelper >::value, std::tuple< KeyTy, ValueTy > > sycl::_V1::ext::oneapi::experimental::sort_key_value_over_group (GroupHelper gh, KeyTy key, ValueTy value, Compare comp)
 
template<typename Group , typename T , std::size_t ElementsPerWorkItem, typename Sorter , typename Properties = ext::oneapi::experimental::empty_properties_t>
std::enable_if_t< sycl::is_group_v< std::decay_t< Group > > &&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 GroupHelper , typename T , std::size_t ElementsPerWorkItem, typename Properties = ext::oneapi::experimental::empty_properties_t>
std::enable_if_t< detail::is_sort_group_helper< GroupHelper >::value &&sycl::ext::oneapi::experimental::is_property_list_v< std::decay_t< Properties > >, void > sycl::_V1::ext::oneapi::experimental::sort_over_group (GroupHelper gh, sycl::span< T, ElementsPerWorkItem > values, Properties properties={})
 
template<typename GroupHelper , typename T , std::size_t ElementsPerWorkItem, typename Compare , typename Properties = ext::oneapi::experimental::empty_properties_t>
std::enable_if_t< detail::is_sort_group_helper< GroupHelper >::value &&detail::is_comparator< Compare, T >::value &&sycl::ext::oneapi::experimental::is_property_list_v< std::decay_t< Properties > >, void > sycl::_V1::ext::oneapi::experimental::sort_over_group (GroupHelper gh, sycl::span< T, ElementsPerWorkItem > values, Compare comp, Properties properties={})
 
template<typename Group , typename KeyTy , typename ValueTy , 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 > > &&detail::is_array_key_value_sorter< Sorter, Group, KeyTy, ValueTy, Properties, ElementsPerWorkItem >::value, void > sycl::_V1::ext::oneapi::experimental::sort_key_value_over_group (Group group, sycl::span< KeyTy, ElementsPerWorkItem > keys, sycl::span< ValueTy, ElementsPerWorkItem > values, Sorter sorter, Properties properties={})
 
template<typename GroupHelper , typename KeyTy , typename ValueTy , std::size_t ElementsPerWorkItem, typename Properties = ext::oneapi::experimental::empty_properties_t>
std::enable_if_t< detail::is_sort_group_helper< GroupHelper >::value &&sycl::ext::oneapi::experimental::is_property_list_v< std::decay_t< Properties > >, void > sycl::_V1::ext::oneapi::experimental::sort_key_value_over_group (GroupHelper gh, sycl::span< KeyTy, ElementsPerWorkItem > keys, sycl::span< ValueTy, ElementsPerWorkItem > values, Properties properties={})
 
template<typename GroupHelper , typename KeyTy , typename ValueTy , std::size_t ElementsPerWorkItem, typename Compare , typename Properties = ext::oneapi::experimental::empty_properties_t>
std::enable_if_t< detail::is_sort_group_helper< GroupHelper >::value &&detail::is_comparator< Compare, KeyTy >::value &&sycl::ext::oneapi::experimental::is_property_list_v< std::decay_t< Properties > >, void > sycl::_V1::ext::oneapi::experimental::sort_key_value_over_group (GroupHelper gh, sycl::span< KeyTy, ElementsPerWorkItem > keys, sycl::span< ValueTy, ElementsPerWorkItem > values, Compare comp, Properties properties={})