/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/utility/sequence.hpp Source File#
sequence.hpp
Go to the documentation of this file.
474 template <SortField Field, bool Unique, typename Seq, typename Compare, typename Equal, index_t I>
523 struct is_valid_sequence_map : is_same<typename arithmetic_sequence_gen<0, SeqMap::Size(), 1>::type,
725 __host__ __device__ constexpr auto pick_sequence_elements_by_ids(Seq, Sequence<Is...> /* ids */)
constexpr auto compute_sorted(Sequence< Is... > seq, Compare comp, Equal eq)
Definition: sequence.hpp:460
@ Values
constexpr auto unique(const IndexedValueArray< N > &sorted, Equal eq)
Definition: sequence.hpp:436
constexpr auto make_indexed_value_array(Sequence< Is... >)
Definition: sequence.hpp:396
constexpr auto insertion_sort(IndexedValueArray< N > arr, Compare comp)
Definition: sequence.hpp:415
Definition: ck.hpp:270
typename __make_integer_seq< impl::__integer_sequence, index_t, N >::seq_type make_index_sequence
Definition: sequence.hpp:200
__host__ constexpr __device__ auto operator+(const MultiIndex< NSize > &a, const T &b)
Definition: array_multi_index.hpp:50
typename uniform_sequence_gen< NSize, I >::type uniform_sequence_gen_t
Definition: sequence.hpp:835
__host__ constexpr __device__ auto operator/(integral_constant< TX, X >, integral_constant< TY, Y >)
Definition: integral_constant.hpp:46
__host__ constexpr __device__ index_t reduce_on_sequence(Seq, Reduce f, Number< Init >)
Definition: sequence.hpp:791
__host__ constexpr __device__ auto reverse_exclusive_scan_sequence(Seq, Reduce, Number< Init >)
Definition: sequence.hpp:712
__host__ constexpr __device__ auto modify_sequence_elements_by_ids(Seq, Values, Ids)
Definition: sequence.hpp:781
__host__ constexpr __device__ auto merge_sequences(Seqs...)
Definition: sequence.hpp:675
__host__ constexpr __device__ auto pick_sequence_elements_by_mask(Seq, Mask)
Definition: sequence.hpp:754
__host__ constexpr __device__ auto reverse_inclusive_scan_sequence(Seq, Reduce, Number< Init >)
Definition: sequence.hpp:706
__host__ constexpr __device__ auto operator-(const MultiIndex< NSize > &a, const T &b)
Definition: array_multi_index.hpp:60
__host__ constexpr __device__ bool sequence_any_of(Seq, F f)
Definition: sequence.hpp:805
__host__ constexpr __device__ bool operator==(Sequence< Xs... >, Sequence< Ys... >)
Definition: sequence.hpp:556
__host__ constexpr __device__ auto sequence_pop_back(Seq)
Definition: sequence.hpp:668
__host__ constexpr __device__ auto sequence_pop_front(Sequence< I, Is... >)
Definition: sequence.hpp:662
typename sequence_merge< Sx, Sy >::type sequence_merge_t
Definition: sequence.hpp:832
__host__ constexpr __device__ bool sequence_all_of(Seq, F f)
Definition: sequence.hpp:819
__host__ constexpr __device__ auto transform_sequences(F f, Sequence< Xs... >)
Definition: sequence.hpp:681
__host__ constexpr __device__ auto operator*(const MultiIndex< NSize > &a, const T &b)
Definition: array_multi_index.hpp:70
__host__ constexpr __device__ auto pick_sequence_elements_by_ids(Seq, Sequence< Is... >)
Definition: sequence.hpp:725
__host__ constexpr __device__ auto inclusive_scan_sequence(Seq, Reduce, Number< Init >)
Definition: sequence.hpp:719
__host__ constexpr __device__ auto operator%(integral_constant< TX, X >, integral_constant< TY, Y >)
Definition: integral_constant.hpp:53
Definition: sequence.hpp:43
__host__ static constexpr __device__ auto PushBack(Sequence< Xs... >)
Definition: sequence.hpp:137
__host__ static constexpr __device__ auto Get(Number< I >)
Definition: sequence.hpp:69
__host__ static constexpr __device__ auto PopBack()
Definition: sequence.hpp:122
__host__ static constexpr __device__ auto ReorderGivenOld2New(MapOld2New)
Definition: sequence.hpp:93
__host__ static constexpr __device__ auto Extract(Number< Ns >...)
Definition: sequence.hpp:149
__host__ static constexpr __device__ auto At(Number< I >)
Definition: sequence.hpp:61
__host__ static constexpr __device__ index_t At(index_t I)
Definition: sequence.hpp:53
__host__ static constexpr __device__ auto PushBack(Number< Xs >...)
Definition: sequence.hpp:143
__host__ static constexpr __device__ auto ReorderGivenNew2Old(Sequence< IRs... >)
Definition: sequence.hpp:81
__host__ constexpr __device__ auto operator[](I i) const
Definition: sequence.hpp:75
__host__ static constexpr __device__ auto Reverse()
Definition: sequence.hpp:103
__host__ static constexpr __device__ auto PopFront()
Definition: sequence.hpp:120
__host__ static constexpr __device__ auto Modify(Number< I >, Number< X >)
Definition: sequence.hpp:161
__host__ static constexpr __device__ auto PushFront(Number< Xs >...)
Definition: sequence.hpp:131
__host__ static constexpr __device__ auto Extract(Sequence< Ns... >)
Definition: sequence.hpp:155
__host__ static constexpr __device__ auto Transform(F f)
Definition: sequence.hpp:173
__host__ static constexpr __device__ auto PushFront(Sequence< Xs... >)
Definition: sequence.hpp:125
Definition: sequence.hpp:258
__host__ constexpr __device__ index_t operator()(index_t i) const
Definition: sequence.hpp:259
typename __make_integer_seq< WrapSequence, index_t, IEnd >::type type
Definition: sequence.hpp:283
Definition: sequence.hpp:256
static constexpr bool kHasContent
Definition: sequence.hpp:268
typename sequence_gen<(IEnd - IBegin)/Increment, F >::type type0
Definition: sequence.hpp:265
typename conditional< kHasContent, type0, type1 >::type type
Definition: sequence.hpp:271
Definition: functional.hpp:100
WorkSeq type
Definition: sequence.hpp:776
Definition: sequence.hpp:764
decltype(WorkSeq::Modify(RemainIds::Front(), RemainValues::Front())) new_work_seq
Definition: sequence.hpp:765
typename modify_sequence_elements_by_ids_impl< new_work_seq, decltype(RemainValues::PopFront()), decltype(RemainIds::PopFront())>::type type
Definition: sequence.hpp:770
WorkSeq type
Definition: sequence.hpp:748
Definition: sequence.hpp:734
typename pick_sequence_elements_by_mask_impl< new_work_seq, decltype(RemainSeq::PopFront()), decltype(RemainMask::PopFront())>::type type
Definition: sequence.hpp:742
typename conditional< RemainMask::Front(), decltype(WorkSeq::PushBack(RemainSeq::Front())), WorkSeq >::type new_work_seq
Definition: sequence.hpp:737
Definition: sequence.hpp:189
Definition: integral_constant.hpp:20
Definition: type.hpp:177
Definition: sequence.hpp:525
Definition: sequence.hpp:227
static constexpr index_t NRemainRight
Definition: sequence.hpp:229
static constexpr index_t IMiddle
Definition: sequence.hpp:230
static constexpr index_t NRemainLeft
Definition: sequence.hpp:228
typename sequence_merge< typename sequence_gen_impl< IBegin, NRemainLeft, G >::type, typename sequence_gen_impl< IMiddle, NRemainRight, G >::type >::type type
Definition: sequence.hpp:234
Definition: sequence.hpp:224
typename sequence_gen_impl< 0, NSize, F >::type type
Definition: sequence.hpp:250
WorkingY2X type
Definition: sequence.hpp:545
Definition: sequence.hpp:533
static constexpr auto new_y2x
Definition: sequence.hpp:534
typename sequence_map_inverse_impl< X2Y, decltype(new_y2x), XBegin+1, XRemain - 1 >::type type
Definition: sequence.hpp:539
Definition: sequence.hpp:530
typename sequence_map_inverse_impl< SeqMap, typename uniform_sequence_gen< SeqMap::Size(), 0 >::type, 0, SeqMap::Size()>::type type
Definition: sequence.hpp:552
Definition: sequence.hpp:205
typename sequence_merge< Seq, typename sequence_merge< Seqs... >::type >::type type
Definition: sequence.hpp:206
Definition: sequence.hpp:364
typename sequence_reduce< Reduce, Seq, typename sequence_reduce< Reduce, Seqs... >::type >::type type
Definition: sequence.hpp:367
typename sequence_merge< Sequence< new_reduce >, old_scan >::type type
Definition: sequence.hpp:309
typename sequence_reverse_inclusive_scan< Sequence< Is... >, Reduce, Init >::type old_scan
Definition: sequence.hpp:305
Definition: sequence.hpp:300
Definition: sequence.hpp:340
typename sequence_merge< typename sequence_reverse< typename seq_split::right_type >::type, typename sequence_reverse< typename seq_split::left_type >::type >::type type
Definition: sequence.hpp:346
Definition: sequence.hpp:508
typename sorted_seqs::ids_type sorted2unsorted_map
Definition: sequence.hpp:511
Definition: sequence.hpp:327
typename arithmetic_sequence_gen< 0, I, 1 >::type range0
Definition: sequence.hpp:330
decltype(Seq::Extract(range1{})) right_type
Definition: sequence.hpp:334
typename arithmetic_sequence_gen< I, NSize, 1 >::type range1
Definition: sequence.hpp:331
Definition: sequence.hpp:516
typename sorted_seqs::ids_type sorted2unsorted_map
Definition: sequence.hpp:519
Definition: sequence.hpp:389
Definition: sequence.hpp:469
Definition: sequence.hpp:482
Definition: functional2.hpp:33
Definition: sequence.hpp:291
__host__ constexpr __device__ index_t operator()(index_t) const
Definition: sequence.hpp:292
Definition: sequence.hpp:289
typename sequence_gen< NSize, F >::type type
Definition: sequence.hpp:295
std::ostream & operator<<(std::ostream &os, const ck::Sequence< Is... >)
Definition: sequence.hpp:841