From 61c15e4852b3fada668af43b037db2cda71d7776 Mon Sep 17 00:00:00 2001 From: Alexey Kukanov Date: Fri, 23 Aug 2024 20:03:58 +0200 Subject: [PATCH] Add search and equal --- .../parallel_api/parallel_range_api.rst | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/source/elements/oneDPL/source/parallel_api/parallel_range_api.rst b/source/elements/oneDPL/source/parallel_api/parallel_range_api.rst index 52a99125e9..0d5308a48a 100644 --- a/source/elements/oneDPL/source/parallel_api/parallel_range_api.rst +++ b/source/elements/oneDPL/source/parallel_api/parallel_range_api.rst @@ -160,5 +160,50 @@ Element Search Operations } +Sequence Search and Comparison +++++++++++++++++++++++++++++++ + +.. code:: cpp + + // Defined in + + namespace oneapi::dpl::ranges { + + // equal + template + requires oneapi::dpl::is_execution_policy_v> && + (std::ranges::sized_range || std::ranges::sized_range) && + std::indirectly_comparable< std::ranges::iterator_t, std::ranges::iterator_t, + Pred, Proj1, Proj2 > + bool equal(ExecutionPolicy&& pol, R1&& r1, R2&& r2, Pred pred = {}, + Proj1 proj1 = {}, Proj2 proj2 = {}); + + // search + template + requires oneapi::dpl::is_execution_policy_v> && + std::ranges::sized_range && std::ranges::sized_range && + std::indirectly_comparable< std::ranges::iterator_t, std::ranges::iterator_t, + Pred, Proj1, Proj2 > + std::ranges::borrowed_subrange_t + search(ExecutionPolicy&& pol, R1&& r1, R2&& r2, Pred pred = {}, + Proj1 proj1 = {}, Proj2 proj2 = {}); + + // search_n + template, Proj>> + requires oneapi::dpl::is_execution_policy_v> && + std::ranges::sized_range && + std::indirectly_comparable< std::ranges::iterator_t, const T*, Pred, Proj > + std::ranges::borrowed_subrange_t + search_n(ExecutionPolicy&& pol, R&& r, std::ranges::range_difference_t count, + const T& value, Pred pred = {}, Proj proj = {}); + + } + .. _`C++ Standard`: https://isocpp.org/std/the-standard .. _`SYCL`: https://registry.khronos.org/SYCL/specs/sycl-2020/html/sycl-2020.html