container_helper.hpp File Reference

container_helper.hpp File Reference#

Composable Kernel: container_helper.hpp File Reference
container_helper.hpp File Reference

Go to the source code of this file.

Namespaces

namespace  ck_tile

Macros

#define TO_TUPLE_OF_SEQUENCE(a_of_b_impl, a_size, bs_sizes)

Functions

template<typename TData, index_t NSize>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_push_back (const array< TData, NSize > &a, const TData &x)
template<typename... Ts, typename T>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_push_front (const tuple< Ts... > &a, const T &x)
template<typename... Ts, typename T>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_push_back (const tuple< Ts... > &a, const T &x)
template<typename TData, index_t NSize, index_t... IRs>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_reorder_given_new2old (const array< TData, NSize > &old_array, sequence< IRs... >)
template<typename TData, index_t NSize, index_t... IRs>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_reorder_given_old2new (const array< TData, NSize > &old_array, sequence< IRs... > old2new)
template<typename TData, index_t NSize>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_reorder_given_new2old (const array< TData, NSize > &old_array, const map< index_t, index_t > &new2old)
template<typename TData, index_t NSize>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_reorder_given_old2new (const array< TData, NSize > &old_array, const map< index_t, index_t > &old2new)
template<typename... Ts, index_t... IRs>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_reorder_given_new2old (const tuple< Ts... > &old_tuple, sequence< IRs... >)
template<typename... Ts, index_t... IRs>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_reorder_given_old2new (const tuple< Ts... > &old_tuple, sequence< IRs... > old2new)
template<index_t... Is, index_t... IRs>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_reorder_given_new2old (sequence< Is... >, sequence< IRs... >)
template<index_t... Is, index_t... IRs>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_reorder_given_old2new (sequence< Is... > old_seq, sequence< IRs... >)
template<typename Container, typename Reduce, typename ROld, index_t I, index_t IEnd, index_t IStep>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_reduce_impl (const Container &x, Reduce reduce, ROld r_old, number< I > i, number< IEnd >, number< IStep >)
template<typename Container, typename Reduce, typename Init, index_t IBegin = 0, index_t IEnd = Container::size(), index_t IStep = 1>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::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>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_reverse_inclusive_scan (const array< TData, NSize > &x, Reduce f, TData init)
template<typename TData, index_t NSize, typename Reduce, typename Init>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_reverse_exclusive_scan (const array< TData, NSize > &x, Reduce f, Init init)
template<index_t... Is, typename Reduce, index_t Init>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_reverse_exclusive_scan (const sequence< Is... > &seq, Reduce f, number< Init >)
template<typename... Xs, typename Reduce, index_t I, typename YOld, typename ROld>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_reverse_exclusive_scan_impl (const tuple< Xs... > &x, Reduce reduce, number< I > i, YOld y_old, ROld r_old)
template<typename... Xs, typename Reduce, typename Init>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_reverse_exclusive_scan (const tuple< Xs... > &x, Reduce reduce, Init init)
template<typename... Xs, typename Reduce, typename TData>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_reverse_inclusive_scan (const tuple< Xs... > &x, Reduce f, TData init)
template<typename X, typename... Ys>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_concat (const X &x, const Ys &... ys)
template<typename T, index_t NX, index_t NY>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_concat (const array< T, NX > &ax, const array< T, NY > &ay)
template<typename... X, typename... Y>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_concat (const tuple< X... > &tx, const tuple< Y... > &ty)
template<typename Container>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::container_concat (const Container &x)
template<typename T, index_t N, index_t... Is>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::get_container_subset (const array< T, N > &arr, sequence< Is... >)
template<typename... Ts, index_t... Is>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::get_container_subset (const tuple< Ts... > &tup, sequence< Is... >)
template<typename T, index_t N, index_t... Is>
CK_TILE_HOST_DEVICE constexpr void ck_tile::set_container_subset (array< T, N > &y, sequence< Is... > picks, const array< T, sizeof...(Is)> &x)
template<typename Y, typename X, index_t... Is>
CK_TILE_HOST_DEVICE constexpr void ck_tile::set_container_subset (Y &y, sequence< Is... > picks, const X &x)
template<index_t... Is>
constexpr index_t ck_tile::container_find (sequence< Is... > seq, index_t value)
template<index_t... Is>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::sequence_to_tuple_of_number (sequence< Is... >)

Macro Definition Documentation

◆ TO_TUPLE_OF_SEQUENCE

#define TO_TUPLE_OF_SEQUENCE ( a_of_b_impl,
a_size,
bs_sizes )
Value:
[a_of_b_impl, bs_sizes] { \
[=](auto i) { \
constexpr auto b_impl = a_of_b_impl[i]; \
constexpr index_t b_size = bs_sizes[i]; \
constexpr auto b = TO_SEQUENCE(b_impl, b_size); \
return b; \
}, \
}()
constant< v > number
Definition tile/core/numeric/integral_constant.hpp:37
CK_TILE_HOST_DEVICE constexpr auto generate_tuple(F &&f, number< N >)
Definition tile/core/container/tuple.hpp:429
#define TO_SEQUENCE(a, n)
Definition to_sequence.hpp:10