|
| template<typename T , typename N , std::enable_if_t< std::is_integral_v< N >, int > = 0> |
| T | amrex::Reduce::Sum (N n, T const *v, T init_val=0) |
| | Compute the sum of an array of values.
|
| |
| template<typename T , typename N , typename F , std::enable_if_t< std::is_integral_v< N > &&!std::is_same_v< T *, std::decay_t< F > >, int > = 0> |
| T | amrex::Reduce::Sum (N n, F const &f, T init_val=0) |
| | Compute the sum of values generated by a callable.
|
| |
| template<typename T , typename N , std::enable_if_t< std::is_integral_v< N >, int > = 0> |
| T | amrex::Reduce::Min (N n, T const *v, T init_val=std::numeric_limits< T >::max()) |
| | Compute the minimum of an array of values.
|
| |
| template<typename T , typename N , typename F , std::enable_if_t< std::is_integral_v< N > &&!std::is_same_v< T *, std::decay_t< F > >, int > = 0> |
| T | amrex::Reduce::Min (N n, F const &f, T init_val=std::numeric_limits< T >::max()) |
| | Compute the minimum of values generated by a callable.
|
| |
| template<typename T , typename N , std::enable_if_t< std::is_integral_v< N >, int > = 0> |
| T | amrex::Reduce::Max (N n, T const *v, T init_val=std::numeric_limits< T >::lowest()) |
| | Compute the maximum of an array of values.
|
| |
| template<typename T , typename N , typename F , std::enable_if_t< std::is_integral_v< N > &&!std::is_same_v< T *, std::decay_t< F > >, int > = 0> |
| T | amrex::Reduce::Max (N n, F const &f, T init_val=std::numeric_limits< T >::lowest()) |
| | Compute the maximum of values generated by a callable.
|
| |
| template<typename T , typename N , std::enable_if_t< std::is_integral_v< N >, int > = 0> |
| std::pair< T, T > | amrex::Reduce::MinMax (N n, T const *v) |
| | Compute the minimum and maximum of an array of values.
|
| |
| template<typename T , typename N , typename F , std::enable_if_t< std::is_integral_v< N > &&!std::is_same_v< T *, std::decay_t< F > >, int > = 0> |
| std::pair< T, T > | amrex::Reduce::MinMax (N n, F const &f) |
| | Compute the minimum and maximum of values generated by a callable.
|
| |
| template<typename T , typename N , typename P , std::enable_if_t< std::is_integral_v< N >, int > = 0> |
| bool | amrex::Reduce::AnyOf (N n, T const *v, P const &pred) |
| | Test whether any element in an array satisfies a unary predicate.
|
| |
| template<typename P , int dim> |
| bool | amrex::Reduce::AnyOf (BoxND< dim > const &box, P const &pred) |
| | Test whether the predicate is true for any index in a Box.
|
| |
| template<typename... Ts, typename... Ps> |
| __host__ __device__ constexpr GpuTuple< Ts... > | amrex::IdentityTuple (GpuTuple< Ts... >, ReduceOps< Ps... >) noexcept |
| | Return a GpuTuple containing the identity element for each operation in ReduceOps. For example 0, +inf and -inf for ReduceOpSum, ReduceOpMin and ReduceOpMax respectively.
|
| |
| template<typename... Ts, typename... Ps> |
| __host__ __device__ constexpr GpuTuple< Ts... > | amrex::IdentityTuple (GpuTuple< Ts... >, TypeList< Ps... >) noexcept |
| | Return a GpuTuple containing the identity element for each ReduceOp in TypeList. For example 0, +inf and -inf for ReduceOpSum, ReduceOpMin and ReduceOpMax respectively.
|
| |