diff --git a/include/oneapi/dpl/pstl/hetero/dpcpp/sycl_traits.h b/include/oneapi/dpl/pstl/hetero/dpcpp/sycl_traits.h index ab2cf1425ff..81be0dbe7d4 100644 --- a/include/oneapi/dpl/pstl/hetero/dpcpp/sycl_traits.h +++ b/include/oneapi/dpl/pstl/hetero/dpcpp/sycl_traits.h @@ -43,20 +43,39 @@ #endif -_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__not_pred) -_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__reorder_pred) -_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__equal_value_by_pred) -_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__equal_value) -_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__not_equal_value) -_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__transform_functor) -_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__transform_if_unary_functor) -_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__transform_if_binary_functor) -_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__replace_functor) -_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__replace_copy_functor) - namespace oneapi::dpl::__internal { +template +class __not_pred; + +template +class __reorder_pred; + +template +class __equal_value_by_pred; + +template +class __equal_value; + +template +class __not_equal_value; + +template +class __transform_functor; + +template +class __transform_if_unary_functor; + +template +class __transform_if_binary_functor; + +template +class __replace_functor; + +template +class __replace_copy_functor; + template struct fill_functor; @@ -78,8 +97,25 @@ struct __is_heap_check; template struct __create_mask_unique_copy; +template +struct __brick_fill; + +template +struct __brick_fill_n; + } // namespace oneapi::dpl::__internal +_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__not_pred) +_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__reorder_pred) +_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__equal_value_by_pred) +_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__equal_value) +_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__not_equal_value) +_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__transform_functor) +_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__transform_if_unary_functor) +_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__transform_if_binary_functor) +_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__replace_functor) +_ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__replace_copy_functor) + _ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::fill_functor) _ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::generate_functor) _ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__internal::__brick_fill) @@ -100,6 +136,61 @@ struct __early_exit_find_or; _ONEDPL_DEVICE_COPYABLE(oneapi::dpl::__par_backend_hetero::__early_exit_find_or); +namespace oneapi::dpl::unseq_backend +{ + +template +struct walk_n; + +template +struct walk_adjacent_difference; + +template +struct transform_reduce; + +template +struct reduce_over_group; + +template +struct single_match_pred_by_idx; + +template +struct multiple_match_pred; + +template +struct n_elem_match_pred; + +template +struct first_match_pred; + +template +struct __create_mask; + +template +struct __copy_by_mask; + +template +struct __partition_by_mask; + +template +struct __global_scan_functor; + +template +struct __scan; + +template +struct __brick_includes; + +template +class __brick_set_op; + +template +struct __brick_reduce_idx; + +} // namespace oneapi::dpl::unseq_backend + _ONEDPL_DEVICE_COPYABLE(oneapi::dpl::unseq_backend::walk_n) _ONEDPL_DEVICE_COPYABLE(oneapi::dpl::unseq_backend::walk_adjacent_difference) _ONEDPL_DEVICE_COPYABLE(oneapi::dpl::unseq_backend::transform_reduce) @@ -128,8 +219,8 @@ struct custom_brick; template struct replace_if_fun; -template -class transform_if_stencil_fun; +template +struct scan_by_key_fun; template struct segmented_scan_fun; @@ -137,8 +228,8 @@ struct segmented_scan_fun; template class scatter_and_accumulate_fun; -template -struct scan_by_key_fun; +template +class transform_if_stencil_fun; } // namespace oneapi::dpl::internal @@ -149,6 +240,20 @@ _ONEDPL_DEVICE_COPYABLE(oneapi::dpl::internal::segmented_scan_fun) _ONEDPL_DEVICE_COPYABLE(oneapi::dpl::internal::scatter_and_accumulate_fun) _ONEDPL_DEVICE_COPYABLE(oneapi::dpl::internal::transform_if_stencil_fun) +namespace oneapi::dpl +{ + +template +class zip_iterator; + +template +class transform_iterator; + +template +class permutation_iterator; + +} // namespace oneapi::dpl + _ONEDPL_DEVICE_COPYABLE(oneapi::dpl::zip_iterator) _ONEDPL_DEVICE_COPYABLE(oneapi::dpl::transform_iterator) _ONEDPL_DEVICE_COPYABLE(oneapi::dpl::permutation_iterator)