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 = typename std::conditional< choose_left, decltype(LeftValues::pop_front()), LeftValues >::type
 
using new_left_ids = typename std::conditional< choose_left, decltype(LeftIds::pop_front()), LeftIds >::type
 
using new_right_values = typename std::conditional< choose_left, RightValues, decltype(RightValues::pop_front())>::type
 
using new_right_ids = typename std::conditional< choose_left, RightIds, decltype(RightIds::pop_front())>::type
 
using merge = sorted_sequence_merge_impl< new_left_values, new_left_ids, new_right_values, new_right_ids, new_merged_values, new_merged_ids, Comp >
 
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 = sorted_sequence_merge_impl<new_left_values, new_left_ids, new_right_values, new_right_ids, new_merged_values, new_merged_ids, Comp>

◆ 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 = typename std::conditional<choose_left, decltype(LeftIds::pop_front()), LeftIds>::type

◆ 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 = 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 = 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 = 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 >
constexpr 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 >
constexpr 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 >
constexpr 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()
static constexpr bool choose_left
Definition: sequence.hpp:444

The documentation for this struct was generated from the following file:
  • /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck_tile/core/container/sequence.hpp