sequence.hpp File Reference

sequence.hpp File Reference#

Composable Kernel: sequence.hpp File Reference
sequence.hpp File Reference

Go to the source code of this file.

Classes

struct  ck_tile::sequence< Is >
struct  ck_tile::impl::__integer_sequence< index_t, Ints... >
struct  ck_tile::sequence_merge< Seq, Seqs >
struct  ck_tile::sequence_merge< sequence< Xs... >, sequence< Ys... > >
struct  ck_tile::sequence_merge< Seq >
struct  ck_tile::sequence_gen< NSize, F >
struct  ck_tile::sequence_gen< NSize, F >::sequence_gen_impl< IBegin, NRemain, G >
struct  ck_tile::sequence_gen< NSize, F >::sequence_gen_impl< I, 1, G >
struct  ck_tile::sequence_gen< NSize, F >::sequence_gen_impl< I, 0, G >
struct  ck_tile::arithmetic_sequence_gen< IBegin, IEnd, Increment >
struct  ck_tile::arithmetic_sequence_gen< IBegin, IEnd, Increment >::F
struct  ck_tile::arithmetic_sequence_gen< 0, IEnd, 1 >
struct  ck_tile::uniform_sequence_gen< NSize, I >
struct  ck_tile::uniform_sequence_gen< NSize, I >::F
struct  ck_tile::sequence_reverse_inclusive_scan< sequence< I, Is... >, Reduce, Init >
struct  ck_tile::sequence_reverse_inclusive_scan< sequence< I >, Reduce, Init >
struct  ck_tile::sequence_reverse_inclusive_scan< sequence<>, Reduce, Init >
struct  ck_tile::sequence_split< Seq, I >
struct  ck_tile::impl::seq_reverse< sequence< Ids... >, Ns... >
struct  ck_tile::sequence_reverse< sequence< Ns... > >
struct  ck_tile::sequence_reduce< Reduce, Seq, Seqs >
struct  ck_tile::sequence_reduce< Reduce, sequence< Xs... >, sequence< Ys... > >
struct  ck_tile::sequence_reduce< Reduce, Seq >
struct  ck_tile::sequence_sort_impl< Values, Ids, Compare >
struct  ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >
struct  ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, sequence<>, sequence<>, MergedValues, MergedIds, Comp >
struct  ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< sequence<>, sequence<>, RightValues, RightIds, MergedValues, MergedIds, Comp >
struct  ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge< LeftValues, LeftIds, RightValues, RightIds, Comp >
struct  ck_tile::sequence_sort_impl< sequence< ValueX, ValueY >, sequence< IdX, IdY >, Compare >
struct  ck_tile::sequence_sort_impl< sequence< Value >, sequence< Id >, Compare >
struct  ck_tile::sequence_sort_impl< sequence<>, sequence<>, Compare >
struct  ck_tile::sequence_sort< Values, Compare >
struct  ck_tile::sequence_unique_sort< Values, Less, Equal >
struct  ck_tile::sequence_unique_sort< Values, Less, Equal >::sorted_sequence_uniquify_impl< RemainValues, RemainIds, UniquifiedValues, UniquifiedIds, Eq >
struct  ck_tile::sequence_unique_sort< Values, Less, Equal >::sorted_sequence_uniquify_impl< sequence<>, sequence<>, UniquifiedValues, UniquifiedIds, Eq >
struct  ck_tile::sequence_unique_sort< Values, Less, Equal >::sorted_sequence_uniquify< SortedValues, SortedIds, Eq >
struct  ck_tile::is_valid_sequence_map< SeqMap >
struct  ck_tile::sequence_map_inverse< SeqMap >
struct  ck_tile::sequence_map_inverse< SeqMap >::sequence_map_inverse_impl< X2Y, WorkingY2X, XBegin, XRemain >
struct  ck_tile::sequence_map_inverse< SeqMap >::sequence_map_inverse_impl< X2Y, WorkingY2X, XBegin, 0 >
struct  ck_tile::sequence_exclusive_scan< sequence< Xs... >, sequence< Y, Ys... >, Reduce >
struct  ck_tile::sequence_exclusive_scan< sequence< Xs... >, sequence< Y >, Reduce >
struct  ck_tile::sequence_exclusive_scan< sequence< Xs... >, sequence<>, Reduce >
struct  ck_tile::detail::pick_sequence_elements_by_mask_impl< WorkSeq, RemainSeq, RemainMask >
struct  ck_tile::detail::pick_sequence_elements_by_mask_impl< WorkSeq, sequence<>, sequence<> >
struct  ck_tile::detail::modify_sequence_elements_by_ids_impl< WorkSeq, RemainValues, RemainIds >
struct  ck_tile::detail::modify_sequence_elements_by_ids_impl< WorkSeq, sequence<>, sequence<> >
struct  ck_tile::detail::sorted_sequence_histogram< h_idx, sequence< x, xs... >, sequence< r, rs... > >
struct  ck_tile::detail::sorted_sequence_histogram< h_idx, sequence< x >, sequence< r, rs... > >
struct  ck_tile::impl::reverse_slice_sequence_impl< sequence< x, xs... >, sequence< m, ms... >, sequence< id, ids... >, SliceSize >
struct  ck_tile::impl::reverse_slice_sequence_impl< sequence< x >, sequence< m >, sequence< id >, SliceSize >

Namespaces

namespace  ck_tile
namespace  ck_tile::impl
namespace  ck_tile::detail

Typedefs

