diff --git a/Src/Base/AMReX_Reduce.H b/Src/Base/AMReX_Reduce.H index 85710e7fc01..aa1a4dd0122 100644 --- a/Src/Base/AMReX_Reduce.H +++ b/Src/Base/AMReX_Reduce.H @@ -1289,6 +1289,20 @@ IdentityTuple (GpuTuple, ReduceOps) noexcept return r; } +/** + * \brief Return a GpuTuple containing the identity element for each ReduceOp in TypeList. + * For example 0, +inf and -inf for ReduceOpSum, ReduceOpMin and ReduceOpMax respectively. + */ +template +AMREX_GPU_HOST_DEVICE +constexpr GpuTuple +IdentityTuple (GpuTuple, TypeList) noexcept +{ + GpuTuple r{}; + Reduce::detail::for_each_init<0, decltype(r), Ps...>(r); + return r; +} + } #endif