| 840 | |
| 841 | template <class ForwardIt, class UnaryPredicate> |
| 842 | sycl::event none_of(sycl::queue &q, |
| 843 | ForwardIt first, ForwardIt last, detail::early_exit_flag_t* out, |
| 844 | UnaryPredicate p, const std::vector<sycl::event>& deps = {}) { |
| 845 | std::size_t problem_size = std::distance(first, last); |
| 846 | if(problem_size == 0) |
| 847 | return sycl::event{}; |
| 848 | |
| 849 | auto evt = any_of(q, first, last, out, p, deps); |
| 850 | return q.single_task(evt, [=](){ |
| 851 | *out = static_cast<detail::early_exit_flag_t>(!(*out)); |
| 852 | }); |
| 853 | } |
| 854 | |
| 855 | template<class ForwardIt, class T> |
| 856 | sycl::event count(sycl::queue &q, util::allocation_group &scratch_allocations, |