rocPRIM
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
detail::radix_sort_and_scatter_helper< BlockSize, ItemsPerThread, RadixBits, Descending, Key, Value, Offset > Struct Template Reference

Classes

struct  storage_type
 

Public Types

using key_type = Key
 
using value_type = Value
 
using key_codec = radix_key_codec< key_type, Descending >
 
using bit_key_type = typename key_codec::bit_key_type
 
using keys_load_type = ::rocprim::block_load< key_type, BlockSize, ItemsPerThread, ::rocprim::block_load_method::block_load_transpose >
 
using values_load_type = ::rocprim::block_load< value_type, BlockSize, ItemsPerThread, ::rocprim::block_load_method::block_load_transpose >
 
using sort_type = ::rocprim::block_radix_sort< key_type, BlockSize, ItemsPerThread, value_type >
 
using discontinuity_type = ::rocprim::block_discontinuity< unsigned int, BlockSize >
 
using bit_keys_exchange_type = ::rocprim::block_exchange< bit_key_type, BlockSize, ItemsPerThread >
 
using values_exchange_type = ::rocprim::block_exchange< value_type, BlockSize, ItemsPerThread >
 

Public Member Functions

template<bool IsFull = false, class KeysInputIterator , class KeysOutputIterator , class ValuesInputIterator , class ValuesOutputIterator >
ROCPRIM_DEVICE ROCPRIM_INLINE void sort_and_scatter (KeysInputIterator keys_input, KeysOutputIterator keys_output, ValuesInputIterator values_input, ValuesOutputIterator values_output, Offset begin_offset, Offset end_offset, unsigned int bit, unsigned int current_radix_bits, Offset digit_start, storage_type &storage)
 

Static Public Attributes

static constexpr unsigned int items_per_block = BlockSize * ItemsPerThread
 
static constexpr unsigned int radix_size = 1 << RadixBits
 
static constexpr bool with_values = !std::is_same<value_type, ::rocprim::empty_type>::value
 

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