Block-Structured AMR Software Framework
AMReX_Loop.H File Reference
#include <AMReX_Config.H>
#include <AMReX_Box.H>
#include <AMReX_ConstexprFor.H>
#include <AMReX_Extension.H>
#include <AMReX_Loop.nolint.H>

Go to the source code of this file.

Namespaces

 amrex
 
 amrex::loop_detail
 

Functions

template<typename F , std::size_t... Ns, class... Args>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE auto amrex::loop_detail::call_f_intvect_inner (std::index_sequence< Ns... >, F const &f, IntVectND< 1 > iv, Args...args) noexcept -> decltype(f(0, 0, 0, args...))
 
template<typename F , std::size_t... Ns, class... Args>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE auto amrex::loop_detail::call_f_intvect_inner (std::index_sequence< Ns... >, F const &f, IntVectND< 2 > iv, Args...args) noexcept -> decltype(f(0, 0, 0, args...))
 
template<typename F , int dim, std::size_t... Ns, class... Args>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE auto amrex::loop_detail::call_f_intvect_inner (std::index_sequence< Ns... >, F const &f, IntVectND< dim > iv, Args...args) noexcept -> decltype(f(iv, args...))
 
template<typename F , int dim>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE auto amrex::loop_detail::call_f_intvect (F const &f, IntVectND< dim > iv) noexcept -> decltype(call_f_intvect_inner(std::make_index_sequence< dim >(), f, iv))
 
template<typename F , int dim>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE auto amrex::loop_detail::call_f_intvect_ncomp (F const &f, IntVectND< dim > iv, int n) noexcept -> decltype(call_f_intvect_inner(std::make_index_sequence< dim >(), f, iv, 0))
 
template<typename F , std::size_t... Ns, class... Args>
AMREX_FORCE_INLINE auto amrex::loop_detail::call_f_intvect_inner_cpu (std::index_sequence< Ns... >, F const &f, IntVectND< 1 > iv, Args...args) noexcept -> decltype(f(0, 0, 0, args...))
 
template<typename F , std::size_t... Ns, class... Args>
AMREX_FORCE_INLINE auto amrex::loop_detail::call_f_intvect_inner_cpu (std::index_sequence< Ns... >, F const &f, IntVectND< 2 > iv, Args...args) noexcept -> decltype(f(0, 0, 0, args...))
 
template<typename F , int dim, std::size_t... Ns, class... Args>
AMREX_FORCE_INLINE auto amrex::loop_detail::call_f_intvect_inner_cpu (std::index_sequence< Ns... >, F const &f, IntVectND< dim > iv, Args...args) noexcept -> decltype(f(iv, args...))
 
template<typename F , int dim>
AMREX_FORCE_INLINE auto amrex::loop_detail::call_f_intvect_cpu (F const &f, IntVectND< dim > iv) noexcept -> decltype(call_f_intvect_inner_cpu(std::make_index_sequence< dim >(), f, iv))
 
template<typename F , int dim>
AMREX_FORCE_INLINE auto amrex::loop_detail::call_f_intvect_ncomp_cpu (F const &f, IntVectND< dim > iv, int n) noexcept -> decltype(call_f_intvect_inner_cpu(std::make_index_sequence< dim >(), f, iv, 0))
 
template<class F >
AMREX_GPU_HOST_DEVICE AMREX_ATTRIBUTE_FLATTEN_FOR void amrex::Loop (Dim3 lo, Dim3 hi, F const &f) noexcept
 
template<class F >
AMREX_GPU_HOST_DEVICE AMREX_ATTRIBUTE_FLATTEN_FOR void amrex::Loop (Dim3 lo, Dim3 hi, int ncomp, F const &f) noexcept
 
template<class F >
AMREX_GPU_HOST_DEVICE AMREX_ATTRIBUTE_FLATTEN_FOR void amrex::LoopConcurrent (Dim3 lo, Dim3 hi, F const &f) noexcept
 
template<class F >
AMREX_GPU_HOST_DEVICE AMREX_ATTRIBUTE_FLATTEN_FOR void amrex::LoopConcurrent (Dim3 lo, Dim3 hi, int ncomp, F const &f) noexcept
 
template<int idim, typename L , int dim>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void amrex::loop_detail::Loop_impND (L const &f, IntVectND< dim > const lo, IntVectND< dim > const hi, IntVectND< dim > iv) noexcept
 
