RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
Classes | Namespaces | Typedefs | Functions
Lambda.hpp File Reference

Header file for kernel lambda executor. More...

#include "RAJA/config.hpp"
#include <iostream>
#include <type_traits>
#include "camp/camp.hpp"
#include "camp/concepts.hpp"
#include "camp/tuple.hpp"
#include "RAJA/util/macros.hpp"
#include "RAJA/util/types.hpp"
#include "RAJA/pattern/kernel/internal.hpp"
#include "RAJA/pattern/params/reducer.hpp"

Go to the source code of this file.

Classes

struct  RAJA::internal::lambda_arg_seg_t
 
struct  RAJA::internal::lambda_arg_param_t
 
struct  RAJA::internal::lambda_arg_offset_t
 
struct  RAJA::internal::lambda_arg_value_t< T >
 
struct  RAJA::internal::LambdaArg< T, V >
 
struct  RAJA::statement::Lambda< BodyIdx, Args >
 
struct  RAJA::internal::LambdaSegExtractor< SegmentType, id >
 
struct  RAJA::internal::LambdaOffsetExtractor< OffsetType, id >
 
struct  RAJA::internal::LambdaArgSwitchboard< Types, LambdaArg< lambda_arg_offset_t, id > >
 
struct  RAJA::internal::LambdaArgSwitchboard< Types, LambdaArg< lambda_arg_seg_t, id > >
 
struct  RAJA::internal::LambdaArgSwitchboard< Types, LambdaArg< lambda_arg_param_t, id > >
 
struct  RAJA::internal::LambdaArgSwitchboard< Types, LambdaArg< lambda_arg_value_t< T >, value > >
 
struct  RAJA::internal::StatementExecutor< statement::Lambda< LambdaIndex, Args... >, Types >
 
struct  RAJA::internal::StatementExecutor< statement::Lambda< LambdaIndex >, Types >
 

Namespaces

 RAJA
 
 RAJA::internal
 
 RAJA::statement
 

Typedefs

template<camp::idx_t... args>
using RAJA::Segs = camp::list< internal::LambdaArg< internal::lambda_arg_seg_t, args >... >
 
template<camp::idx_t... args>
using RAJA::Offsets = camp::list< internal::LambdaArg< internal::lambda_arg_offset_t, args >... >
 
template<camp::idx_t... args>
using RAJA::Params = camp::list< internal::LambdaArg< internal::lambda_arg_param_t, args >... >
 
template<typename T , camp::idx_t... values>
using RAJA::ValuesT = camp::list< internal::LambdaArg< internal::lambda_arg_value_t< T >, values >... >
 

Functions

template<camp::idx_t LoopIndex, typename Types , typename Data , typename... targLists>
RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE void RAJA::internal::invoke_lambda_with_args (Data &&data, camp::list< targLists... > const &)
 
template<camp::idx_t LambdaIndex, typename Types , typename Data , camp::idx_t... SEGS, camp::idx_t... PARAMS>
RAJA_INLINE RAJA_HOST_DEVICE void RAJA::internal::invoke_lambda (Data &&data, camp::idx_seq< SEGS... > const &, camp::idx_seq< PARAMS... > const &)
 

Detailed Description

Header file for kernel lambda executor.