/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/docs-6.4.3/include/ck/utility/sequence.hpp Source File#
sequence.hpp
Go to the documentation of this file.
486 using sorted_ids = typename conditional<choose_x, Sequence<IdX, IdY>, Sequence<IdY, IdX>>::type;
589 struct is_valid_sequence_map : is_same<typename arithmetic_sequence_gen<0, SeqMap::Size(), 1>::type,
791 __host__ __device__ constexpr auto pick_sequence_elements_by_ids(Seq, Sequence<Is...> /* ids */)
Definition: ck.hpp:264
__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:901
__host__ constexpr __device__ auto operator/(integral_constant< TX, X >, integral_constant< TY, Y >)
Definition: integral_constant.hpp:38
__host__ constexpr __device__ index_t reduce_on_sequence(Seq, Reduce f, Number< Init >)
Definition: sequence.hpp:857
__host__ constexpr __device__ auto reverse_exclusive_scan_sequence(Seq, Reduce, Number< Init >)
Definition: sequence.hpp:778
__host__ constexpr __device__ auto modify_sequence_elements_by_ids(Seq, Values, Ids)
Definition: sequence.hpp:847
__host__ constexpr __device__ auto merge_sequences(Seqs...)
Definition: sequence.hpp:741
__host__ constexpr __device__ auto pick_sequence_elements_by_mask(Seq, Mask)
Definition: sequence.hpp:820
__host__ constexpr __device__ auto reverse_inclusive_scan_sequence(Seq, Reduce, Number< Init >)
Definition: sequence.hpp:772
__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:871
__host__ constexpr __device__ bool operator==(Sequence< Xs... >, Sequence< Ys... >)
Definition: sequence.hpp:622
__host__ constexpr __device__ auto sequence_pop_back(Seq)
Definition: sequence.hpp:734
__host__ constexpr __device__ auto sequence_pop_front(Sequence< I, Is... >)
Definition: sequence.hpp:728
typename sequence_merge< Sx, Sy >::type sequence_merge_t
Definition: sequence.hpp:898
__host__ constexpr __device__ bool sequence_all_of(Seq, F f)
Definition: sequence.hpp:885
__host__ constexpr __device__ auto transform_sequences(F f, Sequence< Xs... >)
Definition: sequence.hpp:747
__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:791
__host__ constexpr __device__ auto inclusive_scan_sequence(Seq, Reduce, Number< Init >)
Definition: sequence.hpp:785
__host__ constexpr __device__ auto operator%(integral_constant< TX, X >, integral_constant< TY, Y >)
Definition: integral_constant.hpp:45
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:243
__host__ constexpr __device__ index_t operator()(index_t i) const
Definition: sequence.hpp:244
Definition: sequence.hpp:241
static constexpr bool kHasContent
Definition: sequence.hpp:253
typename sequence_gen<(IEnd - IBegin)/Increment, F >::type type0
Definition: sequence.hpp:250
typename conditional< kHasContent, type0, type1 >::type type
Definition: sequence.hpp:256
Definition: functional.hpp:100
WorkSeq type
Definition: sequence.hpp:842
Definition: sequence.hpp:830
decltype(WorkSeq::Modify(RemainIds::Front(), RemainValues::Front())) new_work_seq
Definition: sequence.hpp:831
typename modify_sequence_elements_by_ids_impl< new_work_seq, decltype(RemainValues::PopFront()), decltype(RemainIds::PopFront())>::type type
Definition: sequence.hpp:836
WorkSeq type
Definition: sequence.hpp:814
Definition: sequence.hpp:800
typename pick_sequence_elements_by_mask_impl< new_work_seq, decltype(RemainSeq::PopFront()), decltype(RemainMask::PopFront())>::type type
Definition: sequence.hpp:808
typename conditional< RemainMask::Front(), decltype(WorkSeq::PushBack(RemainSeq::Front())), WorkSeq >::type new_work_seq
Definition: sequence.hpp:803
Definition: integral_constant.hpp:10
Definition: type.hpp:177
Definition: sequence.hpp:591
Definition: sequence.hpp:212
static constexpr index_t NRemainRight
Definition: sequence.hpp:214
static constexpr index_t IMiddle
Definition: sequence.hpp:215
static constexpr index_t NRemainLeft
Definition: sequence.hpp:213
typename sequence_merge< typename sequence_gen_impl< IBegin, NRemainLeft, G >::type, typename sequence_gen_impl< IMiddle, NRemainRight, G >::type >::type type
Definition: sequence.hpp:219
Definition: sequence.hpp:209
typename sequence_gen_impl< 0, NSize, F >::type type
Definition: sequence.hpp:235
WorkingY2X type
Definition: sequence.hpp:611
Definition: sequence.hpp:599
static constexpr auto new_y2x
Definition: sequence.hpp:600
typename sequence_map_inverse_impl< X2Y, decltype(new_y2x), XBegin+1, XRemain - 1 >::type type
Definition: sequence.hpp:605
Definition: sequence.hpp:596
typename sequence_map_inverse_impl< SeqMap, typename uniform_sequence_gen< SeqMap::Size(), 0 >::type, 0, SeqMap::Size()>::type type
Definition: sequence.hpp:618
Definition: sequence.hpp:190
typename sequence_merge< Seq, typename sequence_merge< Seqs... >::type >::type type
Definition: sequence.hpp:191
Definition: sequence.hpp:337
typename sequence_reduce< Reduce, Seq, typename sequence_reduce< Reduce, Seqs... >::type >::type type
Definition: sequence.hpp:340
typename sequence_merge< Sequence< new_reduce >, old_scan >::type type
Definition: sequence.hpp:282
typename sequence_reverse_inclusive_scan< Sequence< Is... >, Reduce, Init >::type old_scan
Definition: sequence.hpp:278
Definition: sequence.hpp:273
Definition: sequence.hpp:313
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:319
typename sequence_merge< MergedIds, LeftIds >::type merged_ids
Definition: sequence.hpp:413
typename sequence_merge< MergedValues, LeftValues >::type merged_values
Definition: sequence.hpp:412
typename sequence_merge< MergedValues, RightValues >::type merged_values
Definition: sequence.hpp:429
typename sequence_merge< MergedIds, RightIds >::type merged_ids
Definition: sequence.hpp:430
Definition: sequence.hpp:367
typename merge::merged_values merged_values
Definition: sequence.hpp:395
typename merge::merged_ids merged_ids
Definition: sequence.hpp:396
static constexpr bool choose_left
Definition: sequence.hpp:368
decltype(MergedValues::PushBack(Number< chosen_value >{})) new_merged_values
Definition: sequence.hpp:374
typename conditional< choose_left, decltype(LeftValues::PopFront()), LeftValues >::type new_left_values
Definition: sequence.hpp:378
decltype(MergedIds::PushBack(Number< chosen_id >{})) new_merged_ids
Definition: sequence.hpp:375
typename conditional< choose_left, decltype(LeftIds::PopFront()), LeftIds >::type new_left_ids
Definition: sequence.hpp:380
typename conditional< choose_left, RightValues, decltype(RightValues::PopFront())>::type new_right_values
Definition: sequence.hpp:383
static constexpr index_t chosen_value
Definition: sequence.hpp:370
typename conditional< choose_left, RightIds, decltype(RightIds::PopFront())>::type new_right_ids
Definition: sequence.hpp:385
static constexpr index_t chosen_id
Definition: sequence.hpp:372
Definition: sequence.hpp:439
typename merge::merged_ids merged_ids
Definition: sequence.hpp:449
typename merge::merged_values merged_values
Definition: sequence.hpp:448
typename conditional< choose_x, Sequence< ValueX, ValueY >, Sequence< ValueY, ValueX > >::type sorted_values
Definition: sequence.hpp:485
typename conditional< choose_x, Sequence< IdX, IdY >, Sequence< IdY, IdX > >::type sorted_ids
Definition: sequence.hpp:486
Definition: sequence.hpp:358
typename left_sort::sorted_values left_sorted_values
Definition: sequence.hpp:460
typename right_sort::sorted_values right_sorted_values
Definition: sequence.hpp:466
typename left_sort::sorted_ids left_sorted_ids
Definition: sequence.hpp:461
typename split_unsorted_values::left_type left_unsorted_values
Definition: sequence.hpp:457
typename merged_sorted::merged_values sorted_values
Definition: sequence.hpp:475
typename split_unsorted_ids::left_type left_unsorted_ids
Definition: sequence.hpp:458
typename right_sort::sorted_ids right_sorted_ids
Definition: sequence.hpp:467
typename split_unsorted_ids::right_type right_unsorted_ids
Definition: sequence.hpp:464
typename split_unsorted_values::right_type right_unsorted_values
Definition: sequence.hpp:463
typename merged_sorted::merged_ids sorted_ids
Definition: sequence.hpp:476
Definition: sequence.hpp:505
typename sort::sorted_ids sorted2unsorted_map
Definition: sequence.hpp:511
typename arithmetic_sequence_gen< 0, Values::Size(), 1 >::type unsorted_ids
Definition: sequence.hpp:506
Definition: sequence.hpp:300
typename arithmetic_sequence_gen< 0, I, 1 >::type range0
Definition: sequence.hpp:303
decltype(Seq::Extract(range1{})) right_type
Definition: sequence.hpp:307
typename arithmetic_sequence_gen< I, NSize, 1 >::type range1
Definition: sequence.hpp:304
UniquifiedIds uniquified_ids
Definition: sequence.hpp:561
UniquifiedValues uniquified_values
Definition: sequence.hpp:560
Definition: sequence.hpp:523
typename uniquify::uniquified_values uniquified_values
Definition: sequence.hpp:549
typename conditional< is_unique_value, decltype(UniquifiedIds::PushBack(Number< current_id >{})), UniquifiedIds >::type new_uniquified_ids
Definition: sequence.hpp:540
typename uniquify::uniquified_ids uniquified_ids
Definition: sequence.hpp:550
decltype(RemainValues::PopFront()) new_remain_values
Definition: sequence.hpp:529
static constexpr index_t current_value
Definition: sequence.hpp:524
decltype(RemainIds::PopFront()) new_remain_ids
Definition: sequence.hpp:530
static constexpr index_t current_id
Definition: sequence.hpp:525
static constexpr bool is_unique_value
Definition: sequence.hpp:527
typename conditional< is_unique_value, decltype(UniquifiedValues::PushBack(Number< current_value >{})), UniquifiedValues >::type new_uniquified_values
Definition: sequence.hpp:535
Definition: sequence.hpp:566
typename uniquify::uniquified_values uniquified_values
Definition: sequence.hpp:573
typename uniquify::uniquified_ids uniquified_ids
Definition: sequence.hpp:574
Definition: sequence.hpp:516
typename sort::sorted2unsorted_map sorted_ids
Definition: sequence.hpp:579
typename sort::type sorted_values
Definition: sequence.hpp:578
typename uniquify::uniquified_ids sorted2unsorted_map
Definition: sequence.hpp:585
Definition: functional2.hpp:31
Definition: sequence.hpp:264
__host__ constexpr __device__ index_t operator()(index_t) const
Definition: sequence.hpp:265
Definition: sequence.hpp:262
typename sequence_gen< NSize, F >::type type
Definition: sequence.hpp:268
std::ostream & operator<<(std::ostream &os, const ck::Sequence< Is... >)
Definition: sequence.hpp:907