template<class F , int dim>
AMREX_GPU_HOST_DEVICE AMREX_ATTRIBUTE_FLATTEN_FOR void amrex::Loop (BoxND< dim > const &bx, F const &f) noexcept
 
template<int idim, typename L , int dim>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void amrex::loop_detail::Loop_impND (L const &f, IntVectND< dim > const lo, IntVectND< dim > const hi, IntVectND< dim > iv, int n) noexcept
 
template<class F , int dim>
AMREX_GPU_HOST_DEVICE AMREX_ATTRIBUTE_FLATTEN_FOR void amrex::Loop (BoxND< dim > const &bx, int ncomp, F const &f) noexcept
 
template<int idim, typename L , int dim>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void amrex::loop_detail::LoopConcurrent_impND (L const &f, IntVectND< dim > const lo, IntVectND< dim > const hi, IntVectND< dim > iv) noexcept
 
template<class F , int dim>
AMREX_GPU_HOST_DEVICE AMREX_ATTRIBUTE_FLATTEN_FOR void amrex::LoopConcurrent (BoxND< dim > const &bx, F const &f) noexcept
 
template<int idim, typename L , int dim>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void amrex::loop_detail::LoopConcurrent_impND (L const &f, IntVectND< dim > const lo, IntVectND< dim > const hi, IntVectND< dim > iv, int n) noexcept
 
template<class F , int dim>
AMREX_GPU_HOST_DEVICE AMREX_ATTRIBUTE_FLATTEN_FOR void amrex::LoopConcurrent (BoxND< dim > const &bx, int ncomp, F const &f) noexcept
 
template<class F >
AMREX_ATTRIBUTE_FLATTEN_FOR void amrex::LoopOnCpu (Dim3 lo, Dim3 hi, F const &f) noexcept
 
template<class F >
AMREX_ATTRIBUTE_FLATTEN_FOR void amrex::LoopOnCpu (Dim3 lo, Dim3 hi, int ncomp, F const &f) noexcept
 
template<class F >
AMREX_ATTRIBUTE_FLATTEN_FOR void amrex::LoopConcurrentOnCpu (Dim3 lo, Dim3 hi, F const &f) noexcept
 
template<class F >
AMREX_ATTRIBUTE_FLATTEN_FOR void amrex::LoopConcurrentOnCpu (Dim3 lo, Dim3 hi, int ncomp, F const &f) noexcept
 
template<int idim, typename L , int dim>
AMREX_FORCE_INLINE void amrex::loop_detail::LoopOnCpu_impND (L const &f, IntVectND< dim > const lo, IntVectND< dim > const hi, IntVectND< dim > iv) noexcept
 
template<class F , int dim>
AMREX_ATTRIBUTE_FLATTEN_FOR void amrex::LoopOnCpu (BoxND< dim > const &bx, F const &f) noexcept
 
template<int idim, typename L , int dim>
AMREX_FORCE_INLINE void amrex::loop_detail::LoopOnCpu_impND (L const &f, IntVectND< dim > const lo, IntVectND< dim > const hi, IntVectND< dim > iv, int n) noexcept
 
template<class F , int dim>
AMREX_ATTRIBUTE_FLATTEN_FOR void amrex::LoopOnCpu (BoxND< dim > const &bx, int ncomp, F const &f) noexcept
 
template<int idim, typename L , int dim>
AMREX_FORCE_INLINE void amrex::loop_detail::LoopConcurrentOnCpu_impND (L const &f, IntVectND< dim > const lo, IntVectND< dim > const hi, IntVectND< dim > iv) noexcept
 
template<class F , int dim>
AMREX_ATTRIBUTE_FLATTEN_FOR void amrex::LoopConcurrentOnCpu (BoxND< dim > const &bx, F const &f) noexcept
 
template<int idim, typename L , int dim>
AMREX_FORCE_INLINE void amrex::loop_detail::LoopConcurrentOnCpu_impND (L const &f, IntVectND< dim > const lo, IntVectND< dim > const hi, IntVectND< dim > iv, int n) noexcept
 
template<class F , int dim>
AMREX_ATTRIBUTE_FLATTEN_FOR void amrex::LoopConcurrentOnCpu (BoxND< dim > const &bx, int ncomp, F const &f) noexcept