/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/utility/tuple_helper.hpp File Reference

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/utility/tuple_helper.hpp File Reference#

Composable Kernel: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/utility/tuple_helper.hpp File Reference
tuple_helper.hpp File Reference
#include "functional4.hpp"
#include "tuple.hpp"
#include "is_detected.hpp"

Go to the source code of this file.

Namespaces

 ck
 
 ck::detail
 

Typedefs

template<typename T >
using ck::is_tuple = decltype(ck::declval< T & >().IsTuple())
 

Functions

template<typename F , index_t... ids>
__host__ constexpr __device__ auto ck::generate_tuple_for (F &&f, Sequence< ids... >)
 
template<typename F , index_t N>
__host__ constexpr __device__ auto ck::generate_tuple (F &&f, Number< N >)
 
template<typename F , index_t N>
__host__ constexpr __device__ auto ck::generate_tuple (F &&f, LongNumber< N >)
 
template<typename F , index_t N>
__host__ constexpr __device__ auto ck::generate_tie (F &&f, Number< N >)
 
template<typename... X, typename... Y>
__host__ constexpr __device__ auto ck::concat_tuple_of_reference (const Tuple< X &... > &tx, const Tuple< Y &... > &ty)
 
template<typename... X, typename... Y>
__host__ constexpr __device__ auto ck::concat_tuple (const Tuple< X... > &tx, const Tuple< Y... > &ty)
 
template<typename... X>
__host__ constexpr __device__ auto ck::concat_tuple (const Tuple< X... > &tx)
 
template<typename... X, typename... Tuples>
__host__ constexpr __device__ auto ck::concat_tuple (const Tuple< X... > &tx, const Tuples &... tuples)
 
template<typename F , typename X , index_t... Is>
__host__ constexpr __device__ auto ck::detail::transform_tuples_impl (F f, const X &x, Sequence< Is... >)
 
template<typename F , typename X , typename Y , index_t... Is>
__host__ constexpr __device__ auto ck::detail::transform_tuples_impl (F f, const X &x, const Y &y, Sequence< Is... >)
 
template<typename F , typename X , typename Y , typename Z , index_t... Is>
__host__ constexpr __device__ auto ck::detail::transform_tuples_impl (F f, const X &x, const Y &y, const Z &z, Sequence< Is... >)
 
template<typename F , typename X >
__host__ constexpr __device__ auto ck::transform_tuples (F f, const X &x)
 
template<typename F , typename X , typename Y >
__host__ constexpr __device__ auto ck::transform_tuples (F f, const X &x, const Y &y)
 
template<typename F , typename X , typename Y , typename Z >
__host__ constexpr __device__ auto ck::transform_tuples (F f, const X &x, const Y &y, const Z &z)
 
template<index_t Depth = 0, index_t MaxDepth = -1>
__host__ constexpr __device__ auto ck::UnrollNestedTuple (const Tuple<> &element)
 
template<index_t Depth = 0, index_t MaxDepth = -1, typename T >
__host__ constexpr __device__ auto ck::UnrollNestedTuple (const T &element)
 
template<index_t Depth = 0, index_t MaxDepth = -1, typename... Ts>
__host__ constexpr __device__ auto ck::UnrollNestedTuple (const Tuple< Ts... > &tuple)
 
template<typename... Ts>
__host__ constexpr __device__ auto ck::TupleReverse (const Tuple< Ts... > &tuple)
 
template<index_t Idx, index_t End, typename F , typename... Ts>
__host__ constexpr __device__ auto ck::TupleReduce (F &&f, const Tuple< Ts... > &tuple)
 
template<typename... Ts>
__host__ constexpr __device__ auto ck::IsNestedTuple (const Tuple< Ts... > &)
 
template<index_t depth = 0, typename T >
__host__ constexpr __device__ auto ck::TupleDepth (const T &)
 
template<index_t depth = 0, typename... Ts>
__host__ constexpr __device__ auto ck::TupleDepth (const Tuple< Ts... > &)
 
template<index_t from, index_t to, typename... Ts>
__host__ constexpr __device__ auto ck::TupleSlice (const Tuple< Ts... > &tuple)