sort_impl Namespace Reference

sort_impl Namespace Reference#

Composable Kernel: ck::sort_impl Namespace Reference
ck::sort_impl Namespace Reference

Classes

struct  IndexedValueArray
 
struct  SortedCache
 
struct  SortedSequences
 
struct  SortedSequences< Unique, Seq, Compare, Equal, Sequence< Is... > >
 

Typedefs

template<bool Unique, typename Seq , typename Compare , typename Equal >
using sorted_sequences_t = SortedSequences< Unique, Seq, Compare, Equal, typename arithmetic_sequence_gen< 0, SortedCache< Unique, Seq, Compare, Equal >::data.size, 1 >::type >
 
using Equal = ck::math::equal< index_t >
 

Enumerations

enum class  SortField {
  Values ,
  Ids
}
 

Functions

template<index_t... Is>
constexpr auto make_indexed_value_array (Sequence< Is... >)
 
template<index_t N, typename Compare >
constexpr auto insertion_sort (IndexedValueArray< N > arr, Compare comp)
 
template<index_t N, typename Equal >
constexpr auto unique (const IndexedValueArray< N > &sorted, Equal eq)
 
template<bool Unique, typename Compare , typename Equal , index_t... Is>
constexpr auto compute_sorted (Sequence< Is... > seq, Compare comp, Equal eq)
 
template<SortField Field, bool Unique, typename Seq , typename Compare , typename Equal , index_t I>
constexpr index_t get_sorted_field ()
 

Typedef Documentation

◆ Equal

using ck::sort_impl::Equal = typedef ck::math::equal<index_t>

◆ sorted_sequences_t

template<bool Unique, typename Seq , typename Compare , typename Equal >
using ck::sort_impl::sorted_sequences_t = typedef SortedSequences< Unique, Seq, Compare, Equal, typename arithmetic_sequence_gen<0, SortedCache<Unique, Seq, Compare, Equal>::data.size, 1>:: type>

Enumeration Type Documentation

◆ SortField

Enumerator
Values 
Ids 

Function Documentation

◆ compute_sorted()

template<bool Unique, typename Compare , typename Equal , index_t... Is>
constexpr auto ck::sort_impl::compute_sorted ( Sequence< Is... >  seq,
Compare  comp,
Equal  eq 
)
constexpr

◆ get_sorted_field()

template<SortField Field, bool Unique, typename Seq , typename Compare , typename Equal , index_t I>
constexpr index_t ck::sort_impl::get_sorted_field ( )
constexpr

◆ insertion_sort()

template<index_t N, typename Compare >
constexpr auto ck::sort_impl::insertion_sort ( IndexedValueArray< N >  arr,
Compare  comp 
)
constexpr

◆ make_indexed_value_array()

template<index_t... Is>
constexpr auto ck::sort_impl::make_indexed_value_array ( Sequence< Is... >  )
constexpr

◆ unique()

template<index_t N, typename Equal >
constexpr auto ck::sort_impl::unique ( const IndexedValueArray< N > &  sorted,
Equal  eq 
)
constexpr