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

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

Composable Kernel: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/utility/container_helper.hpp File Reference
container_helper.hpp File Reference
#include "sequence.hpp"
#include "sequence_helper.hpp"
#include "array.hpp"
#include "tuple.hpp"
#include "tuple_helper.hpp"
#include "statically_indexed_array.hpp"
#include "container_element_picker.hpp"

Go to the source code of this file.

Namespaces

 ck
 

Functions

template<typename TData , index_t NSize>
__host__ constexpr __device__ auto ck::container_push_back (const Array< TData, NSize > &a, const TData &x)
 
template<typename... Ts, typename T >
__host__ constexpr __device__ auto ck::container_push_front (const Tuple< Ts... > &a, const T &x)
 
template<typename... Ts, typename T >
__host__ constexpr __device__ auto ck::container_push_back (const Tuple< Ts... > &a, const T &x)
 
template<typename TData , index_t NSize, index_t... IRs>
__host__ constexpr __device__ auto ck::container_reorder_given_new2old (const Array< TData, NSize > &old_array, Sequence< IRs... >)
 
template<typename TData , index_t NSize, index_t... IRs>
__host__ constexpr __device__ auto ck::container_reorder_given_old2new (const Array< TData, NSize > &old_array, Sequence< IRs... > old2new)
 
template<typename... Ts, index_t... IRs>
__host__ constexpr __device__ auto ck::container_reorder_given_new2old (const Tuple< Ts... > &old_tuple, Sequence< IRs... >)
 
template<typename... Ts, index_t... IRs>
__host__ constexpr __device__ auto ck::container_reorder_given_old2new (const Tuple< Ts... > &old_tuple, Sequence< IRs... > old2new)
 
template<index_t... Is, index_t... IRs>
__host__ constexpr __device__ auto ck::container_reorder_given_new2old (Sequence< Is... >, Sequence< IRs... >)
 
template<index_t... Is, index_t... IRs>
__host__ constexpr __device__ auto ck::container_reorder_given_old2new (Sequence< Is... > old_seq, Sequence< IRs... >)
 
template<typename Container , typename Reduce , typename Init , index_t IBegin = 0, index_t IEnd = Container::Size(), index_t IStep = 1>
__host__ constexpr __device__ auto ck::container_reduce (const Container &x, Reduce reduce, Init init, Number< IBegin >=Number< 0 >{}, Number< IEnd >=Number< Container::Size()>{}, Number< IStep >=Number< 1 >{})
 
template<typename TData , index_t NSize, typename Reduce >
__host__ constexpr __device__ auto ck::container_reverse_inclusive_scan (const Array< TData, NSize > &x, Reduce f, TData init)
 
template<typename TData , index_t NSize, typename Reduce >
__host__ constexpr __device__ auto ck::container_reverse_exclusive_scan (const Array< TData, NSize > &x, Reduce f, TData init)
 
template<index_t... Is, typename Reduce , index_t Init>
__host__ constexpr __device__ auto ck::container_reverse_exclusive_scan (const Sequence< Is... > &seq, Reduce f, Number< Init >)
 
template<typename... Xs, typename Reduce , typename Init >
__host__ constexpr __device__ auto ck::container_reverse_exclusive_scan (const Tuple< Xs... > &x, Reduce reduce, Init init)
 
template<typename... Xs, typename Reduce , typename TData >
__host__ constexpr __device__ auto ck::container_reverse_inclusive_scan (const Tuple< Xs... > &x, Reduce f, TData init)
 
template<typename X , typename... Ys>
__host__ constexpr __device__ auto ck::container_concat (const X &x, const Ys &... ys)
 
template<typename T , index_t NX, index_t NY>
__host__ constexpr __device__ auto ck::container_concat (const Array< T, NX > &ax, const Array< T, NY > &ay)
 
template<typename... X, typename... Y>
__host__ constexpr __device__ auto ck::container_concat (const Tuple< X... > &tx, const Tuple< Y... > &ty)
 
template<typename Container >
__host__ constexpr __device__ auto ck::container_concat (const Container &x)
 
template<typename T , index_t N, index_t... Is>
__host__ constexpr __device__ auto ck::get_container_subset (const Array< T, N > &arr, Sequence< Is... >)
 
template<typename... Ts, index_t... Is>
__host__ constexpr __device__ auto ck::get_container_subset (const Tuple< Ts... > &tup, Sequence< Is... >)
 
template<typename T , index_t N, index_t... Is>
__host__ constexpr __device__ void ck::set_container_subset (Array< T, N > &y, Sequence< Is... > picks, const Array< T, sizeof...(Is)> &x)
 
template<typename... Ys, index_t... Is, typename... Xs>
__host__ constexpr __device__ void ck::set_container_subset (Tuple< Ys... > &y, Sequence< Is... > picks, const Tuple< Xs... > &x)
 
template<index_t... Is>
__host__ constexpr __device__ auto ck::sequence_to_tuple_of_number (Sequence< Is... >)