template<index_t I, typename... Ts>
using ck_tile::impl::at_index_t = __type_pack_element<I, Ts...>
template<index_t N>
using ck_tile::make_index_sequence
template<typename... Seqs>
using ck_tile::sequence_merge_t = typename sequence_merge<Seqs...>::type
template<index_t NSize, index_t I>
using ck_tile::uniform_sequence_gen_t = typename uniform_sequence_gen<NSize, I>::type

Functions

template<index_t I, index_t... Is>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::sequence_pop_front (sequence< I, Is... >)
template<typename Seq>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::sequence_pop_back (Seq)
template<index_t... Xs, index_t... Ys>
CK_TILE_HOST_DEVICE constexpr bool ck_tile::operator== (sequence< Xs... >, sequence< Ys... >)
template<index_t... Xs, index_t... Ys>
CK_TILE_HOST_DEVICE constexpr bool ck_tile::operator!= (sequence< Xs... > x, sequence< Ys... > y)
template<index_t... Xs, index_t... Ys>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::operator+ (sequence< Xs... >, sequence< Ys... >)
template<index_t... Xs, index_t... Ys>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::operator- (sequence< Xs... >, sequence< Ys... >)
template<index_t... Xs, index_t... Ys>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::operator* (sequence< Xs... >, sequence< Ys... >)
template<index_t... Xs, index_t... Ys>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::operator/ (sequence< Xs... >, sequence< Ys... >)
template<index_t... Xs, index_t... Ys>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::operator% (sequence< Xs... >, sequence< Ys... >)
template<index_t... Xs, index_t Y>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::operator+ (sequence< Xs... >, number< Y >)
template<index_t... Xs, index_t Y>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::operator- (sequence< Xs... >, number< Y >)
template<index_t... Xs, index_t Y>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::operator* (sequence< Xs... >, number< Y >)
template<index_t... Xs, index_t Y>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::operator/ (sequence< Xs... >, number< Y >)
template<index_t... Xs, index_t Y>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::operator% (sequence< Xs... >, number< Y >)
template<index_t Y, index_t... Xs>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::operator+ (number< Y >, sequence< Xs... >)
template<index_t Y, index_t... Xs>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::operator- (number< Y >, sequence< Xs... >)
template<index_t Y, index_t... Xs>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::operator* (number< Y >, sequence< Xs... >)
template<index_t Y, index_t... Xs>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::operator/ (number< Y >, sequence< Xs... >)
template<index_t Y, index_t... Xs>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::operator% (number< Y >, sequence< Xs... >)
template<typename... Seqs>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::merge_sequences (Seqs...)
template<typename F, index_t... Xs>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::transform_sequences (F f, sequence< Xs... >)
template<typename F, index_t... Xs, index_t... Ys>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::transform_sequences (F f, sequence< Xs... >, sequence< Ys... >)
template<typename F, index_t... Xs, index_t... Ys, index_t... Zs>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::transform_sequences (F f, sequence< Xs... >, sequence< Ys... >, sequence< Zs... >)
template<typename Seq, typename Reduce, index_t Init>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::reverse_inclusive_scan_sequence (Seq, Reduce, number< Init >)
template<typename Seq, typename Reduce, index_t Init>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::reverse_exclusive_scan_sequence (Seq, Reduce, number< Init >)
template<typename Seq, typename Reduce, index_t Init>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::inclusive_scan_sequence (Seq, Reduce, number< Init >)
template<typename Seq, typename Reduce, index_t Init>
constexpr auto ck_tile::exclusive_scan_sequence (Seq, Reduce, number< Init >)
template<typename Seq>
constexpr auto ck_tile::prefix_sum_sequence (Seq)
template<typename Seq, index_t... Is>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::pick_sequence_elements_by_ids (Seq, sequence< Is... >)
template<typename Seq, typename Mask>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::pick_sequence_elements_by_mask (Seq, Mask)
template<typename Seq, typename Values, typename Ids>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::modify_sequence_elements_by_ids (Seq, Values, Ids)
template<typename Seq, typename Reduce, index_t Init>
CK_TILE_HOST_DEVICE constexpr index_t ck_tile::reduce_on_sequence (Seq, Reduce f, number< Init >)
template<typename Seq, typename F>
CK_TILE_HOST_DEVICE constexpr bool ck_tile::sequence_any_of (Seq, F f)
template<typename Seq, typename F>
CK_TILE_HOST_DEVICE constexpr bool ck_tile::sequence_all_of (Seq, F f)
template<index_t... Is>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::make_sequence (number< Is >...)
template<typename F, index_t N>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::generate_sequence (F, number< N >)
template<typename F, index_t N>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::generate_sequence_v2 (F &&f, number< N >)
template<index_t... Is>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::to_sequence (tuple< number< Is >... >)
template<typename SeqSortedSamples, index_t r, index_t... rs>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::histogram_sorted_sequence (SeqSortedSamples, sequence< r, rs... >)
template<typename F, index_t N>
CK_TILE_HOST_DEVICE constexpr auto ck_tile::generate_array (F &&f, number< N >)
template<typename Seq, index_t SliceSize, typename Mask = typename uniform_sequence_gen<Seq::size(), 1>::type>
constexpr auto ck_tile::reverse_slice_sequence (Seq, number< SliceSize >, Mask=typename uniform_sequence_gen< Seq::size(), 1 >::type{})
template<typename Seq, index_t SliceSize, typename Mask = typename uniform_sequence_gen<Seq::size(), 1>::type>
constexpr auto ck_tile::slice_sequence (Seq, number< SliceSize >, Mask=typename uniform_sequence_gen< Seq::size(), 1 >::type{})