container_helper.hpp File Reference

container_helper.hpp File Reference#

Composable Kernel: 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

namespace  ck

Functions

template<typename TData, index_t NSize>
__host__ __device__ constexpr auto ck::container_push_back (const Array< TData, NSize > &a, const TData &x)
template<typename... Ts, typename T>
__host__ __device__ constexpr auto ck::container_push_front (const Tuple< Ts... > &a, const T &x)
template<typename... Ts, typename T>
__host__ __device__ constexpr auto ck::container_push_back (const Tuple< Ts... > &a, const T &x)
template<typename TData, index_t NSize, index_t... IRs>
__host__ __device__ constexpr auto ck::container_reorder_given_new2old (const Array< TData, NSize > &old_array, Sequence< IRs... >)
template<typename TData, index_t NSize, index_t... IRs>
__host__ __device__ constexpr auto ck::container_reorder_given_old2new (const Array< TData, NSize > &old_array, Sequence< IRs... > old2new)
template<typename... Ts, index_t... IRs>
__host__ __device__ constexpr auto ck::container_reorder_given_new2old (const Tuple< Ts... > &old_tuple, Sequence< IRs... >)
template<typename... Ts, index_t... IRs>
__host__ __device__ constexpr auto ck::container_reorder_given_old2new (const Tuple< Ts... > &old_tuple, Sequence< IRs... > old2new)
template<index_t... Is, index_t... IRs>
__host__ __device__ constexpr auto ck::container_reorder_given_new2old (Sequence< Is... >, Sequence< IRs... >)
template<index_t... Is, index_t... IRs>
__host__ __device__ constexpr 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__ __device__ constexpr 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__ __device__ constexpr auto ck::container_reverse_inclusive_scan (const Array< TData, NSize > &x, Reduce f, TData init)
template<typename TData, index_t NSize, typename Reduce>
__host__ __device__ constexpr 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__ __device__ constexpr auto ck::container_reverse_exclusive_scan (const Sequence< Is... > &seq, Reduce f, Number< Init >)
template<typename... Xs, typename Reduce, typename Init>
__host__ __device__ constexpr auto ck::container_reverse_exclusive_scan (const Tuple< Xs... > &x, Reduce reduce, Init init)
template<typename... Xs, typename Reduce, typename TData>
__host__ __device__ constexpr auto ck::container_reverse_inclusive_scan (const Tuple< Xs... > &x, Reduce f, TData init)
template<typename X, typename... Ys>
__host__ __device__ constexpr auto ck::container_concat (const X &x, const Ys &... ys)
template<typename T, index_t NX, index_t NY>
__host__ __device__ constexpr auto ck::container_concat (const Array< T, NX > &ax, const Array< T, NY > &ay)
template<typename... X, typename... Y>
__host__ __device__ constexpr auto ck::container_concat (const Tuple< X... > &tx, const Tuple< Y... > &ty)
template<typename Container>
__host__ __device__ constexpr auto ck::container_concat (const Container &x)
template<typename T, index_t N, index_t... Is>
__host__ __device__ constexpr auto ck::get_container_subset (const Array< T, N > &arr, Sequence< Is... >)
template<typename... Ts, index_t... Is>
__host__ __device__ constexpr auto ck::get_container_subset (const Tuple< Ts... > &tup, Sequence< Is... >)
template<typename T, index_t N, index_t... Is>
__host__ __device__ constexpr 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__ __device__ constexpr void ck::set_container_subset (Tuple< Ys... > &y, Sequence< Is... > picks, const Tuple< Xs... > &x)
template<index_t... Is>
__host__ __device__ constexpr auto ck::sequence_to_tuple_of_number (Sequence< Is... >)