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

Header file for multi-iterator Zip Views. More...

#include "RAJA/config.hpp"
#include <iostream>
#include <type_traits>
#include "RAJA/pattern/detail/algorithm.hpp"
#include "RAJA/util/camp_aliases.hpp"
#include "RAJA/util/concepts.hpp"

Go to the source code of this file.

Classes

struct  RAJA::zip_tuple_element< I, zip_tuple< is_val, Ts... > >
 
struct  RAJA::detail::PassThrough
 
struct  RAJA::detail::Move
 
struct  RAJA::detail::PreInc
 
struct  RAJA::detail::PreDec
 
struct  RAJA::detail::PlusEq< difference_type >
 
struct  RAJA::detail::MinusEq< difference_type >
 
struct  RAJA::detail::DeRef
 
struct  RAJA::detail::Swap
 
struct  RAJA::detail::IterSwap
 
struct  RAJA::zip_tuple< is_val, Ts >
 Tuple used by ZipIterator for storing multiple references and values. Acts like a reference to its members allowing copy/move construction/assignment based on the reference type of the zip_tuple. More...
 

Namespaces

 RAJA
 
 RAJA::detail
 

Typedefs

template<camp::idx_t I, typename ZT >
using RAJA::zip_tuple_element_t = typename zip_tuple_element< I, ZT >::type
 
template<typename... Ts>
using RAJA::zip_ref = zip_tuple< false, Ts... >
 
template<typename... Ts>
using RAJA::zip_val = zip_tuple< true, Ts... >
 

Functions

template<camp::idx_t I, bool is_val, typename... Ts>
RAJA_HOST_DEVICE constexpr RAJA_INLINE RAJA::zip_tuple_element_t< I, zip_tuple< is_val, Ts... > > & RAJA::get (zip_tuple< is_val, Ts... > &z) noexcept
 
template<camp::idx_t I, bool is_val, typename... Ts>
RAJA_HOST_DEVICE constexpr RAJA_INLINE RAJA::zip_tuple_element_t< I, zip_tuple< is_val, Ts... > > const & RAJA::get (zip_tuple< is_val, Ts... > const &z) noexcept
 
template<camp::idx_t I, bool is_val, typename... Ts>
RAJA_HOST_DEVICE constexpr RAJA_INLINE std::remove_reference_t< RAJA::zip_tuple_element_t< I, zip_tuple< is_val, Ts... > > > && RAJA::get (zip_tuple< is_val, Ts... > &&z) noexcept
 
template<camp::idx_t I, bool is_val, typename... Ts>
RAJA_HOST_DEVICE constexpr RAJA_INLINE std::remove_reference_t< RAJA::zip_tuple_element_t< I, zip_tuple< is_val, Ts... > > > const && RAJA::get (zip_tuple< is_val, Ts... > const &&z) noexcept
 
template<typename Tuple , typename F , camp::idx_t... Is>
RAJA_HOST_DEVICE constexpr RAJA_INLINE void RAJA::detail::zip_for_each_impl (Tuple &&t, F &&f, camp::idx_seq< Is... >)
 Call f on each member of t (f(t)...). More...
 
template<typename Tuple0 , typename Tuple1 , typename F , camp::idx_t... Is>
RAJA_HOST_DEVICE constexpr RAJA_INLINE void RAJA::detail::zip_for_each_impl (Tuple0 &&t0, Tuple1 &&t1, F &&f, camp::idx_seq< Is... >)
 Call f on each member of t0 and t1 (f(t0, t1)...). More...
 
template<typename Tuple , typename F >
RAJA_HOST_DEVICE constexpr RAJA_INLINE void RAJA::detail::zip_for_each (Tuple &&t, F &&f)
 Call f on each member of t (f(t)...). More...
 
template<typename Tuple0 , typename Tuple1 , typename F >
RAJA_HOST_DEVICE constexpr RAJA_INLINE void RAJA::detail::zip_for_each (Tuple0 &&t0, Tuple1 &&t1, F &&f)
 Call f on each member of t0 and t1 (f(t0, t1)...). More...
 

Detailed Description

Header file for multi-iterator Zip Views.