File tree Expand file tree Collapse file tree 2 files changed +22
-0
lines changed
include/CLUEstering/internal/meta Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Original file line number Diff line number Diff line change 1+
2+ #pragma once
3+
4+ #include < alpaka/alpaka.hpp>
5+ #include < cstddef>
6+ #include < type_traits>
7+ #include < utility>
8+
9+ namespace clue ::meta {
10+
11+ template <std::size_t N,
12+ typename F,
13+ typename Return = decltype (std::declval<F>().template operator ()<0 >())>
14+ requires std::is_arithmetic_v<Return>
15+ ALPAKA_FN_HOST_ACC inline constexpr auto accumulate (F&& f) {
16+ return [&]<std::size_t ... Ids>(std::index_sequence<Ids...>) -> Return {
17+ return ((f.template operator ()<Ids>()) + ... + Return{});
18+ }(std::make_index_sequence<N>{});
19+ }
20+
21+ } // namespace clue::meta
Original file line number Diff line number Diff line change 11
22#pragma once
33
4+ #include < cstddef>
45#include < type_traits>
56#include < utility>
67#include < alpaka/alpaka.hpp>
You can’t perform that action at this time.
0 commit comments