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::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp > Struct Template Reference
ck::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::PushBack(Number<chosen_value>{}))
using new_merged_ids = decltype(MergedIds::PushBack(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::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::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::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::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::new_left_ids
Initial value:
typename conditional<choose_left, decltype(LeftIds::PopFront()), LeftIds>::type
Definition utility/functional.hpp:100
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::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::new_left_values
Initial value:
typename conditional<choose_left, decltype(LeftValues::PopFront()), 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::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::new_merged_ids = decltype(MergedIds::PushBack(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::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::new_merged_values = decltype(MergedValues::PushBack(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::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::new_right_ids
Initial value:
typename conditional<choose_left, RightIds, decltype(RightIds::PopFront())>::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::sequence_sort_impl< Values, Ids, Compare >::sorted_sequence_merge_impl< LeftValues, LeftIds, RightValues, RightIds, MergedValues, MergedIds, Comp >::new_right_values
Initial value:
typename conditional<choose_left, RightValues, decltype(RightValues::PopFront())>::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::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::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::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: