RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
Public Types | Public Member Functions | Public Attributes | List of all members
RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType > Struct Template Reference

#include <View.hpp>

Public Types

using value_type = ValueType
 
using pointer_type = PointerType
 
using layout_type = LayoutType
 
using nc_value_type = camp::decay< value_type >
 
using nc_pointer_type = NonConstPointerType
 
using NonConstView = MultiView< nc_value_type, layout_type, P2Pidx, nc_pointer_type >
 

Public Member Functions

 MultiView ()=default
 
template<typename... Args>
RAJA_HOST_DEVICE constexpr RAJA_INLINE MultiView (pointer_type data_ptr, Args... dim_sizes)
 
RAJA_HOST_DEVICE constexpr RAJA_INLINE MultiView (pointer_type data_ptr, layout_type const &ly)
 
constexpr RAJA_INLINE MultiView (MultiView const &)=default
 
constexpr RAJA_INLINE MultiView (MultiView &&)=default
 
constexpr RAJA_INLINE MultiViewoperator= (MultiView const &)=default
 
constexpr RAJA_INLINE MultiViewoperator= (MultiView &&)=default
 
template<bool IsConstView = std::is_const<value_type>::value>
RAJA_HOST_DEVICE constexpr RAJA_INLINE MultiView (std::enable_if_t< IsConstView, NonConstView > const &rhs)
 
RAJA_HOST_DEVICE constexpr RAJA_INLINE void set_layout (layout_type const &ly)
 
template<bool IsConstValue = std::is_const<value_type>::value>
RAJA_HOST_DEVICE constexpr RAJA_INLINE void set_data (std::enable_if_t< IsConstValue, NonConstPointerType > data_ptr)
 
RAJA_HOST_DEVICE constexpr RAJA_INLINE void set_data (pointer_type data_ptr)
 
RAJA_HOST_DEVICE constexpr RAJA_INLINE layout_type const & get_layout () const
 
RAJA_HOST_DEVICE constexpr RAJA_INLINE pointer_type get_data () const
 
template<size_t n_dims = layout_type::n_dims, typename IdxLin = Index_type>
RAJA_HOST_DEVICE constexpr RAJA_INLINE RAJA::MultiView< ValueType, typename add_offset< layout_type >::type, P2Pidx > shift (const std::array< IdxLin, n_dims > &shift)
 
template<typename... Args>
RAJA_HOST_DEVICE RAJA_INLINE value_typeoperator() (Args... ar) const
 

Public Attributes

layout_type layout {}
 
nc_pointer_type data = nullptr
 

Member Typedef Documentation

◆ value_type

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
using RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::value_type = ValueType

◆ pointer_type

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
using RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::pointer_type = PointerType

◆ layout_type

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
using RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::layout_type = LayoutType

◆ nc_value_type

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
using RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::nc_value_type = camp::decay<value_type>

◆ nc_pointer_type

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
using RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::nc_pointer_type = NonConstPointerType

◆ NonConstView

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
using RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::NonConstView = MultiView<nc_value_type, layout_type, P2Pidx, nc_pointer_type>

Constructor & Destructor Documentation

◆ MultiView() [1/6]

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::MultiView ( )
default

◆ MultiView() [2/6]

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
template<typename... Args>
RAJA_HOST_DEVICE constexpr RAJA_INLINE RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::MultiView ( pointer_type  data_ptr,
Args...  dim_sizes 
)
inlineconstexpr

◆ MultiView() [3/6]

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
RAJA_HOST_DEVICE constexpr RAJA_INLINE RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::MultiView ( pointer_type  data_ptr,
layout_type const &  ly 
)
inlineconstexpr

◆ MultiView() [4/6]

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
constexpr RAJA_INLINE RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::MultiView ( MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType > const &  )
constexprdefault

◆ MultiView() [5/6]

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
constexpr RAJA_INLINE RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::MultiView ( MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType > &&  )
constexprdefault

◆ MultiView() [6/6]

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
template<bool IsConstView = std::is_const<value_type>::value>
RAJA_HOST_DEVICE constexpr RAJA_INLINE RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::MultiView ( std::enable_if_t< IsConstView, NonConstView > const &  rhs)
inlineconstexpr

Member Function Documentation

◆ operator=() [1/2]

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
constexpr RAJA_INLINE MultiView& RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::operator= ( MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType > const &  )
constexprdefault

◆ operator=() [2/2]

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
constexpr RAJA_INLINE MultiView& RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::operator= ( MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType > &&  )
constexprdefault

◆ set_layout()

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
RAJA_HOST_DEVICE constexpr RAJA_INLINE void RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::set_layout ( layout_type const &  ly)
inlineconstexpr

◆ set_data() [1/2]

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
template<bool IsConstValue = std::is_const<value_type>::value>
RAJA_HOST_DEVICE constexpr RAJA_INLINE void RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::set_data ( std::enable_if_t< IsConstValue, NonConstPointerType >  data_ptr)
inlineconstexpr

◆ set_data() [2/2]

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
RAJA_HOST_DEVICE constexpr RAJA_INLINE void RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::set_data ( pointer_type  data_ptr)
inlineconstexpr

◆ get_layout()

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
RAJA_HOST_DEVICE constexpr RAJA_INLINE layout_type const& RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::get_layout ( ) const
inlineconstexpr

◆ get_data()

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
RAJA_HOST_DEVICE constexpr RAJA_INLINE pointer_type RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::get_data ( ) const
inlineconstexpr

◆ shift()

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
template<size_t n_dims = layout_type::n_dims, typename IdxLin = Index_type>
RAJA_HOST_DEVICE constexpr RAJA_INLINE RAJA:: MultiView<ValueType, typename add_offset<layout_type>::type, P2Pidx> RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::shift ( const std::array< IdxLin, n_dims > &  shift)
inlineconstexpr

◆ operator()()

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
template<typename... Args>
RAJA_HOST_DEVICE RAJA_INLINE value_type& RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::operator() ( Args...  ar) const
inline

Member Data Documentation

◆ layout

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
layout_type RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::layout {}

◆ data

template<typename ValueType , typename LayoutType , RAJA::Index_type P2Pidx = 0, typename PointerType = ValueType**, typename NonConstPointerType = camp::type::ptr::add< camp::type::ptr::add<camp::type::cv::rem< camp::type::ptr::rem<camp::type::ptr::rem<PointerType> >>>>>
nc_pointer_type RAJA::MultiView< ValueType, LayoutType, P2Pidx, PointerType, NonConstPointerType >::data = nullptr

The documentation for this struct was generated from the following file: