|
template<int Dimensions> |
id< Dimensions > | sycl::_V1::detail::linear_id_to_id (range< Dimensions >, size_t linear_id) |
|
template<> |
id< 1 > | sycl::_V1::detail::linear_id_to_id (range< 1 >, size_t linear_id) |
|
template<> |
id< 2 > | sycl::_V1::detail::linear_id_to_id (range< 2 > r, size_t linear_id) |
|
template<> |
id< 3 > | sycl::_V1::detail::linear_id_to_id (range< 3 > r, size_t linear_id) |
|
template<typename Group > |
size_t | sycl::_V1::detail::get_local_linear_range (Group g) |
|
template<> |
size_t | sycl::_V1::detail::get_local_linear_range< group< 1 > > (group< 1 > g) |
|
template<> |
size_t | sycl::_V1::detail::get_local_linear_range< group< 2 > > (group< 2 > g) |
|
template<> |
size_t | sycl::_V1::detail::get_local_linear_range< group< 3 > > (group< 3 > g) |
|
template<> |
size_t | sycl::_V1::detail::get_local_linear_range< ext::oneapi::sub_group > (ext::oneapi::sub_group g) |
|
template<typename Group > |
Group::linear_id_type | sycl::_V1::detail::get_local_linear_id (Group g) |
|
template<> |
ext::oneapi::sub_group::linear_id_type | sycl::_V1::detail::get_local_linear_id< ext::oneapi::sub_group > (ext::oneapi::sub_group g) |
|
template<typename T , class BinaryOperation > |
constexpr std::enable_if_t<(is_complex< T >::value &&is_plus< T, BinaryOperation >::value), T > | sycl::_V1::detail::identity_for_ga_op () |
|
template<typename T , class BinaryOperation > |
constexpr std::enable_if_t<(is_complex< T >::value &&is_multiplies< T, BinaryOperation >::value), T > | sycl::_V1::detail::identity_for_ga_op () |
|
template<typename T , class BinaryOperation > |
constexpr std::enable_if_t<!is_complex< T >::value, T > | sycl::_V1::detail::identity_for_ga_op () |
|
template<typename Group , typename Ptr , class Function > |
Function | sycl::_V1::detail::for_each (Group g, Ptr first, Ptr last, Function f) |
|
template<typename Group , typename T , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&(detail::is_scalar_arithmetic< T >::value||(detail::is_complex< T >::value &&detail::is_multiplies< T, BinaryOperation >::value)) &&detail::is_native_op< T, BinaryOperation >::value), T > | sycl::_V1::reduce_over_group (Group g, T x, BinaryOperation binary_op) |
|
template<typename Group , typename T , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_complex< T >::value &&detail::is_native_op< T, sycl::plus< T >>::value &&detail::is_plus< T, BinaryOperation >::value), T > | sycl::_V1::reduce_over_group (Group g, T x, BinaryOperation binary_op) |
|
template<typename Group , typename T , int N, class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_vector_arithmetic_or_complex< sycl::vec< T, N >>::value &&detail::is_native_op< sycl::vec< T, N >, BinaryOperation >::value), sycl::vec< T, N > > | sycl::_V1::reduce_over_group (Group g, sycl::vec< T, N > x, BinaryOperation binary_op) |
|
template<typename Group , typename V , typename T , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&(detail::is_scalar_arithmetic< V >::value||detail::is_complex< V >::value) &&(detail::is_scalar_arithmetic< T >::value||detail::is_complex< T >::value) &&detail::is_native_op< T, BinaryOperation >::value &&detail::is_plus_or_multiplies_if_complex< T, BinaryOperation >::value &&std::is_convertible_v< V, T >), T > | sycl::_V1::reduce_over_group (Group g, V x, T init, BinaryOperation binary_op) |
|
template<typename Group , typename V , typename T , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_vector_arithmetic_or_complex< V >::value &&detail::is_vector_arithmetic_or_complex< T >::value &&detail::is_native_op< V, BinaryOperation >::value &&detail::is_native_op< T, BinaryOperation >::value), T > | sycl::_V1::reduce_over_group (Group g, V x, T init, BinaryOperation binary_op) |
|
template<typename Group , typename Ptr , typename T , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_pointer< Ptr >::value &&detail::is_arithmetic_or_complex< typename detail::remove_pointer< Ptr >::type >::value &&detail::is_arithmetic_or_complex< T >::value &&detail::is_plus_or_multiplies_if_complex< T, BinaryOperation >::value &&detail::is_native_op< T, BinaryOperation >::value), T > | sycl::_V1::joint_reduce (Group g, Ptr first, Ptr last, T init, BinaryOperation binary_op) |
|
template<typename Group , typename Ptr , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_pointer< Ptr >::value &&detail::is_arithmetic_or_complex< typename detail::remove_pointer< Ptr >::type >::value &&detail::is_plus_or_multiplies_if_complex< typename detail::remove_pointer< Ptr >::type, BinaryOperation >::value), typename detail::remove_pointer< Ptr >::type > | sycl::_V1::joint_reduce (Group g, Ptr first, Ptr last, BinaryOperation binary_op) |
|
template<typename Group > |
std::enable_if_t< is_group_v< std::decay_t< Group > >, bool > | sycl::_V1::any_of_group (Group g, bool pred) |
|
template<typename Group , typename T , class Predicate > |
std::enable_if_t< is_group_v< Group >, bool > | sycl::_V1::any_of_group (Group g, T x, Predicate pred) |
|
template<typename Group , typename Ptr , class Predicate > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_pointer< Ptr >::value), bool > | sycl::_V1::joint_any_of (Group g, Ptr first, Ptr last, Predicate pred) |
|
template<typename Group > |
std::enable_if_t< is_group_v< std::decay_t< Group > >, bool > | sycl::_V1::all_of_group (Group g, bool pred) |
|
template<typename Group , typename T , class Predicate > |
std::enable_if_t< is_group_v< std::decay_t< Group > >, bool > | sycl::_V1::all_of_group (Group g, T x, Predicate pred) |
|
template<typename Group , typename Ptr , class Predicate > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_pointer< Ptr >::value), bool > | sycl::_V1::joint_all_of (Group g, Ptr first, Ptr last, Predicate pred) |
|
template<typename Group > |
std::enable_if_t< is_group_v< std::decay_t< Group > >, bool > | sycl::_V1::none_of_group (Group g, bool pred) |
|
template<typename Group , typename T , class Predicate > |
std::enable_if_t< is_group_v< std::decay_t< Group > >, bool > | sycl::_V1::none_of_group (Group g, T x, Predicate pred) |
|
template<typename Group , typename Ptr , class Predicate > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_pointer< Ptr >::value), bool > | sycl::_V1::joint_none_of (Group g, Ptr first, Ptr last, Predicate pred) |
|
template<typename Group , typename T > |
std::enable_if_t<(std::is_same_v< std::decay_t< Group >, sub_group > &&(std::is_trivially_copyable_v< T >||detail::is_vec< T >::value)), T > | sycl::_V1::shift_group_left (Group, T x, typename Group::linear_id_type delta=1) |
|
template<typename Group , typename T > |
std::enable_if_t<(std::is_same_v< std::decay_t< Group >, sub_group > &&(std::is_trivially_copyable_v< T >||detail::is_vec< T >::value)), T > | sycl::_V1::shift_group_right (Group, T x, typename Group::linear_id_type delta=1) |
|
template<typename Group , typename T > |
std::enable_if_t<(std::is_same_v< std::decay_t< Group >, sub_group > &&(std::is_trivially_copyable_v< T >||detail::is_vec< T >::value)), T > | sycl::_V1::permute_group_by_xor (Group, T x, typename Group::linear_id_type mask) |
|
template<typename Group , typename T > |
std::enable_if_t<(std::is_same_v< std::decay_t< Group >, sub_group > &&(std::is_trivially_copyable_v< T >||detail::is_vec< T >::value)), T > | sycl::_V1::select_from_group (Group, T x, typename Group::id_type local_id) |
|
template<typename Group , typename T > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&(std::is_trivially_copyable_v< T >||detail::is_vec< T >::value)), T > | sycl::_V1::group_broadcast (Group g, T x, typename Group::id_type local_id) |
|
template<typename Group , typename T > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&(std::is_trivially_copyable_v< T >||detail::is_vec< T >::value)), T > | sycl::_V1::group_broadcast (Group g, T x, typename Group::linear_id_type linear_local_id) |
|
template<typename Group , typename T > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&(std::is_trivially_copyable_v< T >||detail::is_vec< T >::value)), T > | sycl::_V1::group_broadcast (Group g, T x) |
|
template<typename Group , typename T , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&(detail::is_scalar_arithmetic< T >::value||(detail::is_complex< T >::value &&detail::is_multiplies< T, BinaryOperation >::value)) &&detail::is_native_op< T, BinaryOperation >::value), T > | sycl::_V1::exclusive_scan_over_group (Group g, T x, BinaryOperation binary_op) |
|
template<typename Group , typename T , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_complex< T >::value &&detail::is_native_op< T, sycl::plus< T >>::value &&detail::is_plus< T, BinaryOperation >::value), T > | sycl::_V1::exclusive_scan_over_group (Group g, T x, BinaryOperation binary_op) |
|
template<typename Group , typename T , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_vector_arithmetic_or_complex< T >::value &&detail::is_native_op< T, BinaryOperation >::value), T > | sycl::_V1::exclusive_scan_over_group (Group g, T x, BinaryOperation binary_op) |
|
template<typename Group , typename V , typename T , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_vector_arithmetic_or_complex< V >::value &&detail::is_vector_arithmetic_or_complex< T >::value &&detail::is_native_op< V, BinaryOperation >::value &&detail::is_native_op< T, BinaryOperation >::value), T > | sycl::_V1::exclusive_scan_over_group (Group g, V x, T init, BinaryOperation binary_op) |
|
template<typename Group , typename V , typename T , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&(detail::is_scalar_arithmetic< V >::value||detail::is_complex< V >::value) &&(detail::is_scalar_arithmetic< T >::value||detail::is_complex< T >::value) &&detail::is_native_op< T, BinaryOperation >::value &&detail::is_plus_or_multiplies_if_complex< T, BinaryOperation >::value &&std::is_convertible_v< V, T >), T > | sycl::_V1::exclusive_scan_over_group (Group g, V x, T init, BinaryOperation binary_op) |
|
template<typename Group , typename InPtr , typename OutPtr , typename T , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_pointer< InPtr >::value &&detail::is_pointer< OutPtr >::value &&detail::is_arithmetic_or_complex< typename detail::remove_pointer< InPtr >::type >::value &&detail::is_arithmetic_or_complex< typename detail::remove_pointer< OutPtr >::type >::value &&detail::is_arithmetic_or_complex< T >::value &&detail::is_native_op< T, BinaryOperation >::value &&detail::is_plus_or_multiplies_if_complex< T, BinaryOperation >::value), OutPtr > | sycl::_V1::joint_exclusive_scan (Group g, InPtr first, InPtr last, OutPtr result, T init, BinaryOperation binary_op) |
|
template<typename Group , typename InPtr , typename OutPtr , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_pointer< InPtr >::value &&detail::is_pointer< OutPtr >::value &&detail::is_arithmetic_or_complex< typename detail::remove_pointer< InPtr >::type >::value &&detail::is_arithmetic_or_complex< typename detail::remove_pointer< OutPtr >::type >::value &&detail::is_native_op< typename detail::remove_pointer< OutPtr >::type, BinaryOperation >::value &&detail::is_plus_or_multiplies_if_complex< typename detail::remove_pointer< OutPtr >::type, BinaryOperation >::value), OutPtr > | sycl::_V1::joint_exclusive_scan (Group g, InPtr first, InPtr last, OutPtr result, BinaryOperation binary_op) |
|
template<typename Group , typename T , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_vector_arithmetic_or_complex< T >::value &&detail::is_native_op< T, BinaryOperation >::value), T > | sycl::_V1::inclusive_scan_over_group (Group g, T x, BinaryOperation binary_op) |
|
template<typename Group , typename T , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&(detail::is_scalar_arithmetic< T >::value||(detail::is_complex< T >::value &&detail::is_multiplies< T, BinaryOperation >::value)) &&detail::is_native_op< T, BinaryOperation >::value), T > | sycl::_V1::inclusive_scan_over_group (Group g, T x, BinaryOperation binary_op) |
|
template<typename Group , typename T , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_complex< T >::value &&detail::is_native_op< T, sycl::plus< T >>::value &&detail::is_plus< T, BinaryOperation >::value), T > | sycl::_V1::inclusive_scan_over_group (Group g, T x, BinaryOperation binary_op) |
|
template<typename Group , typename V , class BinaryOperation , typename T > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&(detail::is_scalar_arithmetic< V >::value||detail::is_complex< V >::value) &&(detail::is_scalar_arithmetic< T >::value||detail::is_complex< T >::value) &&detail::is_native_op< T, BinaryOperation >::value &&detail::is_plus_or_multiplies_if_complex< T, BinaryOperation >::value &&std::is_convertible_v< V, T >), T > | sycl::_V1::inclusive_scan_over_group (Group g, V x, BinaryOperation binary_op, T init) |
|
template<typename Group , typename V , class BinaryOperation , typename T > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_vector_arithmetic_or_complex< V >::value &&detail::is_vector_arithmetic_or_complex< T >::value &&detail::is_native_op< V, BinaryOperation >::value &&detail::is_native_op< T, BinaryOperation >::value), T > | sycl::_V1::inclusive_scan_over_group (Group g, V x, BinaryOperation binary_op, T init) |
|
template<typename Group , typename InPtr , typename OutPtr , class BinaryOperation , typename T > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_pointer< InPtr >::value &&detail::is_pointer< OutPtr >::value &&detail::is_arithmetic_or_complex< typename detail::remove_pointer< InPtr >::type >::value &&detail::is_arithmetic_or_complex< typename detail::remove_pointer< OutPtr >::type >::value &&detail::is_arithmetic_or_complex< T >::value &&detail::is_native_op< T, BinaryOperation >::value &&detail::is_plus_or_multiplies_if_complex< T, BinaryOperation >::value), OutPtr > | sycl::_V1::joint_inclusive_scan (Group g, InPtr first, InPtr last, OutPtr result, BinaryOperation binary_op, T init) |
|
template<typename Group , typename InPtr , typename OutPtr , class BinaryOperation > |
std::enable_if_t<(is_group_v< std::decay_t< Group >> &&detail::is_pointer< InPtr >::value &&detail::is_pointer< OutPtr >::value &&detail::is_arithmetic_or_complex< typename detail::remove_pointer< InPtr >::type >::value &&detail::is_native_op< typename detail::remove_pointer< OutPtr >::type, BinaryOperation >::value &&detail::is_plus_or_multiplies_if_complex< typename detail::remove_pointer< OutPtr >::type, BinaryOperation >::value), OutPtr > | sycl::_V1::joint_inclusive_scan (Group g, InPtr first, InPtr last, OutPtr result, BinaryOperation binary_op) |
|