container_helper.hpp File Reference#
container_helper.hpp File Reference
#include "ck_tile/core/config.hpp"#include "ck_tile/core/container/array.hpp"#include "ck_tile/core/container/map.hpp"#include "ck_tile/core/container/sequence.hpp"#include "ck_tile/core/container/tuple.hpp"#include "ck_tile/core/utility/functional.hpp"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] { \
return ck_tile::generate_tuple( \
[=](auto i) { \
constexpr auto b_impl = a_of_b_impl[i]; \
constexpr index_t b_size = bs_sizes[i]; \
return b; \
}, \
ck_tile::number<a_size>{}); \
}()
CK_TILE_HOST_DEVICE constexpr auto generate_tuple(F &&f, number< N >)
Definition tile/core/container/tuple.hpp:429