DDC 0.17.0
Loading...
Searching...
No Matches
parallel_for_each_team.cpp
1// Copyright (C) The DDC development team, see COPYRIGHT.md file
2//
3// SPDX-License-Identifier: MIT
4
5#include <span>
6#include <stdexcept>
7#include <utility>
8
9#include <Kokkos_Core.hpp>
10
13
14namespace ddc::detail {
15
16int team_league_size(std::span<DiscreteVectorElement const> const extents)
17{
18 DiscreteVectorElement league_size = 1;
19 for (DiscreteVectorElement const extent : extents) {
20 league_size *= extent;
21 }
22
23 if (!std::in_range<int>(league_size)) {
24 throw std::runtime_error(
25 "ddc::detail::team_league_size: the domain is too large for a Kokkos team policy");
26 }
27
28 return static_cast<int>(league_size);
29}
30
31} // namespace ddc::detail
The top-level namespace of DDC.