sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp > Struct Template Reference

sorted_sequence_merge_impl&lt; LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp &gt; Struct Template Reference#

Composable Kernel: ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp > Struct Template Reference
ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp > Struct Template Reference

#include <sequence.hpp>

Public Types

using new_merged_values = decltype(MergedValues::push_back(number<chosen_value>{}))
using new_merged_ids = decltype(MergedIds::push_back(number<chosen_id>{}))
using new_left_values
using new_left_ids
using new_right_values
using new_right_ids
using merge
using merged_values = typename merge::merged_values
using merged_ids = typename merge::merged_ids

Static Public Attributes

static constexpr bool choose_left = LeftValues::front() < RightValues::front()
static constexpr index_t chosen_value
static constexpr index_t chosen_id = choose_left ? LeftIds::front() : RightIds::front()

Member Typedef Documentation

◆ merge

template<typename Values, typename Ids, typename Compare>
template<typename LeftValues, typename LeftIds, typename RightValues, typename RightIds, typename MergedValues, typename MergedIds, typename Comp>
using ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::merge
Initial value:
Comp>
Definition utility/sequence.hpp:394
decltype(MergedValues::PushBack(Number< chosen_value >{})) new_merged_values
Definition utility/sequence.hpp:401
decltype(MergedIds::PushBack(Number< chosen_id >{})) new_merged_ids
Definition utility/sequence.hpp:402
typename conditional< choose_left, decltype(LeftValues::PopFront()), LeftValues >::type new_left_values
Definition utility/sequence.hpp:404
typename conditional< choose_left, RightIds, decltype(RightIds::PopFront())>::type new_right_ids
Definition utility/sequence.hpp:411
typename conditional< choose_left, RightValues, decltype(RightValues::PopFront())>::type new_right_values
Definition utility/sequence.hpp:409
typename conditional< choose_left, decltype(LeftIds::PopFront()), LeftIds >::type new_left_ids
Definition utility/sequence.hpp:406

◆ merged_ids

template<typename Values, typename Ids, typename Compare>
template<typename LeftValues, typename LeftIds, typename RightValues, typename RightIds, typename MergedValues, typename MergedIds, typename Comp>
using ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::merged_ids = typename merge::merged_ids

◆ merged_values

template<typename Values, typename Ids, typename Compare>
template<typename LeftValues, typename LeftIds, typename RightValues, typename RightIds, typename MergedValues, typename MergedIds, typename Comp>
using ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::merged_values = typename merge::merged_values

◆ new_left_ids

template<typename Values, typename Ids, typename Compare>
template<typename LeftValues, typename LeftIds, typename RightValues, typename RightIds, typename MergedValues, typename MergedIds, typename Comp>
using ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::new_left_ids
Initial value:
typename std::conditional<choose_left, decltype(LeftIds::pop_front()), LeftIds>::type
static constexpr bool choose_left
Definition utility/sequence.hpp:395

◆ new_left_values

template<typename Values, typename Ids, typename Compare>
template<typename LeftValues, typename LeftIds, typename RightValues, typename RightIds, typename MergedValues, typename MergedIds, typename Comp>
using ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::new_left_values
Initial value:
typename std::
conditional<choose_left, decltype(LeftValues::pop_front()), LeftValues>::type

◆ new_merged_ids

template<typename Values, typename Ids, typename Compare>
template<typename LeftValues, typename LeftIds, typename RightValues, typename RightIds, typename MergedValues, typename MergedIds, typename Comp>
using ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::new_merged_ids = decltype(MergedIds::push_back(number<chosen_id>{}))

◆ new_merged_values

template<typename Values, typename Ids, typename Compare>
template<typename LeftValues, typename LeftIds, typename RightValues, typename RightIds, typename MergedValues, typename MergedIds, typename Comp>
using ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::new_merged_values = decltype(MergedValues::push_back(number<chosen_value>{}))

◆ new_right_ids

template<typename Values, typename Ids, typename Compare>
template<typename LeftValues, typename LeftIds, typename RightValues, typename RightIds, typename MergedValues, typename MergedIds, typename Comp>
using ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::new_right_ids
Initial value:
typename std::conditional<choose_left, RightIds, decltype(RightIds::pop_front())>::type

◆ new_right_values

template<typename Values, typename Ids, typename Compare>
template<typename LeftValues, typename LeftIds, typename RightValues, typename RightIds, typename MergedValues, typename MergedIds, typename Comp>
using ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::new_right_values
Initial value:
typename std::
conditional<choose_left, RightValues, decltype(RightValues::pop_front())>::type

Member Data Documentation

◆ choose_left

template<typename Values, typename Ids, typename Compare>
template<typename LeftValues, typename LeftIds, typename RightValues, typename RightIds, typename MergedValues, typename MergedIds, typename Comp>
bool ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::choose_left = LeftValues::front() < RightValues::front()
staticconstexpr

◆ chosen_id

template<typename Values, typename Ids, typename Compare>
template<typename LeftValues, typename LeftIds, typename RightValues, typename RightIds, typename MergedValues, typename MergedIds, typename Comp>
index_t ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::chosen_id = choose_left ? LeftIds::front() : RightIds::front()
staticconstexpr

◆ chosen_value

template<typename Values, typename Ids, typename Compare>
template<typename LeftValues, typename LeftIds, typename RightValues, typename RightIds, typename MergedValues, typename MergedIds, typename Comp>
index_t ck_tile::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::chosen_value
staticconstexpr
Initial value:
=
choose_left ? LeftValues::front() : RightValues::front()

The documentation for this struct was generated from the following file: