Distributed Ranges
Loading...
Searching...
No Matches
fill.hpp
1// SPDX-FileCopyrightText: Intel Corporation
2//
3// SPDX-License-Identifier: BSD-3-Clause
4
5#pragma once
6
7#include <algorithm>
8#include <execution>
9#include <type_traits>
10#include <utility>
11
12#include <dr/concepts/concepts.hpp>
13#include <dr/detail/logger.hpp>
14#include <dr/detail/onedpl_direct_iterator.hpp>
15#include <dr/detail/ranges_shim.hpp>
16#include <dr/mp/global.hpp>
17
18namespace dr::mp {
19
21auto fill(dr::distributed_contiguous_range auto &&dr, auto value) {
22 for_each(dr, [=](auto &v) { v = value; });
23 return rng::end(dr);
24}
25
27template <dr::distributed_iterator DI>
28auto fill(DI first, DI last, auto value) {
29 mp::fill(rng::subrange(first, last), value);
30 return last;
31}
32
33} // namespace dr::mp
Definition: concepts.hpp:42