Block-Structured AMR Software Framework
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
AMReX_CTOParallelForImpl.H File Reference
#include <AMReX_BLassert.H>
#include <AMReX_Box.H>
#include <AMReX_TypeList.H>
#include <array>
#include <type_traits>

Go to the source code of this file.

Classes

struct  amrex::CompileTimeOptions< ctr >
 
struct  amrex::detail::CTOWrapper< F, ctr >
 

Namespaces

namespace  amrex
 
namespace  amrex::detail
 

Functions

template<class L , typename... As, class... Fs>
bool amrex::detail::AnyCTO_helper2 (const L &l, TypeList< As... >, std::array< int, sizeof...(As)> const &runtime_options, const Fs &...cto_functs)
 
template<class L , typename... PPs, typename RO , class... Fs>
void amrex::detail::AnyCTO_helper1 (const L &l, TypeList< PPs... >, RO const &runtime_options, const Fs &...cto_functs)
 
template<class L , class... Fs, typename... CTOs>
void amrex::AnyCTO (TypeList< CTOs... > list_of_compile_time_options, std::array< int, sizeof...(CTOs)> const &runtime_options, L &&l, Fs &&...cto_functs)
 Compile time optimization of kernels with run time options.
 
template<int MT, typename T , class F , typename... CTOs>
std::enable_if_t< std::is_integral_v< T > > amrex::ParallelFor (TypeList< CTOs... > ctos, std::array< int, sizeof...(CTOs)> const &runtime_options, T N, F &&f)
 
template<int MT, class F , int dim, typename... CTOs>
void amrex::ParallelFor (TypeList< CTOs... > ctos, std::array< int, sizeof...(CTOs)> const &runtime_options, BoxND< dim > const &box, F &&f)
 
template<int MT, typename T , class F , int dim, typename... CTOs>
std::enable_if_t< std::is_integral_v< T > > amrex::ParallelFor (TypeList< CTOs... > ctos, std::array< int, sizeof...(CTOs)> const &runtime_options, BoxND< dim > const &box, T ncomp, F &&f)
 
template<typename T , class F , typename... CTOs>
std::enable_if_t< std::is_integral_v< T > > amrex::ParallelFor (TypeList< CTOs... > ctos, std::array< int, sizeof...(CTOs)> const &option, T N, F &&f)
 ParallelFor with compile time optimization of kernels with run time options.
 
template<class F , int dim, typename... CTOs>
void amrex::ParallelFor (TypeList< CTOs... > ctos, std::array< int, sizeof...(CTOs)> const &option, BoxND< dim > const &box, F &&f)
 ParallelFor with compile time optimization of kernels with run time options.
 
template<typename T , class F , int dim, typename... CTOs>
std::enable_if_t< std::is_integral_v< T > > amrex::ParallelFor (TypeList< CTOs... > ctos, std::array< int, sizeof...(CTOs)> const &option, BoxND< dim > const &box, T ncomp, F &&f)
 ParallelFor with compile time optimization of kernels with run time options.