Block-Structured AMR Software Framework
amrex::Reduce::detail Namespace Reference

Classes

struct  iterate_box
 
struct  iterate_box_comp
 

Functions

template<std::size_t I, typename T , typename P >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void for_each_parallel (T &d, T const &s)
 
template<std::size_t I, typename T , typename P , typename P1 , typename... Ps>
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void for_each_parallel (T &d, T const &s)
 
template<std::size_t I, typename T , typename P >
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void for_each_local (T &d, T const &s)
 
template<std::size_t I, typename T , typename P , typename P1 , typename... Ps>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void for_each_local (T &d, T const &s)
 
template<std::size_t I, typename T , typename P >
AMREX_GPU_HOST_DEVICE constexpr AMREX_FORCE_INLINE void for_each_init (T &t)
 
template<std::size_t I, typename T , typename P , typename P1 , typename... Ps>
AMREX_GPU_HOST_DEVICE constexpr AMREX_FORCE_INLINE void for_each_init (T &t)
 
template<typename F >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE auto call_f (F const &f, int i, int j, int k, IndexType) noexcept -> decltype(f(0, 0, 0))
 
template<typename I , typename F , typename T , typename... Ps, std::enable_if_t< std::is_same< iterate_box, I >::value, int > = 0>
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void mf_call_f (F const &f, int ibox, int i, int j, int k, int, T &r) noexcept
 

Function Documentation

◆ call_f()

template<typename F >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE auto amrex::Reduce::detail::call_f ( F const &  f,
int  i,
int  j,
int  k,
IndexType  t 
) -> decltype(f(0,0,0))
noexcept

◆ for_each_init() [1/2]

template<std::size_t I, typename T , typename P >
AMREX_GPU_HOST_DEVICE constexpr AMREX_FORCE_INLINE void amrex::Reduce::detail::for_each_init ( T &  t)
constexpr

◆ for_each_init() [2/2]

template<std::size_t I, typename T , typename P , typename P1 , typename... Ps>
AMREX_GPU_HOST_DEVICE constexpr AMREX_FORCE_INLINE void amrex::Reduce::detail::for_each_init ( T &  t)
constexpr

◆ for_each_local() [1/2]

template<std::size_t I, typename T , typename P >
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void amrex::Reduce::detail::for_each_local ( T &  d,
T const &  s 
)

◆ for_each_local() [2/2]

template<std::size_t I, typename T , typename P , typename P1 , typename... Ps>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void amrex::Reduce::detail::for_each_local ( T &  d,
T const &  s 
)

◆ for_each_parallel() [1/2]

template<std::size_t I, typename T , typename P >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void amrex::Reduce::detail::for_each_parallel ( T &  d,
T const &  s 
)

◆ for_each_parallel() [2/2]

template<std::size_t I, typename T , typename P , typename P1 , typename... Ps>
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void amrex::Reduce::detail::for_each_parallel ( T &  d,
T const &  s 
)

◆ mf_call_f()

template<typename I , typename F , typename T , typename... Ps, std::enable_if_t< std::is_same< iterate_box, I >::value, int > = 0>
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void amrex::Reduce::detail::mf_call_f ( F const &  f,
int  ibox,
int  i,
int  j,
int  k,
int  ncomp,
T &  r 
)
noexcept