cub::DispatchThreeWayPartitionIf#

template<typename InputIteratorT, typename FirstOutputIteratorT, typename SecondOutputIteratorT, typename UnselectedOutputIteratorT, typename NumSelectedIteratorT, typename SelectFirstPartOp, typename SelectSecondPartOp, typename OffsetT, typename PolicyHub = detail::three_way_partition::policy_hub<cub::detail::it_value_t<InputIteratorT>, detail::three_way_partition::per_partition_offset_t>>
struct DispatchThreeWayPartitionIf#

Public Types

using per_partition_offset_t = detail::three_way_partition::per_partition_offset_t#
using streaming_context_t = detail::three_way_partition::streaming_context_t<OffsetT>#
using AccumPackHelperT = detail::three_way_partition::accumulator_pack_t<per_partition_offset_t>#
using AccumPackT = typename AccumPackHelperT::pack_t#
using ScanTileStateT = cub::ScanTileState<AccumPackT>#

Public Functions

inline DispatchThreeWayPartitionIf(
void *d_temp_storage,
size_t &temp_storage_bytes,
InputIteratorT d_in,
FirstOutputIteratorT d_first_part_out,
SecondOutputIteratorT d_second_part_out,
UnselectedOutputIteratorT d_unselected_out,
NumSelectedIteratorT d_num_selected_out,
SelectFirstPartOp select_first_part_op,
SelectSecondPartOp select_second_part_op,
OffsetT num_items,
cudaStream_t stream,
)#
template<typename ActivePolicyT, typename ScanInitKernelPtrT, typename SelectIfKernelPtrT>
inline cudaError_t Invoke(
ScanInitKernelPtrT three_way_partition_init_kernel,
SelectIfKernelPtrT three_way_partition_kernel,
)#
template<typename ActivePolicyT>
inline cudaError_t Invoke()#

Public Members

void *d_temp_storage#
size_t &temp_storage_bytes#
InputIteratorT d_in#
FirstOutputIteratorT d_first_part_out#
SecondOutputIteratorT d_second_part_out#
UnselectedOutputIteratorT d_unselected_out#
NumSelectedIteratorT d_num_selected_out#
SelectFirstPartOp select_first_part_op#
SelectSecondPartOp select_second_part_op#
OffsetT num_items#
cudaStream_t stream#

Public Static Functions

static inline cudaError_t Dispatch(
void *d_temp_storage,
size_t &temp_storage_bytes,
InputIteratorT d_in,
FirstOutputIteratorT d_first_part_out,
SecondOutputIteratorT d_second_part_out,
UnselectedOutputIteratorT d_unselected_out,
NumSelectedIteratorT d_num_selected_out,
SelectFirstPartOp select_first_part_op,
SelectSecondPartOp select_second_part_op,
OffsetT num_items,
cudaStream_t stream,
)#

Internal dispatch routine.

Public Static Attributes

static constexpr per_partition_offset_t partition_size = ::cuda::std::numeric_limits<per_partition_offset_t>::max()#
static constexpr int INIT_KERNEL_THREADS = 256#