/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.
513 using sorted_ids = typename conditional<choose_x, Sequence<IdX, IdY>, Sequence<IdY, IdX>>::type;
616 struct is_valid_sequence_map : is_same<typename arithmetic_sequence_gen<0, SeqMap::Size(), 1>::type,
818 __host__ __device__ constexpr auto pick_sequence_elements_by_ids(Seq, Sequence<Is...> /* ids */)
Represents a JSON value. Use Value for UTF8 encoding and default allocator.
Definition: document.h:668
Definition: ck.hpp:267
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:928
__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:884
__host__ constexpr __device__ auto reverse_exclusive_scan_sequence(Seq, Reduce, Number< Init >)
Definition: sequence.hpp:805
__host__ constexpr __device__ auto modify_sequence_elements_by_ids(Seq, Values, Ids)
Definition: sequence.hpp:874
__host__ constexpr __device__ auto merge_sequences(Seqs...)
Definition: sequence.hpp:768
__host__ constexpr __device__ auto pick_sequence_elements_by_mask(Seq, Mask)
Definition: sequence.hpp:847
__host__ constexpr __device__ auto reverse_inclusive_scan_sequence(Seq, Reduce, Number< Init >)
Definition: sequence.hpp:799
__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:898
__host__ constexpr __device__ bool operator==(Sequence< Xs... >, Sequence< Ys... >)
Definition: sequence.hpp:649
__host__ constexpr __device__ auto sequence_pop_back(Seq)
Definition: sequence.hpp:761
__host__ constexpr __device__ auto sequence_pop_front(Sequence< I, Is... >)
Definition: sequence.hpp:755
typename sequence_merge< Sx, Sy >::type sequence_merge_t
Definition: sequence.hpp:925
__host__ constexpr __device__ bool sequence_all_of(Seq, F f)
Definition: sequence.hpp:912
__host__ constexpr __device__ auto transform_sequences(F f, Sequence< Xs... >)
Definition: sequence.hpp:774
__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:818
__host__ constexpr __device__ auto inclusive_scan_sequence(Seq, Reduce, Number< Init >)
Definition: sequence.hpp:812
__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:869
Definition: sequence.hpp:857
decltype(WorkSeq::Modify(RemainIds::Front(), RemainValues::Front())) new_work_seq
Definition: sequence.hpp:858
typename modify_sequence_elements_by_ids_impl< new_work_seq, decltype(RemainValues::PopFront()), decltype(RemainIds::PopFront())>::type type
Definition: sequence.hpp:863
WorkSeq type
Definition: sequence.hpp:841
Definition: sequence.hpp:827
typename pick_sequence_elements_by_mask_impl< new_work_seq, decltype(RemainSeq::PopFront()), decltype(RemainMask::PopFront())>::type type
Definition: sequence.hpp:835
typename conditional< RemainMask::Front(), decltype(WorkSeq::PushBack(RemainSeq::Front())), WorkSeq >::type new_work_seq
Definition: sequence.hpp:830
Definition: sequence.hpp:189
Definition: integral_constant.hpp:20
Definition: type.hpp:177
Definition: sequence.hpp:618
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:638
Definition: sequence.hpp:626
static constexpr auto new_y2x
Definition: sequence.hpp:627
typename sequence_map_inverse_impl< X2Y, decltype(new_y2x), XBegin+1, XRemain - 1 >::type type
Definition: sequence.hpp:632
Definition: sequence.hpp:623
typename sequence_map_inverse_impl< SeqMap, typename uniform_sequence_gen< SeqMap::Size(), 0 >::type, 0, SeqMap::Size()>::type type
Definition: sequence.hpp:645
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
typename sequence_merge< MergedIds, LeftIds >::type merged_ids
Definition: sequence.hpp:440
typename sequence_merge< MergedValues, LeftValues >::type merged_values
Definition: sequence.hpp:439
typename sequence_merge< MergedValues, RightValues >::type merged_values
Definition: sequence.hpp:456
typename sequence_merge< MergedIds, RightIds >::type merged_ids
Definition: sequence.hpp:457
Definition: sequence.hpp:394
typename merge::merged_values merged_values
Definition: sequence.hpp:422
typename merge::merged_ids merged_ids
Definition: sequence.hpp:423
static constexpr bool choose_left
Definition: sequence.hpp:395
decltype(MergedValues::PushBack(Number< chosen_value >{})) new_merged_values
Definition: sequence.hpp:401
typename conditional< choose_left, decltype(LeftValues::PopFront()), LeftValues >::type new_left_values
Definition: sequence.hpp:405
decltype(MergedIds::PushBack(Number< chosen_id >{})) new_merged_ids
Definition: sequence.hpp:402
typename conditional< choose_left, decltype(LeftIds::PopFront()), LeftIds >::type new_left_ids
Definition: sequence.hpp:407
typename conditional< choose_left, RightValues, decltype(RightValues::PopFront())>::type new_right_values
Definition: sequence.hpp:410
static constexpr index_t chosen_value
Definition: sequence.hpp:397
typename conditional< choose_left, RightIds, decltype(RightIds::PopFront())>::type new_right_ids
Definition: sequence.hpp:412
static constexpr index_t chosen_id
Definition: sequence.hpp:399
Definition: sequence.hpp:466
typename merge::merged_ids merged_ids
Definition: sequence.hpp:476
typename merge::merged_values merged_values
Definition: sequence.hpp:475
typename conditional< choose_x, Sequence< ValueX, ValueY >, Sequence< ValueY, ValueX > >::type sorted_values
Definition: sequence.hpp:512
typename conditional< choose_x, Sequence< IdX, IdY >, Sequence< IdY, IdX > >::type sorted_ids
Definition: sequence.hpp:513
Definition: sequence.hpp:385
typename left_sort::sorted_values left_sorted_values
Definition: sequence.hpp:487
typename right_sort::sorted_values right_sorted_values
Definition: sequence.hpp:493
typename left_sort::sorted_ids left_sorted_ids
Definition: sequence.hpp:488
typename split_unsorted_values::left_type left_unsorted_values
Definition: sequence.hpp:484
typename merged_sorted::merged_values sorted_values
Definition: sequence.hpp:502
typename split_unsorted_ids::left_type left_unsorted_ids
Definition: sequence.hpp:485
typename right_sort::sorted_ids right_sorted_ids
Definition: sequence.hpp:494
typename split_unsorted_ids::right_type right_unsorted_ids
Definition: sequence.hpp:491
typename split_unsorted_values::right_type right_unsorted_values
Definition: sequence.hpp:490
typename merged_sorted::merged_ids sorted_ids
Definition: sequence.hpp:503
Definition: sequence.hpp:532
typename sort::sorted_ids sorted2unsorted_map
Definition: sequence.hpp:538
typename arithmetic_sequence_gen< 0, Values::Size(), 1 >::type unsorted_ids
Definition: sequence.hpp:533
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
UniquifiedIds uniquified_ids
Definition: sequence.hpp:588
UniquifiedValues uniquified_values
Definition: sequence.hpp:587
Definition: sequence.hpp:550
typename uniquify::uniquified_values uniquified_values
Definition: sequence.hpp:576
typename conditional< is_unique_value, decltype(UniquifiedIds::PushBack(Number< current_id >{})), UniquifiedIds >::type new_uniquified_ids
Definition: sequence.hpp:567
typename uniquify::uniquified_ids uniquified_ids
Definition: sequence.hpp:577
decltype(RemainValues::PopFront()) new_remain_values
Definition: sequence.hpp:556
static constexpr index_t current_value
Definition: sequence.hpp:551
decltype(RemainIds::PopFront()) new_remain_ids
Definition: sequence.hpp:557
static constexpr index_t current_id
Definition: sequence.hpp:552
static constexpr bool is_unique_value
Definition: sequence.hpp:554
typename conditional< is_unique_value, decltype(UniquifiedValues::PushBack(Number< current_value >{})), UniquifiedValues >::type new_uniquified_values
Definition: sequence.hpp:562
Definition: sequence.hpp:593
typename uniquify::uniquified_values uniquified_values
Definition: sequence.hpp:600
typename uniquify::uniquified_ids uniquified_ids
Definition: sequence.hpp:601
Definition: sequence.hpp:543
typename sort::sorted2unsorted_map sorted_ids
Definition: sequence.hpp:606
typename sort::type sorted_values
Definition: sequence.hpp:605
typename uniquify::uniquified_ids sorted2unsorted_map
Definition: sequence.hpp:612
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:934