| 343 | |
| 344 | template <class ForwardIt, class Generator> |
| 345 | sycl::event generate(sycl::queue &q, ForwardIt first, ForwardIt last, |
| 346 | Generator g, const std::vector<sycl::event> &deps = {}) { |
| 347 | if(first == last) |
| 348 | return sycl::event{}; |
| 349 | return q.parallel_for(sycl::range{std::distance(first, last)}, deps, |
| 350 | [=](sycl::id<1> id) { |
| 351 | auto it = first; |
| 352 | std::advance(it, id[0]); |
| 353 | *it = g(); |
| 354 | }); |
| 355 | } |
| 356 | |
| 357 | template <class ForwardIt, class Size, class Generator> |
| 358 | sycl::event generate_n(sycl::queue &q, ForwardIt first, Size count, Generator g, |