cuda-cccl 0.3.3__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of cuda-cccl might be problematic. Click here for more details.
- cuda/cccl/__init__.py +27 -0
- cuda/cccl/_cuda_version_utils.py +24 -0
- cuda/cccl/cooperative/__init__.py +9 -0
- cuda/cccl/cooperative/experimental/__init__.py +24 -0
- cuda/cccl/headers/__init__.py +7 -0
- cuda/cccl/headers/include/__init__.py +1 -0
- cuda/cccl/headers/include/cub/agent/agent_adjacent_difference.cuh +259 -0
- cuda/cccl/headers/include/cub/agent/agent_batch_memcpy.cuh +1182 -0
- cuda/cccl/headers/include/cub/agent/agent_for.cuh +81 -0
- cuda/cccl/headers/include/cub/agent/agent_histogram.cuh +709 -0
- cuda/cccl/headers/include/cub/agent/agent_merge.cuh +234 -0
- cuda/cccl/headers/include/cub/agent/agent_merge_sort.cuh +748 -0
- cuda/cccl/headers/include/cub/agent/agent_radix_sort_downsweep.cuh +786 -0
- cuda/cccl/headers/include/cub/agent/agent_radix_sort_histogram.cuh +286 -0
- cuda/cccl/headers/include/cub/agent/agent_radix_sort_onesweep.cuh +703 -0
- cuda/cccl/headers/include/cub/agent/agent_radix_sort_upsweep.cuh +555 -0
- cuda/cccl/headers/include/cub/agent/agent_reduce.cuh +619 -0
- cuda/cccl/headers/include/cub/agent/agent_reduce_by_key.cuh +806 -0
- cuda/cccl/headers/include/cub/agent/agent_rle.cuh +1124 -0
- cuda/cccl/headers/include/cub/agent/agent_scan.cuh +589 -0
- cuda/cccl/headers/include/cub/agent/agent_scan_by_key.cuh +474 -0
- cuda/cccl/headers/include/cub/agent/agent_segmented_radix_sort.cuh +289 -0
- cuda/cccl/headers/include/cub/agent/agent_select_if.cuh +1117 -0
- cuda/cccl/headers/include/cub/agent/agent_sub_warp_merge_sort.cuh +346 -0
- cuda/cccl/headers/include/cub/agent/agent_three_way_partition.cuh +606 -0
- cuda/cccl/headers/include/cub/agent/agent_topk.cuh +764 -0
- cuda/cccl/headers/include/cub/agent/agent_unique_by_key.cuh +631 -0
- cuda/cccl/headers/include/cub/agent/single_pass_scan_operators.cuh +1424 -0
- cuda/cccl/headers/include/cub/block/block_adjacent_difference.cuh +963 -0
- cuda/cccl/headers/include/cub/block/block_discontinuity.cuh +1227 -0
- cuda/cccl/headers/include/cub/block/block_exchange.cuh +1313 -0
- cuda/cccl/headers/include/cub/block/block_histogram.cuh +424 -0
- cuda/cccl/headers/include/cub/block/block_load.cuh +1264 -0
- cuda/cccl/headers/include/cub/block/block_load_to_shared.cuh +432 -0
- cuda/cccl/headers/include/cub/block/block_merge_sort.cuh +800 -0
- cuda/cccl/headers/include/cub/block/block_radix_rank.cuh +1225 -0
- cuda/cccl/headers/include/cub/block/block_radix_sort.cuh +2196 -0
- cuda/cccl/headers/include/cub/block/block_raking_layout.cuh +150 -0
- cuda/cccl/headers/include/cub/block/block_reduce.cuh +667 -0
- cuda/cccl/headers/include/cub/block/block_run_length_decode.cuh +434 -0
- cuda/cccl/headers/include/cub/block/block_scan.cuh +2315 -0
- cuda/cccl/headers/include/cub/block/block_shuffle.cuh +346 -0
- cuda/cccl/headers/include/cub/block/block_store.cuh +1247 -0
- cuda/cccl/headers/include/cub/block/radix_rank_sort_operations.cuh +624 -0
- cuda/cccl/headers/include/cub/block/specializations/block_histogram_atomic.cuh +86 -0
- cuda/cccl/headers/include/cub/block/specializations/block_histogram_sort.cuh +240 -0
- cuda/cccl/headers/include/cub/block/specializations/block_reduce_raking.cuh +252 -0
- cuda/cccl/headers/include/cub/block/specializations/block_reduce_raking_commutative_only.cuh +238 -0
- cuda/cccl/headers/include/cub/block/specializations/block_reduce_warp_reductions.cuh +281 -0
- cuda/cccl/headers/include/cub/block/specializations/block_scan_raking.cuh +790 -0
- cuda/cccl/headers/include/cub/block/specializations/block_scan_warp_scans.cuh +538 -0
- cuda/cccl/headers/include/cub/config.cuh +53 -0
- cuda/cccl/headers/include/cub/cub.cuh +120 -0
- cuda/cccl/headers/include/cub/detail/array_utils.cuh +78 -0
- cuda/cccl/headers/include/cub/detail/choose_offset.cuh +161 -0
- cuda/cccl/headers/include/cub/detail/detect_cuda_runtime.cuh +74 -0
- cuda/cccl/headers/include/cub/detail/device_double_buffer.cuh +96 -0
- cuda/cccl/headers/include/cub/detail/device_memory_resource.cuh +62 -0
- cuda/cccl/headers/include/cub/detail/fast_modulo_division.cuh +253 -0
- cuda/cccl/headers/include/cub/detail/integer_utils.cuh +88 -0
- cuda/cccl/headers/include/cub/detail/launcher/cuda_driver.cuh +142 -0
- cuda/cccl/headers/include/cub/detail/launcher/cuda_runtime.cuh +100 -0
- cuda/cccl/headers/include/cub/detail/mdspan_utils.cuh +114 -0
- cuda/cccl/headers/include/cub/detail/ptx-json/README.md +71 -0
- cuda/cccl/headers/include/cub/detail/ptx-json/array.h +68 -0
- cuda/cccl/headers/include/cub/detail/ptx-json/json.h +62 -0
- cuda/cccl/headers/include/cub/detail/ptx-json/object.h +100 -0
- cuda/cccl/headers/include/cub/detail/ptx-json/string.h +53 -0
- cuda/cccl/headers/include/cub/detail/ptx-json/value.h +95 -0
- cuda/cccl/headers/include/cub/detail/ptx-json-parser.h +63 -0
- cuda/cccl/headers/include/cub/detail/rfa.cuh +731 -0
- cuda/cccl/headers/include/cub/detail/strong_load.cuh +189 -0
- cuda/cccl/headers/include/cub/detail/strong_store.cuh +220 -0
- cuda/cccl/headers/include/cub/detail/temporary_storage.cuh +384 -0
- cuda/cccl/headers/include/cub/detail/type_traits.cuh +187 -0
- cuda/cccl/headers/include/cub/detail/uninitialized_copy.cuh +73 -0
- cuda/cccl/headers/include/cub/detail/unsafe_bitcast.cuh +56 -0
- cuda/cccl/headers/include/cub/device/device_adjacent_difference.cuh +596 -0
- cuda/cccl/headers/include/cub/device/device_copy.cuh +276 -0
- cuda/cccl/headers/include/cub/device/device_for.cuh +1063 -0
- cuda/cccl/headers/include/cub/device/device_histogram.cuh +1509 -0
- cuda/cccl/headers/include/cub/device/device_memcpy.cuh +195 -0
- cuda/cccl/headers/include/cub/device/device_merge.cuh +203 -0
- cuda/cccl/headers/include/cub/device/device_merge_sort.cuh +979 -0
- cuda/cccl/headers/include/cub/device/device_partition.cuh +668 -0
- cuda/cccl/headers/include/cub/device/device_radix_sort.cuh +3437 -0
- cuda/cccl/headers/include/cub/device/device_reduce.cuh +2518 -0
- cuda/cccl/headers/include/cub/device/device_run_length_encode.cuh +370 -0
- cuda/cccl/headers/include/cub/device/device_scan.cuh +2212 -0
- cuda/cccl/headers/include/cub/device/device_segmented_radix_sort.cuh +1496 -0
- cuda/cccl/headers/include/cub/device/device_segmented_reduce.cuh +1430 -0
- cuda/cccl/headers/include/cub/device/device_segmented_sort.cuh +2811 -0
- cuda/cccl/headers/include/cub/device/device_select.cuh +1228 -0
- cuda/cccl/headers/include/cub/device/device_topk.cuh +511 -0
- cuda/cccl/headers/include/cub/device/device_transform.cuh +668 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_adjacent_difference.cuh +315 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_batch_memcpy.cuh +719 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_common.cuh +43 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_copy_mdspan.cuh +79 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_for.cuh +198 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_histogram.cuh +1046 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_merge.cuh +303 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_merge_sort.cuh +473 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_radix_sort.cuh +1744 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_reduce.cuh +1310 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_reduce_by_key.cuh +655 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_reduce_deterministic.cuh +531 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_reduce_nondeterministic.cuh +313 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_rle.cuh +615 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_scan.cuh +517 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_scan_by_key.cuh +602 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_segmented_sort.cuh +975 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_select_if.cuh +842 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_streaming_reduce.cuh +341 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_streaming_reduce_by_key.cuh +440 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_three_way_partition.cuh +389 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_topk.cuh +627 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_transform.cuh +569 -0
- cuda/cccl/headers/include/cub/device/dispatch/dispatch_unique_by_key.cuh +545 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/for_each.cuh +261 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/histogram.cuh +505 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/merge_sort.cuh +334 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/radix_sort.cuh +803 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/reduce.cuh +583 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/scan.cuh +189 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/segmented_reduce.cuh +321 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/segmented_sort.cuh +522 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/three_way_partition.cuh +201 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/transform.cuh +1028 -0
- cuda/cccl/headers/include/cub/device/dispatch/kernels/unique_by_key.cuh +176 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_adjacent_difference.cuh +67 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_batch_memcpy.cuh +118 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_for.cuh +60 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_histogram.cuh +275 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_merge.cuh +76 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_merge_sort.cuh +126 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_radix_sort.cuh +1065 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_reduce.cuh +493 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_reduce_by_key.cuh +942 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_run_length_encode.cuh +673 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_scan.cuh +618 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_scan_by_key.cuh +1010 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_segmented_sort.cuh +398 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_select_if.cuh +1588 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_three_way_partition.cuh +440 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_topk.cuh +85 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_transform.cuh +481 -0
- cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_unique_by_key.cuh +884 -0
- cuda/cccl/headers/include/cub/grid/grid_even_share.cuh +227 -0
- cuda/cccl/headers/include/cub/grid/grid_mapping.cuh +106 -0
- cuda/cccl/headers/include/cub/grid/grid_queue.cuh +202 -0
- cuda/cccl/headers/include/cub/iterator/arg_index_input_iterator.cuh +254 -0
- cuda/cccl/headers/include/cub/iterator/cache_modified_input_iterator.cuh +259 -0
- cuda/cccl/headers/include/cub/iterator/cache_modified_output_iterator.cuh +250 -0
- cuda/cccl/headers/include/cub/iterator/tex_obj_input_iterator.cuh +320 -0
- cuda/cccl/headers/include/cub/thread/thread_load.cuh +349 -0
- cuda/cccl/headers/include/cub/thread/thread_operators.cuh +688 -0
- cuda/cccl/headers/include/cub/thread/thread_reduce.cuh +548 -0
- cuda/cccl/headers/include/cub/thread/thread_scan.cuh +498 -0
- cuda/cccl/headers/include/cub/thread/thread_search.cuh +199 -0
- cuda/cccl/headers/include/cub/thread/thread_simd.cuh +458 -0
- cuda/cccl/headers/include/cub/thread/thread_sort.cuh +102 -0
- cuda/cccl/headers/include/cub/thread/thread_store.cuh +365 -0
- cuda/cccl/headers/include/cub/util_allocator.cuh +921 -0
- cuda/cccl/headers/include/cub/util_arch.cuh +167 -0
- cuda/cccl/headers/include/cub/util_cpp_dialect.cuh +95 -0
- cuda/cccl/headers/include/cub/util_debug.cuh +207 -0
- cuda/cccl/headers/include/cub/util_device.cuh +800 -0
- cuda/cccl/headers/include/cub/util_macro.cuh +97 -0
- cuda/cccl/headers/include/cub/util_math.cuh +118 -0
- cuda/cccl/headers/include/cub/util_namespace.cuh +176 -0
- cuda/cccl/headers/include/cub/util_policy_wrapper_t.cuh +55 -0
- cuda/cccl/headers/include/cub/util_ptx.cuh +513 -0
- cuda/cccl/headers/include/cub/util_temporary_storage.cuh +122 -0
- cuda/cccl/headers/include/cub/util_type.cuh +1120 -0
- cuda/cccl/headers/include/cub/util_vsmem.cuh +253 -0
- cuda/cccl/headers/include/cub/version.cuh +89 -0
- cuda/cccl/headers/include/cub/warp/specializations/warp_exchange_shfl.cuh +329 -0
- cuda/cccl/headers/include/cub/warp/specializations/warp_exchange_smem.cuh +177 -0
- cuda/cccl/headers/include/cub/warp/specializations/warp_reduce_shfl.cuh +737 -0
- cuda/cccl/headers/include/cub/warp/specializations/warp_reduce_smem.cuh +408 -0
- cuda/cccl/headers/include/cub/warp/specializations/warp_scan_shfl.cuh +952 -0
- cuda/cccl/headers/include/cub/warp/specializations/warp_scan_smem.cuh +715 -0
- cuda/cccl/headers/include/cub/warp/warp_exchange.cuh +405 -0
- cuda/cccl/headers/include/cub/warp/warp_load.cuh +614 -0
- cuda/cccl/headers/include/cub/warp/warp_merge_sort.cuh +169 -0
- cuda/cccl/headers/include/cub/warp/warp_reduce.cuh +829 -0
- cuda/cccl/headers/include/cub/warp/warp_scan.cuh +1890 -0
- cuda/cccl/headers/include/cub/warp/warp_store.cuh +521 -0
- cuda/cccl/headers/include/cub/warp/warp_utils.cuh +61 -0
- cuda/cccl/headers/include/cuda/__algorithm/common.h +68 -0
- cuda/cccl/headers/include/cuda/__algorithm/copy.h +196 -0
- cuda/cccl/headers/include/cuda/__algorithm/fill.h +107 -0
- cuda/cccl/headers/include/cuda/__annotated_ptr/access_property.h +165 -0
- cuda/cccl/headers/include/cuda/__annotated_ptr/access_property_encoding.h +172 -0
- cuda/cccl/headers/include/cuda/__annotated_ptr/annotated_ptr.h +217 -0
- cuda/cccl/headers/include/cuda/__annotated_ptr/annotated_ptr_base.h +100 -0
- cuda/cccl/headers/include/cuda/__annotated_ptr/apply_access_property.h +83 -0
- cuda/cccl/headers/include/cuda/__annotated_ptr/associate_access_property.h +128 -0
- cuda/cccl/headers/include/cuda/__annotated_ptr/createpolicy.h +210 -0
- cuda/cccl/headers/include/cuda/__atomic/atomic.h +145 -0
- cuda/cccl/headers/include/cuda/__barrier/async_contract_fulfillment.h +39 -0
- cuda/cccl/headers/include/cuda/__barrier/barrier.h +65 -0
- cuda/cccl/headers/include/cuda/__barrier/barrier_arrive_tx.h +102 -0
- cuda/cccl/headers/include/cuda/__barrier/barrier_block_scope.h +487 -0
- cuda/cccl/headers/include/cuda/__barrier/barrier_expect_tx.h +74 -0
- cuda/cccl/headers/include/cuda/__barrier/barrier_native_handle.h +45 -0
- cuda/cccl/headers/include/cuda/__barrier/barrier_thread_scope.h +60 -0
- cuda/cccl/headers/include/cuda/__bit/bit_reverse.h +171 -0
- cuda/cccl/headers/include/cuda/__bit/bitfield.h +122 -0
- cuda/cccl/headers/include/cuda/__bit/bitmask.h +90 -0
- cuda/cccl/headers/include/cuda/__cccl_config +37 -0
- cuda/cccl/headers/include/cuda/__cmath/ceil_div.h +124 -0
- cuda/cccl/headers/include/cuda/__cmath/fast_modulo_division.h +178 -0
- cuda/cccl/headers/include/cuda/__cmath/ilog.h +195 -0
- cuda/cccl/headers/include/cuda/__cmath/ipow.h +107 -0
- cuda/cccl/headers/include/cuda/__cmath/isqrt.h +80 -0
- cuda/cccl/headers/include/cuda/__cmath/mul_hi.h +146 -0
- cuda/cccl/headers/include/cuda/__cmath/neg.h +47 -0
- cuda/cccl/headers/include/cuda/__cmath/pow2.h +74 -0
- cuda/cccl/headers/include/cuda/__cmath/round_down.h +102 -0
- cuda/cccl/headers/include/cuda/__cmath/round_up.h +104 -0
- cuda/cccl/headers/include/cuda/__cmath/uabs.h +57 -0
- cuda/cccl/headers/include/cuda/__complex/complex.h +238 -0
- cuda/cccl/headers/include/cuda/__complex/get_real_imag.h +89 -0
- cuda/cccl/headers/include/cuda/__complex/traits.h +64 -0
- cuda/cccl/headers/include/cuda/__complex_ +28 -0
- cuda/cccl/headers/include/cuda/__device/all_devices.h +140 -0
- cuda/cccl/headers/include/cuda/__device/arch_id.h +176 -0
- cuda/cccl/headers/include/cuda/__device/arch_traits.h +537 -0
- cuda/cccl/headers/include/cuda/__device/attributes.h +772 -0
- cuda/cccl/headers/include/cuda/__device/compute_capability.h +171 -0
- cuda/cccl/headers/include/cuda/__device/device_ref.h +156 -0
- cuda/cccl/headers/include/cuda/__device/physical_device.h +172 -0
- cuda/cccl/headers/include/cuda/__driver/driver_api.h +835 -0
- cuda/cccl/headers/include/cuda/__event/event.h +171 -0
- cuda/cccl/headers/include/cuda/__event/event_ref.h +157 -0
- cuda/cccl/headers/include/cuda/__event/timed_event.h +120 -0
- cuda/cccl/headers/include/cuda/__execution/determinism.h +91 -0
- cuda/cccl/headers/include/cuda/__execution/output_ordering.h +89 -0
- cuda/cccl/headers/include/cuda/__execution/require.h +75 -0
- cuda/cccl/headers/include/cuda/__execution/tune.h +70 -0
- cuda/cccl/headers/include/cuda/__functional/address_stability.h +131 -0
- cuda/cccl/headers/include/cuda/__functional/for_each_canceled.h +321 -0
- cuda/cccl/headers/include/cuda/__functional/maximum.h +58 -0
- cuda/cccl/headers/include/cuda/__functional/minimum.h +58 -0
- cuda/cccl/headers/include/cuda/__functional/proclaim_return_type.h +108 -0
- cuda/cccl/headers/include/cuda/__fwd/barrier.h +38 -0
- cuda/cccl/headers/include/cuda/__fwd/barrier_native_handle.h +42 -0
- cuda/cccl/headers/include/cuda/__fwd/complex.h +48 -0
- cuda/cccl/headers/include/cuda/__fwd/devices.h +44 -0
- cuda/cccl/headers/include/cuda/__fwd/get_stream.h +38 -0
- cuda/cccl/headers/include/cuda/__fwd/pipeline.h +37 -0
- cuda/cccl/headers/include/cuda/__fwd/zip_iterator.h +58 -0
- cuda/cccl/headers/include/cuda/__iterator/constant_iterator.h +315 -0
- cuda/cccl/headers/include/cuda/__iterator/counting_iterator.h +483 -0
- cuda/cccl/headers/include/cuda/__iterator/discard_iterator.h +324 -0
- cuda/cccl/headers/include/cuda/__iterator/permutation_iterator.h +456 -0
- cuda/cccl/headers/include/cuda/__iterator/shuffle_iterator.h +334 -0
- cuda/cccl/headers/include/cuda/__iterator/strided_iterator.h +418 -0
- cuda/cccl/headers/include/cuda/__iterator/tabulate_output_iterator.h +367 -0
- cuda/cccl/headers/include/cuda/__iterator/transform_input_output_iterator.h +528 -0
- cuda/cccl/headers/include/cuda/__iterator/transform_iterator.h +527 -0
- cuda/cccl/headers/include/cuda/__iterator/transform_output_iterator.h +486 -0
- cuda/cccl/headers/include/cuda/__iterator/zip_common.h +148 -0
- cuda/cccl/headers/include/cuda/__iterator/zip_function.h +112 -0
- cuda/cccl/headers/include/cuda/__iterator/zip_iterator.h +557 -0
- cuda/cccl/headers/include/cuda/__iterator/zip_transform_iterator.h +592 -0
- cuda/cccl/headers/include/cuda/__latch/latch.h +44 -0
- cuda/cccl/headers/include/cuda/__mdspan/host_device_accessor.h +533 -0
- cuda/cccl/headers/include/cuda/__mdspan/host_device_mdspan.h +238 -0
- cuda/cccl/headers/include/cuda/__mdspan/restrict_accessor.h +152 -0
- cuda/cccl/headers/include/cuda/__mdspan/restrict_mdspan.h +117 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/check_preconditions.h +79 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/completion_mechanism.h +47 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/cp_async_bulk_shared_global.h +60 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/cp_async_fallback.h +72 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/cp_async_shared_global.h +148 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/dispatch_memcpy_async.h +165 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/is_local_smem_barrier.h +53 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/memcpy_async.h +179 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/memcpy_async_barrier.h +99 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/memcpy_async_tx.h +104 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/memcpy_completion.h +170 -0
- cuda/cccl/headers/include/cuda/__memcpy_async/try_get_barrier_handle.h +59 -0
- cuda/cccl/headers/include/cuda/__memory/address_space.h +227 -0
- cuda/cccl/headers/include/cuda/__memory/align_down.h +56 -0
- cuda/cccl/headers/include/cuda/__memory/align_up.h +56 -0
- cuda/cccl/headers/include/cuda/__memory/aligned_size.h +61 -0
- cuda/cccl/headers/include/cuda/__memory/check_address.h +111 -0
- cuda/cccl/headers/include/cuda/__memory/discard_memory.h +64 -0
- cuda/cccl/headers/include/cuda/__memory/get_device_address.h +58 -0
- cuda/cccl/headers/include/cuda/__memory/is_aligned.h +47 -0
- cuda/cccl/headers/include/cuda/__memory/ptr_in_range.h +93 -0
- cuda/cccl/headers/include/cuda/__memory/ptr_rebind.h +75 -0
- cuda/cccl/headers/include/cuda/__memory_resource/get_memory_resource.h +82 -0
- cuda/cccl/headers/include/cuda/__memory_resource/get_property.h +153 -0
- cuda/cccl/headers/include/cuda/__memory_resource/properties.h +113 -0
- cuda/cccl/headers/include/cuda/__memory_resource/resource.h +125 -0
- cuda/cccl/headers/include/cuda/__memory_resource/resource_ref.h +652 -0
- cuda/cccl/headers/include/cuda/__numeric/add_overflow.h +306 -0
- cuda/cccl/headers/include/cuda/__numeric/narrow.h +108 -0
- cuda/cccl/headers/include/cuda/__numeric/overflow_cast.h +59 -0
- cuda/cccl/headers/include/cuda/__numeric/overflow_result.h +43 -0
- cuda/cccl/headers/include/cuda/__nvtx/nvtx.h +120 -0
- cuda/cccl/headers/include/cuda/__nvtx/nvtx3.h +2983 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/barrier_cluster.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/bfind.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/bmsk.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/clusterlaunchcontrol.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/cp_async_bulk.h +44 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/cp_async_bulk_commit_group.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/cp_async_bulk_tensor.h +45 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/cp_async_bulk_wait_group.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/cp_async_mbarrier_arrive.h +42 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/cp_reduce_async_bulk.h +60 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/cp_reduce_async_bulk_tensor.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/elect_sync.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/exit.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/fence.h +49 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/barrier_cluster.h +115 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/bfind.h +190 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/bmsk.h +54 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/clusterlaunchcontrol.h +242 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_bulk.h +197 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_bulk_commit_group.h +25 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_bulk_multicast.h +54 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_bulk_tensor.h +997 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_bulk_tensor_gather_scatter.h +318 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_bulk_tensor_multicast.h +671 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_bulk_wait_group.h +46 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_mbarrier_arrive.h +26 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_async_mbarrier_arrive_noinc.h +26 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_reduce_async_bulk.h +1470 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_reduce_async_bulk_bf16.h +132 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_reduce_async_bulk_f16.h +132 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/cp_reduce_async_bulk_tensor.h +601 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/elect_sync.h +36 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/exit.h +25 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/fence.h +208 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/fence_mbarrier_init.h +31 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/fence_proxy_alias.h +25 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/fence_proxy_async.h +58 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/fence_proxy_async_generic_sync_restrict.h +64 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/fence_proxy_tensormap_generic.h +102 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/fence_sync_restrict.h +64 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/get_sreg.h +949 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/getctarank.h +32 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/ld.h +5542 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_arrive.h +399 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_arrive_expect_tx.h +184 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_arrive_no_complete.h +34 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_expect_tx.h +102 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_init.h +27 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_test_wait.h +143 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_test_wait_parity.h +144 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_try_wait.h +286 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/mbarrier_try_wait_parity.h +290 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/multimem_ld_reduce.h +2202 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/multimem_red.h +1362 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/multimem_st.h +236 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/prmt.h +230 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/red_async.h +460 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/shl.h +96 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/shr.h +168 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/st.h +1490 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/st_async.h +123 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/st_bulk.h +31 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_alloc.h +132 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_commit.h +99 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_cp.h +765 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_fence.h +58 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_ld.h +4927 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_mma.h +4291 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_mma_ws.h +7110 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_shift.h +42 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_st.h +5063 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tcgen05_wait.h +56 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tensormap_cp_fenceproxy.h +71 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/tensormap_replace.h +1030 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/generated/trap.h +25 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/get_sreg.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/getctarank.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/ld.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/mbarrier_arrive.h +45 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/mbarrier_expect_tx.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/mbarrier_init.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/mbarrier_wait.h +46 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/multimem_ld_reduce.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/multimem_red.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/multimem_st.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/prmt.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/red_async.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/shfl_sync.h +244 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/shl.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/shr.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/st.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/st_async.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/st_bulk.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_alloc.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_commit.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_cp.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_fence.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_ld.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_mma.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_mma_ws.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_shift.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_st.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tcgen05_wait.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tensormap_cp_fenceproxy.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/tensormap_replace.h +43 -0
- cuda/cccl/headers/include/cuda/__ptx/instructions/trap.h +41 -0
- cuda/cccl/headers/include/cuda/__ptx/pragmas/enable_smem_spilling.h +47 -0
- cuda/cccl/headers/include/cuda/__ptx/ptx_dot_variants.h +230 -0
- cuda/cccl/headers/include/cuda/__ptx/ptx_helper_functions.h +176 -0
- cuda/cccl/headers/include/cuda/__random/feistel_bijection.h +105 -0
- cuda/cccl/headers/include/cuda/__random/random_bijection.h +88 -0
- cuda/cccl/headers/include/cuda/__runtime/ensure_current_context.h +99 -0
- cuda/cccl/headers/include/cuda/__runtime/types.h +41 -0
- cuda/cccl/headers/include/cuda/__semaphore/counting_semaphore.h +53 -0
- cuda/cccl/headers/include/cuda/__stream/get_stream.h +110 -0
- cuda/cccl/headers/include/cuda/__stream/stream.h +141 -0
- cuda/cccl/headers/include/cuda/__stream/stream_ref.h +303 -0
- cuda/cccl/headers/include/cuda/__type_traits/is_floating_point.h +47 -0
- cuda/cccl/headers/include/cuda/__type_traits/is_specialization_of.h +37 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/access.h +88 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/any_cast.h +83 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/basic_any_base.h +148 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/basic_any_from.h +96 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/basic_any_fwd.h +128 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/basic_any_ptr.h +304 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/basic_any_ref.h +337 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/basic_any_value.h +590 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/conversions.h +169 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/dynamic_any_cast.h +107 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/interfaces.h +359 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/iset.h +142 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/overrides.h +64 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/rtti.h +257 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/semiregular.h +322 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/storage.h +79 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/tagged_ptr.h +58 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/virtcall.h +162 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/virtual_functions.h +184 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/virtual_ptrs.h +80 -0
- cuda/cccl/headers/include/cuda/__utility/__basic_any/virtual_tables.h +155 -0
- cuda/cccl/headers/include/cuda/__utility/basic_any.h +507 -0
- cuda/cccl/headers/include/cuda/__utility/immovable.h +50 -0
- cuda/cccl/headers/include/cuda/__utility/in_range.h +65 -0
- cuda/cccl/headers/include/cuda/__utility/inherit.h +36 -0
- cuda/cccl/headers/include/cuda/__utility/no_init.h +29 -0
- cuda/cccl/headers/include/cuda/__utility/static_for.h +79 -0
- cuda/cccl/headers/include/cuda/__warp/lane_mask.h +326 -0
- cuda/cccl/headers/include/cuda/__warp/warp_match_all.h +65 -0
- cuda/cccl/headers/include/cuda/__warp/warp_shuffle.h +251 -0
- cuda/cccl/headers/include/cuda/access_property +26 -0
- cuda/cccl/headers/include/cuda/algorithm +27 -0
- cuda/cccl/headers/include/cuda/annotated_ptr +29 -0
- cuda/cccl/headers/include/cuda/atomic +27 -0
- cuda/cccl/headers/include/cuda/barrier +267 -0
- cuda/cccl/headers/include/cuda/bit +29 -0
- cuda/cccl/headers/include/cuda/cmath +37 -0
- cuda/cccl/headers/include/cuda/devices +33 -0
- cuda/cccl/headers/include/cuda/discard_memory +32 -0
- cuda/cccl/headers/include/cuda/functional +32 -0
- cuda/cccl/headers/include/cuda/iterator +39 -0
- cuda/cccl/headers/include/cuda/latch +27 -0
- cuda/cccl/headers/include/cuda/mdspan +28 -0
- cuda/cccl/headers/include/cuda/memory +35 -0
- cuda/cccl/headers/include/cuda/memory_resource +35 -0
- cuda/cccl/headers/include/cuda/numeric +29 -0
- cuda/cccl/headers/include/cuda/pipeline +579 -0
- cuda/cccl/headers/include/cuda/ptx +129 -0
- cuda/cccl/headers/include/cuda/semaphore +31 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/adjacent_find.h +59 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/all_of.h +45 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/any_of.h +45 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/binary_search.h +53 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/clamp.h +48 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/comp.h +58 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/comp_ref_type.h +85 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/copy.h +142 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/copy_backward.h +80 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/copy_if.h +47 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/copy_n.h +73 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/count.h +49 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/count_if.h +49 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/equal.h +128 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/equal_range.h +101 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/fill.h +58 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/fill_n.h +51 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/find.h +62 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/find_end.h +225 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/find_first_of.h +73 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/find_if.h +46 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/find_if_not.h +46 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/for_each.h +42 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/for_each_n.h +48 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/generate.h +41 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/generate_n.h +46 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/half_positive.h +49 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/in_fun_result.h +55 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/includes.h +90 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/is_heap.h +50 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/is_heap_until.h +83 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/is_partitioned.h +57 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/is_permutation.h +252 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/is_sorted.h +49 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/is_sorted_until.h +68 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/iter_swap.h +82 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/iterator_operations.h +185 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/lexicographical_compare.h +68 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/lower_bound.h +82 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/make_heap.h +70 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/make_projected.h +88 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/max.h +62 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/max_element.h +67 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/merge.h +89 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/min.h +62 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/min_element.h +87 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/minmax.h +66 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/minmax_element.h +139 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/mismatch.h +83 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/move.h +86 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/move_backward.h +84 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/next_permutation.h +88 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/none_of.h +45 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/partial_sort.h +102 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/partial_sort_copy.h +122 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/partition.h +120 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/partition_copy.h +59 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/partition_point.h +61 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/pop_heap.h +93 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/prev_permutation.h +88 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/push_heap.h +100 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/ranges_for_each.h +84 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/ranges_for_each_n.h +68 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/ranges_iterator_concept.h +65 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/ranges_min.h +98 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/ranges_min_element.h +68 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/remove.h +55 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/remove_copy.h +47 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/remove_copy_if.h +47 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/remove_if.h +56 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/replace.h +45 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/replace_copy.h +54 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/replace_copy_if.h +50 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/replace_if.h +45 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/reverse.h +81 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/reverse_copy.h +43 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/rotate.h +261 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/rotate_copy.h +40 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/search.h +185 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/search_n.h +163 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/set_difference.h +95 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/set_intersection.h +122 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/set_symmetric_difference.h +134 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/set_union.h +128 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/shift_left.h +84 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/shift_right.h +144 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/sift_down.h +139 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/sort_heap.h +70 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/swap_ranges.h +78 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/transform.h +59 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/unique.h +76 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/unique_copy.h +155 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/unwrap_iter.h +95 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/unwrap_range.h +126 -0
- cuda/cccl/headers/include/cuda/std/__algorithm/upper_bound.h +83 -0
- cuda/cccl/headers/include/cuda/std/__algorithm_ +26 -0
- cuda/cccl/headers/include/cuda/std/__atomic/api/common.h +192 -0
- cuda/cccl/headers/include/cuda/std/__atomic/api/owned.h +136 -0
- cuda/cccl/headers/include/cuda/std/__atomic/api/reference.h +118 -0
- cuda/cccl/headers/include/cuda/std/__atomic/functions/common.h +58 -0
- cuda/cccl/headers/include/cuda/std/__atomic/functions/cuda_local.h +208 -0
- cuda/cccl/headers/include/cuda/std/__atomic/functions/cuda_ptx_derived.h +401 -0
- cuda/cccl/headers/include/cuda/std/__atomic/functions/cuda_ptx_generated.h +3971 -0
- cuda/cccl/headers/include/cuda/std/__atomic/functions/cuda_ptx_generated_helper.h +177 -0
- cuda/cccl/headers/include/cuda/std/__atomic/functions/host.h +211 -0
- cuda/cccl/headers/include/cuda/std/__atomic/functions.h +33 -0
- cuda/cccl/headers/include/cuda/std/__atomic/order.h +159 -0
- cuda/cccl/headers/include/cuda/std/__atomic/platform/msvc_to_builtins.h +654 -0
- cuda/cccl/headers/include/cuda/std/__atomic/platform.h +93 -0
- cuda/cccl/headers/include/cuda/std/__atomic/scopes.h +105 -0
- cuda/cccl/headers/include/cuda/std/__atomic/types/base.h +249 -0
- cuda/cccl/headers/include/cuda/std/__atomic/types/common.h +104 -0
- cuda/cccl/headers/include/cuda/std/__atomic/types/locked.h +225 -0
- cuda/cccl/headers/include/cuda/std/__atomic/types/reference.h +72 -0
- cuda/cccl/headers/include/cuda/std/__atomic/types/small.h +228 -0
- cuda/cccl/headers/include/cuda/std/__atomic/types.h +52 -0
- cuda/cccl/headers/include/cuda/std/__atomic/wait/notify_wait.h +95 -0
- cuda/cccl/headers/include/cuda/std/__atomic/wait/polling.h +65 -0
- cuda/cccl/headers/include/cuda/std/__barrier/barrier.h +227 -0
- cuda/cccl/headers/include/cuda/std/__barrier/empty_completion.h +37 -0
- cuda/cccl/headers/include/cuda/std/__barrier/poll_tester.h +82 -0
- cuda/cccl/headers/include/cuda/std/__bit/bit_cast.h +76 -0
- cuda/cccl/headers/include/cuda/std/__bit/byteswap.h +185 -0
- cuda/cccl/headers/include/cuda/std/__bit/countl.h +174 -0
- cuda/cccl/headers/include/cuda/std/__bit/countr.h +185 -0
- cuda/cccl/headers/include/cuda/std/__bit/endian.h +39 -0
- cuda/cccl/headers/include/cuda/std/__bit/has_single_bit.h +43 -0
- cuda/cccl/headers/include/cuda/std/__bit/integral.h +126 -0
- cuda/cccl/headers/include/cuda/std/__bit/popcount.h +154 -0
- cuda/cccl/headers/include/cuda/std/__bit/reference.h +1272 -0
- cuda/cccl/headers/include/cuda/std/__bit/rotate.h +94 -0
- cuda/cccl/headers/include/cuda/std/__cccl/algorithm_wrapper.h +36 -0
- cuda/cccl/headers/include/cuda/std/__cccl/architecture.h +78 -0
- cuda/cccl/headers/include/cuda/std/__cccl/assert.h +161 -0
- cuda/cccl/headers/include/cuda/std/__cccl/attributes.h +206 -0
- cuda/cccl/headers/include/cuda/std/__cccl/builtin.h +673 -0
- cuda/cccl/headers/include/cuda/std/__cccl/compiler.h +217 -0
- cuda/cccl/headers/include/cuda/std/__cccl/cuda_capabilities.h +51 -0
- cuda/cccl/headers/include/cuda/std/__cccl/cuda_toolkit.h +56 -0
- cuda/cccl/headers/include/cuda/std/__cccl/deprecated.h +88 -0
- cuda/cccl/headers/include/cuda/std/__cccl/diagnostic.h +131 -0
- cuda/cccl/headers/include/cuda/std/__cccl/dialect.h +123 -0
- cuda/cccl/headers/include/cuda/std/__cccl/epilogue.h +344 -0
- cuda/cccl/headers/include/cuda/std/__cccl/exceptions.h +91 -0
- cuda/cccl/headers/include/cuda/std/__cccl/execution_space.h +74 -0
- cuda/cccl/headers/include/cuda/std/__cccl/extended_data_types.h +160 -0
- cuda/cccl/headers/include/cuda/std/__cccl/host_std_lib.h +52 -0
- cuda/cccl/headers/include/cuda/std/__cccl/is_non_narrowing_convertible.h +73 -0
- cuda/cccl/headers/include/cuda/std/__cccl/memory_wrapper.h +36 -0
- cuda/cccl/headers/include/cuda/std/__cccl/numeric_wrapper.h +36 -0
- cuda/cccl/headers/include/cuda/std/__cccl/os.h +54 -0
- cuda/cccl/headers/include/cuda/std/__cccl/preprocessor.h +1286 -0
- cuda/cccl/headers/include/cuda/std/__cccl/prologue.h +281 -0
- cuda/cccl/headers/include/cuda/std/__cccl/ptx_isa.h +253 -0
- cuda/cccl/headers/include/cuda/std/__cccl/rtti.h +72 -0
- cuda/cccl/headers/include/cuda/std/__cccl/sequence_access.h +87 -0
- cuda/cccl/headers/include/cuda/std/__cccl/system_header.h +38 -0
- cuda/cccl/headers/include/cuda/std/__cccl/unreachable.h +31 -0
- cuda/cccl/headers/include/cuda/std/__cccl/version.h +26 -0
- cuda/cccl/headers/include/cuda/std/__cccl/visibility.h +171 -0
- cuda/cccl/headers/include/cuda/std/__charconv/chars_format.h +81 -0
- cuda/cccl/headers/include/cuda/std/__charconv/from_chars.h +154 -0
- cuda/cccl/headers/include/cuda/std/__charconv/from_chars_result.h +56 -0
- cuda/cccl/headers/include/cuda/std/__charconv/to_chars.h +148 -0
- cuda/cccl/headers/include/cuda/std/__charconv/to_chars_result.h +56 -0
- cuda/cccl/headers/include/cuda/std/__charconv_ +31 -0
- cuda/cccl/headers/include/cuda/std/__chrono/calendar.h +54 -0
- cuda/cccl/headers/include/cuda/std/__chrono/day.h +162 -0
- cuda/cccl/headers/include/cuda/std/__chrono/duration.h +503 -0
- cuda/cccl/headers/include/cuda/std/__chrono/file_clock.h +55 -0
- cuda/cccl/headers/include/cuda/std/__chrono/high_resolution_clock.h +46 -0
- cuda/cccl/headers/include/cuda/std/__chrono/month.h +187 -0
- cuda/cccl/headers/include/cuda/std/__chrono/steady_clock.h +60 -0
- cuda/cccl/headers/include/cuda/std/__chrono/system_clock.h +80 -0
- cuda/cccl/headers/include/cuda/std/__chrono/time_point.h +259 -0
- cuda/cccl/headers/include/cuda/std/__chrono/year.h +186 -0
- cuda/cccl/headers/include/cuda/std/__cmath/abs.h +127 -0
- cuda/cccl/headers/include/cuda/std/__cmath/copysign.h +88 -0
- cuda/cccl/headers/include/cuda/std/__cmath/error_functions.h +200 -0
- cuda/cccl/headers/include/cuda/std/__cmath/exponential_functions.h +784 -0
- cuda/cccl/headers/include/cuda/std/__cmath/fdim.h +118 -0
- cuda/cccl/headers/include/cuda/std/__cmath/fma.h +125 -0
- cuda/cccl/headers/include/cuda/std/__cmath/fpclassify.h +231 -0
- cuda/cccl/headers/include/cuda/std/__cmath/gamma.h +205 -0
- cuda/cccl/headers/include/cuda/std/__cmath/hyperbolic_functions.h +286 -0
- cuda/cccl/headers/include/cuda/std/__cmath/hypot.h +221 -0
- cuda/cccl/headers/include/cuda/std/__cmath/inverse_hyperbolic_functions.h +286 -0
- cuda/cccl/headers/include/cuda/std/__cmath/inverse_trigonometric_functions.h +371 -0
- cuda/cccl/headers/include/cuda/std/__cmath/isfinite.h +167 -0
- cuda/cccl/headers/include/cuda/std/__cmath/isinf.h +205 -0
- cuda/cccl/headers/include/cuda/std/__cmath/isnan.h +186 -0
- cuda/cccl/headers/include/cuda/std/__cmath/isnormal.h +138 -0
- cuda/cccl/headers/include/cuda/std/__cmath/lerp.h +101 -0
- cuda/cccl/headers/include/cuda/std/__cmath/logarithms.h +534 -0
- cuda/cccl/headers/include/cuda/std/__cmath/min_max.h +287 -0
- cuda/cccl/headers/include/cuda/std/__cmath/modulo.h +208 -0
- cuda/cccl/headers/include/cuda/std/__cmath/nan.h +54 -0
- cuda/cccl/headers/include/cuda/std/__cmath/remainder.h +206 -0
- cuda/cccl/headers/include/cuda/std/__cmath/roots.h +199 -0
- cuda/cccl/headers/include/cuda/std/__cmath/rounding_functions.h +984 -0
- cuda/cccl/headers/include/cuda/std/__cmath/signbit.h +56 -0
- cuda/cccl/headers/include/cuda/std/__cmath/traits.h +238 -0
- cuda/cccl/headers/include/cuda/std/__cmath/trigonometric_functions.h +328 -0
- cuda/cccl/headers/include/cuda/std/__complex/arg.h +84 -0
- cuda/cccl/headers/include/cuda/std/__complex/complex.h +669 -0
- cuda/cccl/headers/include/cuda/std/__complex/exponential_functions.h +411 -0
- cuda/cccl/headers/include/cuda/std/__complex/hyperbolic_functions.h +117 -0
- cuda/cccl/headers/include/cuda/std/__complex/inverse_hyperbolic_functions.h +216 -0
- cuda/cccl/headers/include/cuda/std/__complex/inverse_trigonometric_functions.h +131 -0
- cuda/cccl/headers/include/cuda/std/__complex/literals.h +86 -0
- cuda/cccl/headers/include/cuda/std/__complex/logarithms.h +303 -0
- cuda/cccl/headers/include/cuda/std/__complex/math.h +159 -0
- cuda/cccl/headers/include/cuda/std/__complex/nvbf16.h +323 -0
- cuda/cccl/headers/include/cuda/std/__complex/nvfp16.h +322 -0
- cuda/cccl/headers/include/cuda/std/__complex/roots.h +214 -0
- cuda/cccl/headers/include/cuda/std/__complex/trigonometric_functions.h +61 -0
- cuda/cccl/headers/include/cuda/std/__complex/tuple.h +107 -0
- cuda/cccl/headers/include/cuda/std/__complex/vector_support.h +130 -0
- cuda/cccl/headers/include/cuda/std/__concepts/arithmetic.h +56 -0
- cuda/cccl/headers/include/cuda/std/__concepts/assignable.h +64 -0
- cuda/cccl/headers/include/cuda/std/__concepts/boolean_testable.h +63 -0
- cuda/cccl/headers/include/cuda/std/__concepts/class_or_enum.h +45 -0
- cuda/cccl/headers/include/cuda/std/__concepts/common_reference_with.h +69 -0
- cuda/cccl/headers/include/cuda/std/__concepts/common_with.h +82 -0
- cuda/cccl/headers/include/cuda/std/__concepts/concept_macros.h +341 -0
- cuda/cccl/headers/include/cuda/std/__concepts/constructible.h +174 -0
- cuda/cccl/headers/include/cuda/std/__concepts/convertible_to.h +70 -0
- cuda/cccl/headers/include/cuda/std/__concepts/copyable.h +60 -0
- cuda/cccl/headers/include/cuda/std/__concepts/derived_from.h +56 -0
- cuda/cccl/headers/include/cuda/std/__concepts/destructible.h +76 -0
- cuda/cccl/headers/include/cuda/std/__concepts/different_from.h +38 -0
- cuda/cccl/headers/include/cuda/std/__concepts/equality_comparable.h +100 -0
- cuda/cccl/headers/include/cuda/std/__concepts/invocable.h +80 -0
- cuda/cccl/headers/include/cuda/std/__concepts/movable.h +58 -0
- cuda/cccl/headers/include/cuda/std/__concepts/predicate.h +54 -0
- cuda/cccl/headers/include/cuda/std/__concepts/regular.h +54 -0
- cuda/cccl/headers/include/cuda/std/__concepts/relation.h +77 -0
- cuda/cccl/headers/include/cuda/std/__concepts/same_as.h +39 -0
- cuda/cccl/headers/include/cuda/std/__concepts/semiregular.h +54 -0
- cuda/cccl/headers/include/cuda/std/__concepts/swappable.h +206 -0
- cuda/cccl/headers/include/cuda/std/__concepts/totally_ordered.h +101 -0
- cuda/cccl/headers/include/cuda/std/__cstddef/byte.h +113 -0
- cuda/cccl/headers/include/cuda/std/__cstddef/types.h +52 -0
- cuda/cccl/headers/include/cuda/std/__cstdlib/abs.h +57 -0
- cuda/cccl/headers/include/cuda/std/__cstdlib/aligned_alloc.h +66 -0
- cuda/cccl/headers/include/cuda/std/__cstdlib/div.h +96 -0
- cuda/cccl/headers/include/cuda/std/__cstdlib/malloc.h +70 -0
- cuda/cccl/headers/include/cuda/std/__cstring/memcpy.h +61 -0
- cuda/cccl/headers/include/cuda/std/__cstring/memset.h +46 -0
- cuda/cccl/headers/include/cuda/std/__cuda/api_wrapper.h +62 -0
- cuda/cccl/headers/include/cuda/std/__exception/cuda_error.h +139 -0
- cuda/cccl/headers/include/cuda/std/__exception/terminate.h +73 -0
- cuda/cccl/headers/include/cuda/std/__execution/env.h +455 -0
- cuda/cccl/headers/include/cuda/std/__execution/policy.h +88 -0
- cuda/cccl/headers/include/cuda/std/__expected/bad_expected_access.h +127 -0
- cuda/cccl/headers/include/cuda/std/__expected/expected.h +1941 -0
- cuda/cccl/headers/include/cuda/std/__expected/expected_base.h +1050 -0
- cuda/cccl/headers/include/cuda/std/__expected/unexpect.h +37 -0
- cuda/cccl/headers/include/cuda/std/__expected/unexpected.h +165 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/arithmetic.h +56 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/cast.h +812 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/cccl_fp.h +125 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/common_type.h +48 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/constants.h +376 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/conversion_rank_order.h +124 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/cuda_fp_types.h +116 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/decompose.h +69 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/format.h +162 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/fp.h +40 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/mask.h +78 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/native_type.h +81 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/overflow_handler.h +139 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/properties.h +229 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/storage.h +248 -0
- cuda/cccl/headers/include/cuda/std/__floating_point/traits.h +172 -0
- cuda/cccl/headers/include/cuda/std/__format/buffer.h +48 -0
- cuda/cccl/headers/include/cuda/std/__format/concepts.h +69 -0
- cuda/cccl/headers/include/cuda/std/__format/format_arg.h +282 -0
- cuda/cccl/headers/include/cuda/std/__format/format_arg_store.h +279 -0
- cuda/cccl/headers/include/cuda/std/__format/format_args.h +122 -0
- cuda/cccl/headers/include/cuda/std/__format/format_context.h +92 -0
- cuda/cccl/headers/include/cuda/std/__format/format_error.h +76 -0
- cuda/cccl/headers/include/cuda/std/__format/format_integral.h +237 -0
- cuda/cccl/headers/include/cuda/std/__format/format_parse_context.h +124 -0
- cuda/cccl/headers/include/cuda/std/__format/format_spec_parser.h +1230 -0
- cuda/cccl/headers/include/cuda/std/__format/formatter.h +59 -0
- cuda/cccl/headers/include/cuda/std/__format/formatters/bool.h +101 -0
- cuda/cccl/headers/include/cuda/std/__format/formatters/char.h +124 -0
- cuda/cccl/headers/include/cuda/std/__format/formatters/fp.h +101 -0
- cuda/cccl/headers/include/cuda/std/__format/formatters/int.h +174 -0
- cuda/cccl/headers/include/cuda/std/__format/formatters/ptr.h +104 -0
- cuda/cccl/headers/include/cuda/std/__format/formatters/str.h +178 -0
- cuda/cccl/headers/include/cuda/std/__format/output_utils.h +272 -0
- cuda/cccl/headers/include/cuda/std/__format/parse_arg_id.h +138 -0
- cuda/cccl/headers/include/cuda/std/__format_ +45 -0
- cuda/cccl/headers/include/cuda/std/__functional/binary_function.h +63 -0
- cuda/cccl/headers/include/cuda/std/__functional/binary_negate.h +65 -0
- cuda/cccl/headers/include/cuda/std/__functional/bind.h +334 -0
- cuda/cccl/headers/include/cuda/std/__functional/bind_back.h +80 -0
- cuda/cccl/headers/include/cuda/std/__functional/bind_front.h +73 -0
- cuda/cccl/headers/include/cuda/std/__functional/binder1st.h +74 -0
- cuda/cccl/headers/include/cuda/std/__functional/binder2nd.h +74 -0
- cuda/cccl/headers/include/cuda/std/__functional/compose.h +68 -0
- cuda/cccl/headers/include/cuda/std/__functional/default_searcher.h +75 -0
- cuda/cccl/headers/include/cuda/std/__functional/function.h +1275 -0
- cuda/cccl/headers/include/cuda/std/__functional/hash.h +649 -0
- cuda/cccl/headers/include/cuda/std/__functional/identity.h +57 -0
- cuda/cccl/headers/include/cuda/std/__functional/invoke.h +296 -0
- cuda/cccl/headers/include/cuda/std/__functional/is_transparent.h +41 -0
- cuda/cccl/headers/include/cuda/std/__functional/mem_fn.h +66 -0
- cuda/cccl/headers/include/cuda/std/__functional/mem_fun_ref.h +211 -0
- cuda/cccl/headers/include/cuda/std/__functional/not_fn.h +120 -0
- cuda/cccl/headers/include/cuda/std/__functional/operations.h +534 -0
- cuda/cccl/headers/include/cuda/std/__functional/perfect_forward.h +128 -0
- cuda/cccl/headers/include/cuda/std/__functional/pointer_to_binary_function.h +64 -0
- cuda/cccl/headers/include/cuda/std/__functional/pointer_to_unary_function.h +63 -0
- cuda/cccl/headers/include/cuda/std/__functional/ranges_operations.h +113 -0
- cuda/cccl/headers/include/cuda/std/__functional/reference_wrapper.h +113 -0
- cuda/cccl/headers/include/cuda/std/__functional/unary_function.h +62 -0
- cuda/cccl/headers/include/cuda/std/__functional/unary_negate.h +65 -0
- cuda/cccl/headers/include/cuda/std/__functional/unwrap_ref.h +56 -0
- cuda/cccl/headers/include/cuda/std/__functional/weak_result_type.h +262 -0
- cuda/cccl/headers/include/cuda/std/__fwd/allocator.h +53 -0
- cuda/cccl/headers/include/cuda/std/__fwd/array.h +42 -0
- cuda/cccl/headers/include/cuda/std/__fwd/char_traits.h +74 -0
- cuda/cccl/headers/include/cuda/std/__fwd/complex.h +75 -0
- cuda/cccl/headers/include/cuda/std/__fwd/expected.h +46 -0
- cuda/cccl/headers/include/cuda/std/__fwd/format.h +84 -0
- cuda/cccl/headers/include/cuda/std/__fwd/fp.h +37 -0
- cuda/cccl/headers/include/cuda/std/__fwd/get.h +123 -0
- cuda/cccl/headers/include/cuda/std/__fwd/hash.h +34 -0
- cuda/cccl/headers/include/cuda/std/__fwd/iterator.h +43 -0
- cuda/cccl/headers/include/cuda/std/__fwd/mdspan.h +122 -0
- cuda/cccl/headers/include/cuda/std/__fwd/memory_resource.h +37 -0
- cuda/cccl/headers/include/cuda/std/__fwd/optional.h +39 -0
- cuda/cccl/headers/include/cuda/std/__fwd/pair.h +47 -0
- cuda/cccl/headers/include/cuda/std/__fwd/reference_wrapper.h +34 -0
- cuda/cccl/headers/include/cuda/std/__fwd/span.h +45 -0
- cuda/cccl/headers/include/cuda/std/__fwd/string.h +112 -0
- cuda/cccl/headers/include/cuda/std/__fwd/string_view.h +91 -0
- cuda/cccl/headers/include/cuda/std/__fwd/subrange.h +55 -0
- cuda/cccl/headers/include/cuda/std/__fwd/tuple.h +34 -0
- cuda/cccl/headers/include/cuda/std/__fwd/unexpected.h +40 -0
- cuda/cccl/headers/include/cuda/std/__internal/cpp_dialect.h +44 -0
- cuda/cccl/headers/include/cuda/std/__internal/features.h +72 -0
- cuda/cccl/headers/include/cuda/std/__internal/namespaces.h +143 -0
- cuda/cccl/headers/include/cuda/std/__iterator/access.h +128 -0
- cuda/cccl/headers/include/cuda/std/__iterator/advance.h +228 -0
- cuda/cccl/headers/include/cuda/std/__iterator/back_insert_iterator.h +163 -0
- cuda/cccl/headers/include/cuda/std/__iterator/bounded_iter.h +253 -0
- cuda/cccl/headers/include/cuda/std/__iterator/concepts.h +645 -0
- cuda/cccl/headers/include/cuda/std/__iterator/counted_iterator.h +464 -0
- cuda/cccl/headers/include/cuda/std/__iterator/data.h +61 -0
- cuda/cccl/headers/include/cuda/std/__iterator/default_sentinel.h +36 -0
- cuda/cccl/headers/include/cuda/std/__iterator/distance.h +126 -0
- cuda/cccl/headers/include/cuda/std/__iterator/empty.h +53 -0
- cuda/cccl/headers/include/cuda/std/__iterator/erase_if_container.h +53 -0
- cuda/cccl/headers/include/cuda/std/__iterator/front_insert_iterator.h +99 -0
- cuda/cccl/headers/include/cuda/std/__iterator/incrementable_traits.h +143 -0
- cuda/cccl/headers/include/cuda/std/__iterator/indirectly_comparable.h +55 -0
- cuda/cccl/headers/include/cuda/std/__iterator/insert_iterator.h +107 -0
- cuda/cccl/headers/include/cuda/std/__iterator/istream_iterator.h +146 -0
- cuda/cccl/headers/include/cuda/std/__iterator/istreambuf_iterator.h +161 -0
- cuda/cccl/headers/include/cuda/std/__iterator/iter_move.h +161 -0
- cuda/cccl/headers/include/cuda/std/__iterator/iter_swap.h +163 -0
- cuda/cccl/headers/include/cuda/std/__iterator/iterator.h +44 -0
- cuda/cccl/headers/include/cuda/std/__iterator/iterator_traits.h +847 -0
- cuda/cccl/headers/include/cuda/std/__iterator/mergeable.h +72 -0
- cuda/cccl/headers/include/cuda/std/__iterator/move_iterator.h +432 -0
- cuda/cccl/headers/include/cuda/std/__iterator/move_sentinel.h +73 -0
- cuda/cccl/headers/include/cuda/std/__iterator/next.h +101 -0
- cuda/cccl/headers/include/cuda/std/__iterator/ostream_iterator.h +95 -0
- cuda/cccl/headers/include/cuda/std/__iterator/ostreambuf_iterator.h +100 -0
- cuda/cccl/headers/include/cuda/std/__iterator/permutable.h +54 -0
- cuda/cccl/headers/include/cuda/std/__iterator/prev.h +90 -0
- cuda/cccl/headers/include/cuda/std/__iterator/projected.h +61 -0
- cuda/cccl/headers/include/cuda/std/__iterator/readable_traits.h +156 -0
- cuda/cccl/headers/include/cuda/std/__iterator/reverse_access.h +142 -0
- cuda/cccl/headers/include/cuda/std/__iterator/reverse_iterator.h +371 -0
- cuda/cccl/headers/include/cuda/std/__iterator/size.h +69 -0
- cuda/cccl/headers/include/cuda/std/__iterator/sortable.h +55 -0
- cuda/cccl/headers/include/cuda/std/__iterator/unreachable_sentinel.h +84 -0
- cuda/cccl/headers/include/cuda/std/__iterator/wrap_iter.h +245 -0
- cuda/cccl/headers/include/cuda/std/__latch/latch.h +88 -0
- cuda/cccl/headers/include/cuda/std/__limits/numeric_limits.h +617 -0
- cuda/cccl/headers/include/cuda/std/__limits/numeric_limits_ext.h +753 -0
- cuda/cccl/headers/include/cuda/std/__linalg/conj_if_needed.h +78 -0
- cuda/cccl/headers/include/cuda/std/__linalg/conjugate_transposed.h +54 -0
- cuda/cccl/headers/include/cuda/std/__linalg/conjugated.h +139 -0
- cuda/cccl/headers/include/cuda/std/__linalg/scaled.h +132 -0
- cuda/cccl/headers/include/cuda/std/__linalg/transposed.h +321 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/aligned_accessor.h +97 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/concepts.h +139 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/default_accessor.h +73 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/empty_base.h +352 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/extents.h +759 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/layout_left.h +314 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/layout_right.h +307 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/layout_stride.h +605 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/mdspan.h +512 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/submdspan_extents.h +193 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/submdspan_helper.h +189 -0
- cuda/cccl/headers/include/cuda/std/__mdspan/submdspan_mapping.h +344 -0
- cuda/cccl/headers/include/cuda/std/__memory/addressof.h +67 -0
- cuda/cccl/headers/include/cuda/std/__memory/align.h +67 -0
- cuda/cccl/headers/include/cuda/std/__memory/allocate_at_least.h +81 -0
- cuda/cccl/headers/include/cuda/std/__memory/allocation_guard.h +100 -0
- cuda/cccl/headers/include/cuda/std/__memory/allocator.h +320 -0
- cuda/cccl/headers/include/cuda/std/__memory/allocator_arg_t.h +84 -0
- cuda/cccl/headers/include/cuda/std/__memory/allocator_destructor.h +59 -0
- cuda/cccl/headers/include/cuda/std/__memory/allocator_traits.h +525 -0
- cuda/cccl/headers/include/cuda/std/__memory/assume_aligned.h +60 -0
- cuda/cccl/headers/include/cuda/std/__memory/builtin_new_allocator.h +87 -0
- cuda/cccl/headers/include/cuda/std/__memory/compressed_pair.h +225 -0
- cuda/cccl/headers/include/cuda/std/__memory/construct_at.h +246 -0
- cuda/cccl/headers/include/cuda/std/__memory/destruct_n.h +91 -0
- cuda/cccl/headers/include/cuda/std/__memory/is_sufficiently_aligned.h +46 -0
- cuda/cccl/headers/include/cuda/std/__memory/pointer_traits.h +246 -0
- cuda/cccl/headers/include/cuda/std/__memory/runtime_assume_aligned.h +62 -0
- cuda/cccl/headers/include/cuda/std/__memory/temporary_buffer.h +92 -0
- cuda/cccl/headers/include/cuda/std/__memory/uninitialized_algorithms.h +678 -0
- cuda/cccl/headers/include/cuda/std/__memory/unique_ptr.h +765 -0
- cuda/cccl/headers/include/cuda/std/__memory/uses_allocator.h +54 -0
- cuda/cccl/headers/include/cuda/std/__memory/voidify.h +41 -0
- cuda/cccl/headers/include/cuda/std/__memory_ +34 -0
- cuda/cccl/headers/include/cuda/std/__new/allocate.h +126 -0
- cuda/cccl/headers/include/cuda/std/__new/bad_alloc.h +57 -0
- cuda/cccl/headers/include/cuda/std/__new/launder.h +53 -0
- cuda/cccl/headers/include/cuda/std/__new_ +29 -0
- cuda/cccl/headers/include/cuda/std/__numeric/accumulate.h +56 -0
- cuda/cccl/headers/include/cuda/std/__numeric/adjacent_difference.h +72 -0
- cuda/cccl/headers/include/cuda/std/__numeric/exclusive_scan.h +66 -0
- cuda/cccl/headers/include/cuda/std/__numeric/gcd_lcm.h +78 -0
- cuda/cccl/headers/include/cuda/std/__numeric/inclusive_scan.h +73 -0
- cuda/cccl/headers/include/cuda/std/__numeric/inner_product.h +62 -0
- cuda/cccl/headers/include/cuda/std/__numeric/iota.h +42 -0
- cuda/cccl/headers/include/cuda/std/__numeric/midpoint.h +97 -0
- cuda/cccl/headers/include/cuda/std/__numeric/partial_sum.h +69 -0
- cuda/cccl/headers/include/cuda/std/__numeric/reduce.h +60 -0
- cuda/cccl/headers/include/cuda/std/__numeric/transform_exclusive_scan.h +51 -0
- cuda/cccl/headers/include/cuda/std/__numeric/transform_inclusive_scan.h +65 -0
- cuda/cccl/headers/include/cuda/std/__numeric/transform_reduce.h +72 -0
- cuda/cccl/headers/include/cuda/std/__optional/bad_optional_access.h +74 -0
- cuda/cccl/headers/include/cuda/std/__optional/hash.h +53 -0
- cuda/cccl/headers/include/cuda/std/__optional/make_optional.h +61 -0
- cuda/cccl/headers/include/cuda/std/__optional/nullopt.h +43 -0
- cuda/cccl/headers/include/cuda/std/__optional/optional.h +859 -0
- cuda/cccl/headers/include/cuda/std/__optional/optional_base.h +433 -0
- cuda/cccl/headers/include/cuda/std/__optional/optional_ref.h +324 -0
- cuda/cccl/headers/include/cuda/std/__random/generate_canonical.h +56 -0
- cuda/cccl/headers/include/cuda/std/__random/is_seed_sequence.h +39 -0
- cuda/cccl/headers/include/cuda/std/__random/is_valid.h +106 -0
- cuda/cccl/headers/include/cuda/std/__random/linear_congruential_engine.h +398 -0
- cuda/cccl/headers/include/cuda/std/__random/uniform_int_distribution.h +335 -0
- cuda/cccl/headers/include/cuda/std/__random/uniform_real_distribution.h +183 -0
- cuda/cccl/headers/include/cuda/std/__random_ +29 -0
- cuda/cccl/headers/include/cuda/std/__ranges/access.h +303 -0
- cuda/cccl/headers/include/cuda/std/__ranges/all.h +98 -0
- cuda/cccl/headers/include/cuda/std/__ranges/compressed_movable_box.h +892 -0
- cuda/cccl/headers/include/cuda/std/__ranges/concepts.h +302 -0
- cuda/cccl/headers/include/cuda/std/__ranges/counted.h +90 -0
- cuda/cccl/headers/include/cuda/std/__ranges/dangling.h +54 -0
- cuda/cccl/headers/include/cuda/std/__ranges/data.h +136 -0
- cuda/cccl/headers/include/cuda/std/__ranges/empty.h +109 -0
- cuda/cccl/headers/include/cuda/std/__ranges/empty_view.h +77 -0
- cuda/cccl/headers/include/cuda/std/__ranges/enable_borrowed_range.h +41 -0
- cuda/cccl/headers/include/cuda/std/__ranges/enable_view.h +78 -0
- cuda/cccl/headers/include/cuda/std/__ranges/from_range.h +36 -0
- cuda/cccl/headers/include/cuda/std/__ranges/iota_view.h +266 -0
- cuda/cccl/headers/include/cuda/std/__ranges/movable_box.h +410 -0
- cuda/cccl/headers/include/cuda/std/__ranges/owning_view.h +162 -0
- cuda/cccl/headers/include/cuda/std/__ranges/range_adaptor.h +110 -0
- cuda/cccl/headers/include/cuda/std/__ranges/rbegin.h +175 -0
- cuda/cccl/headers/include/cuda/std/__ranges/ref_view.h +121 -0
- cuda/cccl/headers/include/cuda/std/__ranges/rend.h +182 -0
- cuda/cccl/headers/include/cuda/std/__ranges/repeat_view.h +345 -0
- cuda/cccl/headers/include/cuda/std/__ranges/single_view.h +155 -0
- cuda/cccl/headers/include/cuda/std/__ranges/size.h +201 -0
- cuda/cccl/headers/include/cuda/std/__ranges/subrange.h +513 -0
- cuda/cccl/headers/include/cuda/std/__ranges/take_view.h +476 -0
- cuda/cccl/headers/include/cuda/std/__ranges/take_while_view.h +259 -0
- cuda/cccl/headers/include/cuda/std/__ranges/transform_view.h +522 -0
- cuda/cccl/headers/include/cuda/std/__ranges/unwrap_end.h +53 -0
- cuda/cccl/headers/include/cuda/std/__ranges/view_interface.h +183 -0
- cuda/cccl/headers/include/cuda/std/__ranges/views.h +38 -0
- cuda/cccl/headers/include/cuda/std/__semaphore/atomic_semaphore.h +234 -0
- cuda/cccl/headers/include/cuda/std/__semaphore/counting_semaphore.h +51 -0
- cuda/cccl/headers/include/cuda/std/__string/char_traits.h +191 -0
- cuda/cccl/headers/include/cuda/std/__string/constexpr_c_functions.h +581 -0
- cuda/cccl/headers/include/cuda/std/__string/helper_functions.h +296 -0
- cuda/cccl/headers/include/cuda/std/__string/string_view.h +244 -0
- cuda/cccl/headers/include/cuda/std/__string_ +29 -0
- cuda/cccl/headers/include/cuda/std/__system_error/errc.h +51 -0
- cuda/cccl/headers/include/cuda/std/__system_error_ +26 -0
- cuda/cccl/headers/include/cuda/std/__thread/threading_support.h +106 -0
- cuda/cccl/headers/include/cuda/std/__thread/threading_support_cuda.h +47 -0
- cuda/cccl/headers/include/cuda/std/__thread/threading_support_external.h +41 -0
- cuda/cccl/headers/include/cuda/std/__thread/threading_support_pthread.h +143 -0
- cuda/cccl/headers/include/cuda/std/__thread/threading_support_win32.h +87 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/ignore.h +51 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/make_tuple_types.h +120 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/sfinae_helpers.h +260 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/structured_bindings.h +212 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/tuple_element.h +70 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/tuple_indices.h +44 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/tuple_like.h +84 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/tuple_like_ext.h +68 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/tuple_size.h +79 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/tuple_types.h +35 -0
- cuda/cccl/headers/include/cuda/std/__tuple_dir/vector_types.h +290 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/add_const.h +40 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/add_cv.h +40 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/add_lvalue_reference.h +62 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/add_pointer.h +65 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/add_rvalue_reference.h +62 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/add_volatile.h +40 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/aligned_storage.h +149 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/aligned_union.h +62 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/alignment_of.h +41 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/always_false.h +35 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/can_extract_key.h +68 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/common_reference.h +262 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/common_type.h +173 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/conditional.h +65 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/conjunction.h +67 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/copy_cv.h +50 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/copy_cvref.h +148 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/decay.h +83 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/dependent_type.h +35 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/disjunction.h +77 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/enable_if.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/extent.h +68 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/fold.h +47 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/has_unique_object_representation.h +46 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/has_virtual_destructor.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/integral_constant.h +62 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_abstract.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_aggregate.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_allocator.h +46 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_arithmetic.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_array.h +62 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_assignable.h +78 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_base_of.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_bounded_array.h +44 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_callable.h +60 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_char_like_type.h +38 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_class.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_compound.h +58 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_const.h +56 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_constant_evaluated.h +51 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_constructible.h +174 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_convertible.h +211 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_copy_assignable.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_copy_constructible.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_core_convertible.h +47 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_corresponding_member.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_default_constructible.h +40 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_destructible.h +115 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_empty.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_enum.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_execution_policy.h +81 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_extended_arithmetic.h +38 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_extended_floating_point.h +79 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_final.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_floating_point.h +53 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_function.h +61 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_fundamental.h +56 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_implicitly_default_constructible.h +57 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_integer.h +45 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_integral.h +123 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_layout_compatible.h +45 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_literal_type.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_member_function_pointer.h +79 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_member_object_pointer.h +57 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_member_pointer.h +57 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_move_assignable.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_move_constructible.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_assignable.h +70 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_constructible.h +84 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_convertible.h +59 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_copy_assignable.h +60 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_copy_constructible.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_default_constructible.h +54 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_destructible.h +82 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_move_assignable.h +60 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_nothrow_move_constructible.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_null_pointer.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_object.h +57 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_one_of.h +37 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_pod.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_pointer.h +60 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_pointer_interconvertible_base_of.h +84 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_pointer_interconvertible_with_class.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_polymorphic.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_primary_template.h +121 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_reference.h +95 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_reference_wrapper.h +50 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_referenceable.h +55 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_same.h +88 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_scalar.h +60 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_scoped_enum.h +49 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_signed.h +65 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_signed_integer.h +59 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_standard_layout.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_swappable.h +202 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivial.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_assignable.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_constructible.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_copy_assignable.h +46 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_copy_constructible.h +45 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_copyable.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_default_constructible.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_destructible.h +58 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_move_assignable.h +45 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_trivially_move_constructible.h +44 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_unbounded_array.h +43 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_union.h +42 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_unsigned.h +66 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_unsigned_integer.h +59 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_valid_expansion.h +41 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_void.h +55 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/is_volatile.h +56 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/lazy.h +35 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/make_const_lvalue_ref.h +36 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/make_nbit_int.h +107 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/make_signed.h +140 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/make_unsigned.h +151 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/maybe_const.h +36 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/nat.h +39 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/negation.h +44 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/num_bits.h +122 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/promote.h +163 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/rank.h +60 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/reference_constructs_from_temporary.h +57 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/reference_converts_from_temporary.h +56 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_all_extents.h +66 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_const.h +59 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_const_ref.h +37 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_cv.h +57 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_cvref.h +57 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_extent.h +65 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_pointer.h +73 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_reference.h +72 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/remove_volatile.h +58 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/result_of.h +47 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/type_identity.h +40 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/type_list.h +1067 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/type_set.h +131 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/underlying_type.h +52 -0
- cuda/cccl/headers/include/cuda/std/__type_traits/void_t.h +34 -0
- cuda/cccl/headers/include/cuda/std/__utility/as_const.h +52 -0
- cuda/cccl/headers/include/cuda/std/__utility/auto_cast.h +34 -0
- cuda/cccl/headers/include/cuda/std/__utility/cmp.h +116 -0
- cuda/cccl/headers/include/cuda/std/__utility/convert_to_integral.h +101 -0
- cuda/cccl/headers/include/cuda/std/__utility/declval.h +76 -0
- cuda/cccl/headers/include/cuda/std/__utility/exception_guard.h +161 -0
- cuda/cccl/headers/include/cuda/std/__utility/exchange.h +46 -0
- cuda/cccl/headers/include/cuda/std/__utility/forward.h +59 -0
- cuda/cccl/headers/include/cuda/std/__utility/forward_like.h +55 -0
- cuda/cccl/headers/include/cuda/std/__utility/in_place.h +86 -0
- cuda/cccl/headers/include/cuda/std/__utility/integer_sequence.h +251 -0
- cuda/cccl/headers/include/cuda/std/__utility/monostate.h +99 -0
- cuda/cccl/headers/include/cuda/std/__utility/move.h +74 -0
- cuda/cccl/headers/include/cuda/std/__utility/pair.h +791 -0
- cuda/cccl/headers/include/cuda/std/__utility/piecewise_construct.h +37 -0
- cuda/cccl/headers/include/cuda/std/__utility/pod_tuple.h +527 -0
- cuda/cccl/headers/include/cuda/std/__utility/priority_tag.h +40 -0
- cuda/cccl/headers/include/cuda/std/__utility/rel_ops.h +63 -0
- cuda/cccl/headers/include/cuda/std/__utility/swap.h +64 -0
- cuda/cccl/headers/include/cuda/std/__utility/to_underlying.h +40 -0
- cuda/cccl/headers/include/cuda/std/__utility/typeid.h +421 -0
- cuda/cccl/headers/include/cuda/std/__utility/undefined.h +34 -0
- cuda/cccl/headers/include/cuda/std/__utility/unreachable.h +37 -0
- cuda/cccl/headers/include/cuda/std/array +518 -0
- cuda/cccl/headers/include/cuda/std/atomic +810 -0
- cuda/cccl/headers/include/cuda/std/barrier +42 -0
- cuda/cccl/headers/include/cuda/std/bit +35 -0
- cuda/cccl/headers/include/cuda/std/bitset +994 -0
- cuda/cccl/headers/include/cuda/std/cassert +28 -0
- cuda/cccl/headers/include/cuda/std/ccomplex +15 -0
- cuda/cccl/headers/include/cuda/std/cfloat +59 -0
- cuda/cccl/headers/include/cuda/std/chrono +26 -0
- cuda/cccl/headers/include/cuda/std/climits +61 -0
- cuda/cccl/headers/include/cuda/std/cmath +87 -0
- cuda/cccl/headers/include/cuda/std/complex +50 -0
- cuda/cccl/headers/include/cuda/std/concepts +48 -0
- cuda/cccl/headers/include/cuda/std/cstddef +28 -0
- cuda/cccl/headers/include/cuda/std/cstdint +178 -0
- cuda/cccl/headers/include/cuda/std/cstdlib +30 -0
- cuda/cccl/headers/include/cuda/std/cstring +110 -0
- cuda/cccl/headers/include/cuda/std/ctime +154 -0
- cuda/cccl/headers/include/cuda/std/detail/__config +45 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/__config +207 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/algorithm +1721 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/chrono +2509 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/iosfwd +128 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/stdexcept +120 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/tuple +1365 -0
- cuda/cccl/headers/include/cuda/std/detail/libcxx/include/variant +2144 -0
- cuda/cccl/headers/include/cuda/std/execution +29 -0
- cuda/cccl/headers/include/cuda/std/expected +30 -0
- cuda/cccl/headers/include/cuda/std/functional +56 -0
- cuda/cccl/headers/include/cuda/std/initializer_list +44 -0
- cuda/cccl/headers/include/cuda/std/inplace_vector +2170 -0
- cuda/cccl/headers/include/cuda/std/iterator +70 -0
- cuda/cccl/headers/include/cuda/std/latch +34 -0
- cuda/cccl/headers/include/cuda/std/limits +28 -0
- cuda/cccl/headers/include/cuda/std/linalg +30 -0
- cuda/cccl/headers/include/cuda/std/mdspan +38 -0
- cuda/cccl/headers/include/cuda/std/memory +39 -0
- cuda/cccl/headers/include/cuda/std/numbers +346 -0
- cuda/cccl/headers/include/cuda/std/numeric +41 -0
- cuda/cccl/headers/include/cuda/std/optional +31 -0
- cuda/cccl/headers/include/cuda/std/ranges +69 -0
- cuda/cccl/headers/include/cuda/std/ratio +416 -0
- cuda/cccl/headers/include/cuda/std/semaphore +31 -0
- cuda/cccl/headers/include/cuda/std/source_location +83 -0
- cuda/cccl/headers/include/cuda/std/span +628 -0
- cuda/cccl/headers/include/cuda/std/string_view +925 -0
- cuda/cccl/headers/include/cuda/std/tuple +26 -0
- cuda/cccl/headers/include/cuda/std/type_traits +177 -0
- cuda/cccl/headers/include/cuda/std/utility +70 -0
- cuda/cccl/headers/include/cuda/std/variant +25 -0
- cuda/cccl/headers/include/cuda/std/version +240 -0
- cuda/cccl/headers/include/cuda/stream +31 -0
- cuda/cccl/headers/include/cuda/stream_ref +59 -0
- cuda/cccl/headers/include/cuda/type_traits +27 -0
- cuda/cccl/headers/include/cuda/utility +28 -0
- cuda/cccl/headers/include/cuda/version +16 -0
- cuda/cccl/headers/include/cuda/warp +28 -0
- cuda/cccl/headers/include/cuda/work_stealing +26 -0
- cuda/cccl/headers/include/nv/detail/__preprocessor +169 -0
- cuda/cccl/headers/include/nv/detail/__target_macros +718 -0
- cuda/cccl/headers/include/nv/target +240 -0
- cuda/cccl/headers/include/thrust/addressof.h +22 -0
- cuda/cccl/headers/include/thrust/adjacent_difference.h +254 -0
- cuda/cccl/headers/include/thrust/advance.h +57 -0
- cuda/cccl/headers/include/thrust/allocate_unique.h +299 -0
- cuda/cccl/headers/include/thrust/binary_search.h +1910 -0
- cuda/cccl/headers/include/thrust/complex.h +858 -0
- cuda/cccl/headers/include/thrust/copy.h +506 -0
- cuda/cccl/headers/include/thrust/count.h +245 -0
- cuda/cccl/headers/include/thrust/detail/adjacent_difference.inl +95 -0
- cuda/cccl/headers/include/thrust/detail/alignment.h +81 -0
- cuda/cccl/headers/include/thrust/detail/allocator/allocator_traits.h +626 -0
- cuda/cccl/headers/include/thrust/detail/allocator/copy_construct_range.h +192 -0
- cuda/cccl/headers/include/thrust/detail/allocator/destroy_range.h +96 -0
- cuda/cccl/headers/include/thrust/detail/allocator/fill_construct_range.h +81 -0
- cuda/cccl/headers/include/thrust/detail/allocator/malloc_allocator.h +78 -0
- cuda/cccl/headers/include/thrust/detail/allocator/no_throw_allocator.h +76 -0
- cuda/cccl/headers/include/thrust/detail/allocator/tagged_allocator.h +115 -0
- cuda/cccl/headers/include/thrust/detail/allocator/temporary_allocator.h +116 -0
- cuda/cccl/headers/include/thrust/detail/allocator/value_initialize_range.h +77 -0
- cuda/cccl/headers/include/thrust/detail/allocator_aware_execution_policy.h +99 -0
- cuda/cccl/headers/include/thrust/detail/binary_search.inl +525 -0
- cuda/cccl/headers/include/thrust/detail/caching_allocator.h +47 -0
- cuda/cccl/headers/include/thrust/detail/complex/arithmetic.h +255 -0
- cuda/cccl/headers/include/thrust/detail/complex/c99math.h +64 -0
- cuda/cccl/headers/include/thrust/detail/complex/catrig.h +875 -0
- cuda/cccl/headers/include/thrust/detail/complex/catrigf.h +589 -0
- cuda/cccl/headers/include/thrust/detail/complex/ccosh.h +233 -0
- cuda/cccl/headers/include/thrust/detail/complex/ccoshf.h +161 -0
- cuda/cccl/headers/include/thrust/detail/complex/cexp.h +195 -0
- cuda/cccl/headers/include/thrust/detail/complex/cexpf.h +173 -0
- cuda/cccl/headers/include/thrust/detail/complex/clog.h +223 -0
- cuda/cccl/headers/include/thrust/detail/complex/clogf.h +210 -0
- cuda/cccl/headers/include/thrust/detail/complex/complex.inl +263 -0
- cuda/cccl/headers/include/thrust/detail/complex/cpow.h +50 -0
- cuda/cccl/headers/include/thrust/detail/complex/cproj.h +81 -0
- cuda/cccl/headers/include/thrust/detail/complex/csinh.h +228 -0
- cuda/cccl/headers/include/thrust/detail/complex/csinhf.h +168 -0
- cuda/cccl/headers/include/thrust/detail/complex/csqrt.h +178 -0
- cuda/cccl/headers/include/thrust/detail/complex/csqrtf.h +174 -0
- cuda/cccl/headers/include/thrust/detail/complex/ctanh.h +208 -0
- cuda/cccl/headers/include/thrust/detail/complex/ctanhf.h +133 -0
- cuda/cccl/headers/include/thrust/detail/complex/math_private.h +138 -0
- cuda/cccl/headers/include/thrust/detail/complex/stream.h +73 -0
- cuda/cccl/headers/include/thrust/detail/config/compiler.h +38 -0
- cuda/cccl/headers/include/thrust/detail/config/config.h +43 -0
- cuda/cccl/headers/include/thrust/detail/config/cpp_dialect.h +78 -0
- cuda/cccl/headers/include/thrust/detail/config/device_system.h +55 -0
- cuda/cccl/headers/include/thrust/detail/config/host_system.h +48 -0
- cuda/cccl/headers/include/thrust/detail/config/memory_resource.h +41 -0
- cuda/cccl/headers/include/thrust/detail/config/namespace.h +162 -0
- cuda/cccl/headers/include/thrust/detail/config/simple_defines.h +48 -0
- cuda/cccl/headers/include/thrust/detail/config.h +36 -0
- cuda/cccl/headers/include/thrust/detail/contiguous_storage.h +228 -0
- cuda/cccl/headers/include/thrust/detail/contiguous_storage.inl +273 -0
- cuda/cccl/headers/include/thrust/detail/copy.h +72 -0
- cuda/cccl/headers/include/thrust/detail/copy.inl +129 -0
- cuda/cccl/headers/include/thrust/detail/copy_if.h +62 -0
- cuda/cccl/headers/include/thrust/detail/copy_if.inl +102 -0
- cuda/cccl/headers/include/thrust/detail/count.h +55 -0
- cuda/cccl/headers/include/thrust/detail/count.inl +89 -0
- cuda/cccl/headers/include/thrust/detail/device_ptr.inl +48 -0
- cuda/cccl/headers/include/thrust/detail/equal.inl +93 -0
- cuda/cccl/headers/include/thrust/detail/event_error.h +160 -0
- cuda/cccl/headers/include/thrust/detail/execute_with_allocator.h +81 -0
- cuda/cccl/headers/include/thrust/detail/execute_with_allocator_fwd.h +61 -0
- cuda/cccl/headers/include/thrust/detail/execution_policy.h +120 -0
- cuda/cccl/headers/include/thrust/detail/extrema.inl +184 -0
- cuda/cccl/headers/include/thrust/detail/fill.inl +86 -0
- cuda/cccl/headers/include/thrust/detail/find.inl +113 -0
- cuda/cccl/headers/include/thrust/detail/for_each.inl +84 -0
- cuda/cccl/headers/include/thrust/detail/function.h +49 -0
- cuda/cccl/headers/include/thrust/detail/functional/actor.h +214 -0
- cuda/cccl/headers/include/thrust/detail/functional/operators.h +386 -0
- cuda/cccl/headers/include/thrust/detail/gather.inl +173 -0
- cuda/cccl/headers/include/thrust/detail/generate.inl +86 -0
- cuda/cccl/headers/include/thrust/detail/get_iterator_value.h +62 -0
- cuda/cccl/headers/include/thrust/detail/inner_product.inl +118 -0
- cuda/cccl/headers/include/thrust/detail/internal_functional.h +328 -0
- cuda/cccl/headers/include/thrust/detail/logical.inl +113 -0
- cuda/cccl/headers/include/thrust/detail/malloc_and_free.h +77 -0
- cuda/cccl/headers/include/thrust/detail/malloc_and_free_fwd.h +45 -0
- cuda/cccl/headers/include/thrust/detail/memory_algorithms.h +209 -0
- cuda/cccl/headers/include/thrust/detail/merge.inl +276 -0
- cuda/cccl/headers/include/thrust/detail/mismatch.inl +94 -0
- cuda/cccl/headers/include/thrust/detail/overlapped_copy.h +124 -0
- cuda/cccl/headers/include/thrust/detail/partition.inl +378 -0
- cuda/cccl/headers/include/thrust/detail/pointer.h +309 -0
- cuda/cccl/headers/include/thrust/detail/preprocessor.h +652 -0
- cuda/cccl/headers/include/thrust/detail/random_bijection.h +177 -0
- cuda/cccl/headers/include/thrust/detail/range/head_flags.h +116 -0
- cuda/cccl/headers/include/thrust/detail/range/tail_flags.h +130 -0
- cuda/cccl/headers/include/thrust/detail/raw_pointer_cast.h +52 -0
- cuda/cccl/headers/include/thrust/detail/raw_reference_cast.h +192 -0
- cuda/cccl/headers/include/thrust/detail/reduce.inl +377 -0
- cuda/cccl/headers/include/thrust/detail/reference.h +494 -0
- cuda/cccl/headers/include/thrust/detail/reference_forward_declaration.h +35 -0
- cuda/cccl/headers/include/thrust/detail/remove.inl +213 -0
- cuda/cccl/headers/include/thrust/detail/replace.inl +231 -0
- cuda/cccl/headers/include/thrust/detail/reverse.inl +88 -0
- cuda/cccl/headers/include/thrust/detail/scan.inl +518 -0
- cuda/cccl/headers/include/thrust/detail/scatter.inl +157 -0
- cuda/cccl/headers/include/thrust/detail/seq.h +66 -0
- cuda/cccl/headers/include/thrust/detail/sequence.inl +109 -0
- cuda/cccl/headers/include/thrust/detail/set_operations.inl +981 -0
- cuda/cccl/headers/include/thrust/detail/shuffle.inl +86 -0
- cuda/cccl/headers/include/thrust/detail/sort.inl +373 -0
- cuda/cccl/headers/include/thrust/detail/static_assert.h +58 -0
- cuda/cccl/headers/include/thrust/detail/static_map.h +167 -0
- cuda/cccl/headers/include/thrust/detail/swap_ranges.inl +65 -0
- cuda/cccl/headers/include/thrust/detail/tabulate.inl +62 -0
- cuda/cccl/headers/include/thrust/detail/temporary_array.h +153 -0
- cuda/cccl/headers/include/thrust/detail/temporary_array.inl +120 -0
- cuda/cccl/headers/include/thrust/detail/temporary_buffer.h +81 -0
- cuda/cccl/headers/include/thrust/detail/transform_reduce.inl +69 -0
- cuda/cccl/headers/include/thrust/detail/transform_scan.inl +161 -0
- cuda/cccl/headers/include/thrust/detail/trivial_sequence.h +130 -0
- cuda/cccl/headers/include/thrust/detail/tuple_meta_transform.h +61 -0
- cuda/cccl/headers/include/thrust/detail/type_deduction.h +62 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/has_member_function.h +47 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/has_nested_type.h +43 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/is_call_possible.h +167 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/is_commutative.h +69 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/is_metafunction_defined.h +39 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/is_thrust_pointer.h +59 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/iterator/is_output_iterator.h +46 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/minimum_type.h +89 -0
- cuda/cccl/headers/include/thrust/detail/type_traits/pointer_traits.h +332 -0
- cuda/cccl/headers/include/thrust/detail/type_traits.h +136 -0
- cuda/cccl/headers/include/thrust/detail/uninitialized_copy.inl +90 -0
- cuda/cccl/headers/include/thrust/detail/uninitialized_fill.inl +86 -0
- cuda/cccl/headers/include/thrust/detail/unique.inl +373 -0
- cuda/cccl/headers/include/thrust/detail/use_default.h +34 -0
- cuda/cccl/headers/include/thrust/detail/vector_base.h +613 -0
- cuda/cccl/headers/include/thrust/detail/vector_base.inl +1210 -0
- cuda/cccl/headers/include/thrust/device_allocator.h +134 -0
- cuda/cccl/headers/include/thrust/device_delete.h +74 -0
- cuda/cccl/headers/include/thrust/device_free.h +85 -0
- cuda/cccl/headers/include/thrust/device_make_unique.h +56 -0
- cuda/cccl/headers/include/thrust/device_malloc.h +84 -0
- cuda/cccl/headers/include/thrust/device_malloc_allocator.h +190 -0
- cuda/cccl/headers/include/thrust/device_new.h +112 -0
- cuda/cccl/headers/include/thrust/device_new_allocator.h +179 -0
- cuda/cccl/headers/include/thrust/device_ptr.h +196 -0
- cuda/cccl/headers/include/thrust/device_reference.h +983 -0
- cuda/cccl/headers/include/thrust/device_vector.h +576 -0
- cuda/cccl/headers/include/thrust/distance.h +43 -0
- cuda/cccl/headers/include/thrust/equal.h +247 -0
- cuda/cccl/headers/include/thrust/execution_policy.h +251 -0
- cuda/cccl/headers/include/thrust/extrema.h +657 -0
- cuda/cccl/headers/include/thrust/fill.h +200 -0
- cuda/cccl/headers/include/thrust/find.h +382 -0
- cuda/cccl/headers/include/thrust/for_each.h +261 -0
- cuda/cccl/headers/include/thrust/functional.h +395 -0
- cuda/cccl/headers/include/thrust/gather.h +464 -0
- cuda/cccl/headers/include/thrust/generate.h +193 -0
- cuda/cccl/headers/include/thrust/host_vector.h +576 -0
- cuda/cccl/headers/include/thrust/inner_product.h +264 -0
- cuda/cccl/headers/include/thrust/iterator/constant_iterator.h +221 -0
- cuda/cccl/headers/include/thrust/iterator/counting_iterator.h +335 -0
- cuda/cccl/headers/include/thrust/iterator/detail/any_assign.h +48 -0
- cuda/cccl/headers/include/thrust/iterator/detail/any_system_tag.h +43 -0
- cuda/cccl/headers/include/thrust/iterator/detail/device_system_tag.h +38 -0
- cuda/cccl/headers/include/thrust/iterator/detail/host_system_tag.h +38 -0
- cuda/cccl/headers/include/thrust/iterator/detail/iterator_adaptor_base.h +81 -0
- cuda/cccl/headers/include/thrust/iterator/detail/iterator_category_to_system.h +60 -0
- cuda/cccl/headers/include/thrust/iterator/detail/iterator_category_to_traversal.h +65 -0
- cuda/cccl/headers/include/thrust/iterator/detail/iterator_category_with_system_and_traversal.h +57 -0
- cuda/cccl/headers/include/thrust/iterator/detail/iterator_facade_category.h +182 -0
- cuda/cccl/headers/include/thrust/iterator/detail/minimum_system.h +58 -0
- cuda/cccl/headers/include/thrust/iterator/detail/normal_iterator.h +69 -0
- cuda/cccl/headers/include/thrust/iterator/detail/retag.h +104 -0
- cuda/cccl/headers/include/thrust/iterator/detail/tagged_iterator.h +81 -0
- cuda/cccl/headers/include/thrust/iterator/detail/tuple_of_iterator_references.h +174 -0
- cuda/cccl/headers/include/thrust/iterator/discard_iterator.h +163 -0
- cuda/cccl/headers/include/thrust/iterator/iterator_adaptor.h +251 -0
- cuda/cccl/headers/include/thrust/iterator/iterator_categories.h +211 -0
- cuda/cccl/headers/include/thrust/iterator/iterator_facade.h +659 -0
- cuda/cccl/headers/include/thrust/iterator/iterator_traits.h +334 -0
- cuda/cccl/headers/include/thrust/iterator/iterator_traversal_tags.h +64 -0
- cuda/cccl/headers/include/thrust/iterator/offset_iterator.h +194 -0
- cuda/cccl/headers/include/thrust/iterator/permutation_iterator.h +204 -0
- cuda/cccl/headers/include/thrust/iterator/retag.h +72 -0
- cuda/cccl/headers/include/thrust/iterator/reverse_iterator.h +51 -0
- cuda/cccl/headers/include/thrust/iterator/shuffle_iterator.h +185 -0
- cuda/cccl/headers/include/thrust/iterator/strided_iterator.h +152 -0
- cuda/cccl/headers/include/thrust/iterator/tabulate_output_iterator.h +152 -0
- cuda/cccl/headers/include/thrust/iterator/transform_input_output_iterator.h +226 -0
- cuda/cccl/headers/include/thrust/iterator/transform_iterator.h +351 -0
- cuda/cccl/headers/include/thrust/iterator/transform_output_iterator.h +190 -0
- cuda/cccl/headers/include/thrust/iterator/zip_iterator.h +359 -0
- cuda/cccl/headers/include/thrust/logical.h +290 -0
- cuda/cccl/headers/include/thrust/memory.h +299 -0
- cuda/cccl/headers/include/thrust/merge.h +725 -0
- cuda/cccl/headers/include/thrust/mismatch.h +261 -0
- cuda/cccl/headers/include/thrust/mr/allocator.h +229 -0
- cuda/cccl/headers/include/thrust/mr/device_memory_resource.h +41 -0
- cuda/cccl/headers/include/thrust/mr/disjoint_pool.h +528 -0
- cuda/cccl/headers/include/thrust/mr/disjoint_sync_pool.h +118 -0
- cuda/cccl/headers/include/thrust/mr/disjoint_tls_pool.h +67 -0
- cuda/cccl/headers/include/thrust/mr/fancy_pointer_resource.h +67 -0
- cuda/cccl/headers/include/thrust/mr/host_memory_resource.h +38 -0
- cuda/cccl/headers/include/thrust/mr/memory_resource.h +217 -0
- cuda/cccl/headers/include/thrust/mr/new.h +100 -0
- cuda/cccl/headers/include/thrust/mr/polymorphic_adaptor.h +63 -0
- cuda/cccl/headers/include/thrust/mr/pool.h +528 -0
- cuda/cccl/headers/include/thrust/mr/pool_options.h +174 -0
- cuda/cccl/headers/include/thrust/mr/sync_pool.h +114 -0
- cuda/cccl/headers/include/thrust/mr/tls_pool.h +64 -0
- cuda/cccl/headers/include/thrust/mr/universal_memory_resource.h +29 -0
- cuda/cccl/headers/include/thrust/mr/validator.h +56 -0
- cuda/cccl/headers/include/thrust/pair.h +99 -0
- cuda/cccl/headers/include/thrust/partition.h +1391 -0
- cuda/cccl/headers/include/thrust/per_device_resource.h +98 -0
- cuda/cccl/headers/include/thrust/random/detail/discard_block_engine.inl +184 -0
- cuda/cccl/headers/include/thrust/random/detail/linear_congruential_engine.inl +155 -0
- cuda/cccl/headers/include/thrust/random/detail/linear_congruential_engine_discard.h +104 -0
- cuda/cccl/headers/include/thrust/random/detail/linear_feedback_shift_engine.inl +151 -0
- cuda/cccl/headers/include/thrust/random/detail/linear_feedback_shift_engine_wordmask.h +53 -0
- cuda/cccl/headers/include/thrust/random/detail/mod.h +101 -0
- cuda/cccl/headers/include/thrust/random/detail/normal_distribution.inl +187 -0
- cuda/cccl/headers/include/thrust/random/detail/normal_distribution_base.h +160 -0
- cuda/cccl/headers/include/thrust/random/detail/random_core_access.h +63 -0
- cuda/cccl/headers/include/thrust/random/detail/subtract_with_carry_engine.inl +201 -0
- cuda/cccl/headers/include/thrust/random/detail/uniform_int_distribution.inl +198 -0
- cuda/cccl/headers/include/thrust/random/detail/uniform_real_distribution.inl +200 -0
- cuda/cccl/headers/include/thrust/random/detail/xor_combine_engine.inl +183 -0
- cuda/cccl/headers/include/thrust/random/detail/xor_combine_engine_max.h +187 -0
- cuda/cccl/headers/include/thrust/random/discard_block_engine.h +240 -0
- cuda/cccl/headers/include/thrust/random/linear_congruential_engine.h +289 -0
- cuda/cccl/headers/include/thrust/random/linear_feedback_shift_engine.h +217 -0
- cuda/cccl/headers/include/thrust/random/normal_distribution.h +257 -0
- cuda/cccl/headers/include/thrust/random/subtract_with_carry_engine.h +247 -0
- cuda/cccl/headers/include/thrust/random/uniform_int_distribution.h +261 -0
- cuda/cccl/headers/include/thrust/random/uniform_real_distribution.h +258 -0
- cuda/cccl/headers/include/thrust/random/xor_combine_engine.h +255 -0
- cuda/cccl/headers/include/thrust/random.h +120 -0
- cuda/cccl/headers/include/thrust/reduce.h +1113 -0
- cuda/cccl/headers/include/thrust/remove.h +768 -0
- cuda/cccl/headers/include/thrust/replace.h +826 -0
- cuda/cccl/headers/include/thrust/reverse.h +215 -0
- cuda/cccl/headers/include/thrust/scan.h +1671 -0
- cuda/cccl/headers/include/thrust/scatter.h +446 -0
- cuda/cccl/headers/include/thrust/sequence.h +277 -0
- cuda/cccl/headers/include/thrust/set_operations.h +3026 -0
- cuda/cccl/headers/include/thrust/shuffle.h +182 -0
- cuda/cccl/headers/include/thrust/sort.h +1320 -0
- cuda/cccl/headers/include/thrust/swap.h +147 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/adjacent_difference.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/assign_value.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/binary_search.h +32 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/copy.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/copy_if.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/count.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/equal.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/execution_policy.h +109 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/extrema.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/fill.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/find.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/for_each.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/gather.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/generate.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/get_value.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/inner_product.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/iter_swap.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/logical.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/malloc_and_free.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/memory.inl +60 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/merge.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/mismatch.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/partition.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/per_device_resource.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/reduce.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/reduce_by_key.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/remove.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/replace.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/reverse.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/scan.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/scan_by_key.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/scatter.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/sequence.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/set_operations.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/sort.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/swap_ranges.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/tabulate.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/temporary_buffer.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/transform.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/transform_reduce.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/transform_scan.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/uninitialized_copy.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/uninitialized_fill.h +29 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/unique.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/detail/unique_by_key.h +30 -0
- cuda/cccl/headers/include/thrust/system/cpp/execution_policy.h +63 -0
- cuda/cccl/headers/include/thrust/system/cpp/memory.h +106 -0
- cuda/cccl/headers/include/thrust/system/cpp/memory_resource.h +72 -0
- cuda/cccl/headers/include/thrust/system/cpp/pointer.h +120 -0
- cuda/cccl/headers/include/thrust/system/cpp/vector.h +96 -0
- cuda/cccl/headers/include/thrust/system/cuda/config.h +126 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/adjacent_difference.h +219 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/assign_value.h +124 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/binary_search.h +29 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/cdp_dispatch.h +72 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/copy.h +273 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/copy_if.h +255 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/core/agent_launcher.h +289 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/core/triple_chevron_launch.h +191 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/core/util.h +593 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/count.h +75 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/cross_system.h +243 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/dispatch.h +233 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/equal.h +64 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/error.inl +96 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/execution_policy.h +264 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/extrema.h +476 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/fill.h +100 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/find.h +170 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/for_each.h +83 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/gather.h +91 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/generate.h +60 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/get_value.h +65 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/inner_product.h +75 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/iter_swap.h +80 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/logical.h +29 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/make_unsigned_special.h +61 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/malloc_and_free.h +121 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/memory.inl +57 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/merge.h +228 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/mismatch.h +223 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/parallel_for.h +81 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/partition.h +405 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/per_device_resource.h +72 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/reduce.h +785 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/reduce_by_key.h +1001 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/remove.h +107 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/replace.h +122 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/reverse.h +87 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/scan.h +341 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/scan_by_key.h +414 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/scatter.h +91 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/sequence.h +29 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/set_operations.h +1734 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/sort.h +469 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/swap_ranges.h +98 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/tabulate.h +61 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/temporary_buffer.h +132 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/terminate.h +53 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/transform.h +429 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/transform_reduce.h +143 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/transform_scan.h +119 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/uninitialized_copy.h +117 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/uninitialized_fill.h +105 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/unique.h +289 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/unique_by_key.h +310 -0
- cuda/cccl/headers/include/thrust/system/cuda/detail/util.h +253 -0
- cuda/cccl/headers/include/thrust/system/cuda/error.h +168 -0
- cuda/cccl/headers/include/thrust/system/cuda/execution_policy.h +15 -0
- cuda/cccl/headers/include/thrust/system/cuda/memory.h +122 -0
- cuda/cccl/headers/include/thrust/system/cuda/memory_resource.h +122 -0
- cuda/cccl/headers/include/thrust/system/cuda/pointer.h +160 -0
- cuda/cccl/headers/include/thrust/system/cuda/vector.h +108 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/adjacent_difference.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/assign_value.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/binary_search.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/copy.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/copy_if.h +52 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/count.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/equal.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/extrema.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/fill.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/find.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/for_each.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/gather.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/generate.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/get_value.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/inner_product.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/iter_swap.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/logical.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/malloc_and_free.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/merge.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/mismatch.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/partition.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/per_device_resource.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/reduce.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/reduce_by_key.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/remove.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/replace.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/reverse.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/scan.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/scan_by_key.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/scatter.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/sequence.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/set_operations.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/sort.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/swap_ranges.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/tabulate.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/temporary_buffer.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/transform.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/transform_reduce.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/transform_scan.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/uninitialized_copy.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/uninitialized_fill.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/unique.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/adl/unique_by_key.h +51 -0
- cuda/cccl/headers/include/thrust/system/detail/bad_alloc.h +61 -0
- cuda/cccl/headers/include/thrust/system/detail/errno.h +120 -0
- cuda/cccl/headers/include/thrust/system/detail/error_category.inl +302 -0
- cuda/cccl/headers/include/thrust/system/detail/error_code.inl +173 -0
- cuda/cccl/headers/include/thrust/system/detail/error_condition.inl +121 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/adjacent_difference.h +53 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/adjacent_difference.inl +79 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/binary_search.h +161 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/binary_search.inl +384 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/copy.h +45 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/copy.inl +64 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/copy_if.h +58 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/copy_if.inl +146 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/count.h +48 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/count.inl +84 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/equal.h +49 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/equal.inl +60 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/extrema.h +66 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/extrema.inl +252 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/fill.h +54 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/find.h +49 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/find.inl +137 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/for_each.h +58 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/gather.h +73 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/gather.inl +96 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/generate.h +45 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/generate.inl +63 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/inner_product.h +60 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/inner_product.inl +72 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/logical.h +59 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/memory.h +64 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/memory.inl +86 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/merge.h +99 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/merge.inl +148 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/mismatch.h +49 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/mismatch.inl +68 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/partition.h +129 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/partition.inl +207 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/per_device_resource.h +43 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/reduce.h +71 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/reduce.inl +100 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/reduce_by_key.h +83 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/reduce_by_key.inl +186 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/remove.h +86 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/remove.inl +121 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/replace.h +95 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/replace.inl +175 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/reverse.h +48 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/reverse.inl +67 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/scalar/binary_search.h +63 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/scalar/binary_search.inl +126 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/scan.h +72 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/scan.inl +85 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/scan_by_key.h +126 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/scan_by_key.inl +232 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/scatter.h +73 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/scatter.inl +85 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/select_system.h +104 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/sequence.h +70 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/set_operations.h +282 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/set_operations.inl +476 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/shuffle.h +54 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/shuffle.inl +125 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/sort.h +113 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/sort.inl +175 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/swap_ranges.h +44 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/swap_ranges.inl +76 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/tabulate.h +41 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/tabulate.inl +54 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/tag.h +47 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/temporary_buffer.h +54 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/temporary_buffer.inl +82 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/transform.h +395 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/transform_reduce.h +50 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/transform_reduce.inl +56 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/transform_scan.h +80 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/transform_scan.inl +113 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/uninitialized_copy.h +45 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/uninitialized_copy.inl +166 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/uninitialized_fill.h +45 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/uninitialized_fill.inl +115 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/unique.h +71 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/unique.inl +113 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/unique_by_key.h +81 -0
- cuda/cccl/headers/include/thrust/system/detail/generic/unique_by_key.inl +126 -0
- cuda/cccl/headers/include/thrust/system/detail/internal/decompose.h +117 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/adjacent_difference.h +70 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/assign_value.h +42 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/binary_search.h +136 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/copy.h +49 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/copy.inl +119 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/copy_backward.h +49 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/copy_if.h +71 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/count.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/equal.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/execution_policy.h +52 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/extrema.h +110 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/fill.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/find.h +62 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/for_each.h +74 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/gather.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/general_copy.h +123 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/generate.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/get_value.h +43 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/inner_product.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/insertion_sort.h +141 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/iter_swap.h +45 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/logical.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/malloc_and_free.h +50 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/merge.h +75 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/merge.inl +145 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/mismatch.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/partition.h +301 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/per_device_resource.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/reduce.h +64 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/reduce_by_key.h +98 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/remove.h +179 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/replace.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/reverse.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/scan.h +154 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/scan_by_key.h +145 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/scatter.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/sequence.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/set_operations.h +206 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/sort.h +59 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/sort.inl +116 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/stable_merge_sort.h +55 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/stable_merge_sort.inl +356 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/stable_primitive_sort.h +48 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/stable_primitive_sort.inl +124 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/stable_radix_sort.h +48 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/stable_radix_sort.inl +586 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/swap_ranges.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/tabulate.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/temporary_buffer.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/transform.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/transform_reduce.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/transform_scan.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/trivial_copy.h +58 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/uninitialized_copy.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/uninitialized_fill.h +29 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/unique.h +115 -0
- cuda/cccl/headers/include/thrust/system/detail/sequential/unique_by_key.h +106 -0
- cuda/cccl/headers/include/thrust/system/detail/system_error.inl +108 -0
- cuda/cccl/headers/include/thrust/system/error_code.h +512 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/adjacent_difference.h +54 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/assign_value.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/binary_search.h +77 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/copy.h +50 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/copy.inl +74 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/copy_if.h +56 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/copy_if.inl +59 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/count.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/default_decomposition.h +50 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/default_decomposition.inl +65 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/equal.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/execution_policy.h +127 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/extrema.h +66 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/fill.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/find.h +53 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/for_each.h +56 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/for_each.inl +87 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/gather.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/generate.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/get_value.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/inner_product.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/iter_swap.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/logical.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/malloc_and_free.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/memory.inl +93 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/merge.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/mismatch.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/partition.h +88 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/partition.inl +102 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/per_device_resource.h +29 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/pragma_omp.h +54 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/reduce.h +54 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/reduce.inl +78 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/reduce_by_key.h +64 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/reduce_by_key.inl +65 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/reduce_intervals.h +59 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/reduce_intervals.inl +103 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/remove.h +72 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/remove.inl +87 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/replace.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/reverse.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/scan.h +73 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/scan.inl +172 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/scan_by_key.h +36 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/scatter.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/sequence.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/set_operations.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/sort.h +60 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/sort.inl +265 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/swap_ranges.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/tabulate.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/temporary_buffer.h +29 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/transform.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/transform_reduce.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/transform_scan.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/uninitialized_copy.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/uninitialized_fill.h +30 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/unique.h +60 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/unique.inl +71 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/unique_by_key.h +67 -0
- cuda/cccl/headers/include/thrust/system/omp/detail/unique_by_key.inl +75 -0
- cuda/cccl/headers/include/thrust/system/omp/execution_policy.h +62 -0
- cuda/cccl/headers/include/thrust/system/omp/memory.h +111 -0
- cuda/cccl/headers/include/thrust/system/omp/memory_resource.h +75 -0
- cuda/cccl/headers/include/thrust/system/omp/pointer.h +124 -0
- cuda/cccl/headers/include/thrust/system/omp/vector.h +99 -0
- cuda/cccl/headers/include/thrust/system/system_error.h +185 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/adjacent_difference.h +54 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/assign_value.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/binary_search.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/copy.h +50 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/copy.inl +73 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/copy_if.h +47 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/copy_if.inl +136 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/count.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/equal.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/execution_policy.h +109 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/extrema.h +66 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/fill.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/find.h +49 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/for_each.h +51 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/for_each.inl +91 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/gather.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/generate.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/get_value.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/inner_product.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/iter_swap.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/logical.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/malloc_and_free.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/memory.inl +94 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/merge.h +77 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/merge.inl +327 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/mismatch.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/partition.h +84 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/partition.inl +98 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/per_device_resource.h +29 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/reduce.h +54 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/reduce.inl +137 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/reduce_by_key.h +61 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/reduce_by_key.inl +400 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/reduce_intervals.h +140 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/remove.h +76 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/remove.inl +87 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/replace.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/reverse.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/scan.h +59 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/scan.inl +312 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/scan_by_key.h +33 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/scatter.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/sequence.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/set_operations.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/sort.h +60 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/sort.inl +295 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/swap_ranges.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/tabulate.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/temporary_buffer.h +29 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/transform.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/transform_reduce.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/transform_scan.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/uninitialized_copy.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/uninitialized_fill.h +30 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/unique.h +60 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/unique.inl +71 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/unique_by_key.h +67 -0
- cuda/cccl/headers/include/thrust/system/tbb/detail/unique_by_key.inl +75 -0
- cuda/cccl/headers/include/thrust/system/tbb/execution_policy.h +62 -0
- cuda/cccl/headers/include/thrust/system/tbb/memory.h +111 -0
- cuda/cccl/headers/include/thrust/system/tbb/memory_resource.h +75 -0
- cuda/cccl/headers/include/thrust/system/tbb/pointer.h +124 -0
- cuda/cccl/headers/include/thrust/system/tbb/vector.h +99 -0
- cuda/cccl/headers/include/thrust/system_error.h +57 -0
- cuda/cccl/headers/include/thrust/tabulate.h +125 -0
- cuda/cccl/headers/include/thrust/transform.h +1045 -0
- cuda/cccl/headers/include/thrust/transform_reduce.h +190 -0
- cuda/cccl/headers/include/thrust/transform_scan.h +442 -0
- cuda/cccl/headers/include/thrust/tuple.h +139 -0
- cuda/cccl/headers/include/thrust/type_traits/integer_sequence.h +261 -0
- cuda/cccl/headers/include/thrust/type_traits/is_contiguous_iterator.h +154 -0
- cuda/cccl/headers/include/thrust/type_traits/is_execution_policy.h +65 -0
- cuda/cccl/headers/include/thrust/type_traits/is_operator_less_or_greater_function_object.h +184 -0
- cuda/cccl/headers/include/thrust/type_traits/is_operator_plus_function_object.h +116 -0
- cuda/cccl/headers/include/thrust/type_traits/is_trivially_relocatable.h +336 -0
- cuda/cccl/headers/include/thrust/type_traits/logical_metafunctions.h +42 -0
- cuda/cccl/headers/include/thrust/type_traits/unwrap_contiguous_iterator.h +63 -0
- cuda/cccl/headers/include/thrust/uninitialized_copy.h +300 -0
- cuda/cccl/headers/include/thrust/uninitialized_fill.h +268 -0
- cuda/cccl/headers/include/thrust/unique.h +1088 -0
- cuda/cccl/headers/include/thrust/universal_allocator.h +93 -0
- cuda/cccl/headers/include/thrust/universal_ptr.h +34 -0
- cuda/cccl/headers/include/thrust/universal_vector.h +71 -0
- cuda/cccl/headers/include/thrust/version.h +93 -0
- cuda/cccl/headers/include/thrust/zip_function.h +176 -0
- cuda/cccl/headers/include_paths.py +51 -0
- cuda/cccl/parallel/__init__.py +9 -0
- cuda/cccl/parallel/experimental/__init__.py +24 -0
- cuda/cccl/py.typed +0 -0
- cuda/compute/__init__.py +79 -0
- cuda/compute/_bindings.py +79 -0
- cuda/compute/_bindings.pyi +475 -0
- cuda/compute/_bindings_impl.pyx +2273 -0
- cuda/compute/_caching.py +71 -0
- cuda/compute/_cccl_interop.py +422 -0
- cuda/compute/_utils/__init__.py +0 -0
- cuda/compute/_utils/protocols.py +132 -0
- cuda/compute/_utils/temp_storage_buffer.py +86 -0
- cuda/compute/algorithms/__init__.py +54 -0
- cuda/compute/algorithms/_histogram.py +243 -0
- cuda/compute/algorithms/_merge_sort.py +225 -0
- cuda/compute/algorithms/_radix_sort.py +312 -0
- cuda/compute/algorithms/_reduce.py +182 -0
- cuda/compute/algorithms/_scan.py +331 -0
- cuda/compute/algorithms/_segmented_reduce.py +257 -0
- cuda/compute/algorithms/_three_way_partition.py +261 -0
- cuda/compute/algorithms/_transform.py +329 -0
- cuda/compute/algorithms/_unique_by_key.py +252 -0
- cuda/compute/cccl/.gitkeep +0 -0
- cuda/compute/cu12/_bindings_impl.cp313-win_amd64.pyd +0 -0
- cuda/compute/cu12/cccl/cccl.c.parallel.dll +0 -0
- cuda/compute/cu12/cccl/cccl.c.parallel.lib +0 -0
- cuda/compute/cu13/_bindings_impl.cp313-win_amd64.pyd +0 -0
- cuda/compute/cu13/cccl/cccl.c.parallel.dll +0 -0
- cuda/compute/cu13/cccl/cccl.c.parallel.lib +0 -0
- cuda/compute/iterators/__init__.py +21 -0
- cuda/compute/iterators/_factories.py +219 -0
- cuda/compute/iterators/_iterators.py +817 -0
- cuda/compute/iterators/_zip_iterator.py +199 -0
- cuda/compute/numba_utils.py +53 -0
- cuda/compute/op.py +3 -0
- cuda/compute/struct.py +272 -0
- cuda/compute/typing.py +37 -0
- cuda/coop/__init__.py +8 -0
- cuda/coop/_caching.py +48 -0
- cuda/coop/_common.py +275 -0
- cuda/coop/_nvrtc.py +92 -0
- cuda/coop/_scan_op.py +181 -0
- cuda/coop/_types.py +937 -0
- cuda/coop/_typing.py +107 -0
- cuda/coop/block/__init__.py +39 -0
- cuda/coop/block/_block_exchange.py +251 -0
- cuda/coop/block/_block_load_store.py +215 -0
- cuda/coop/block/_block_merge_sort.py +125 -0
- cuda/coop/block/_block_radix_sort.py +214 -0
- cuda/coop/block/_block_reduce.py +294 -0
- cuda/coop/block/_block_scan.py +983 -0
- cuda/coop/warp/__init__.py +9 -0
- cuda/coop/warp/_warp_merge_sort.py +92 -0
- cuda/coop/warp/_warp_reduce.py +153 -0
- cuda/coop/warp/_warp_scan.py +78 -0
- cuda_cccl-0.3.3.dist-info/METADATA +41 -0
- cuda_cccl-0.3.3.dist-info/RECORD +1968 -0
- cuda_cccl-0.3.3.dist-info/WHEEL +5 -0
- cuda_cccl-0.3.3.dist-info/licenses/LICENSE +1 -0
|
@@ -0,0 +1,1391 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2008-2013 NVIDIA Corporation
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/*! \file partition.h
|
|
18
|
+
* \brief Reorganizes a range based on a predicate
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
#pragma once
|
|
22
|
+
|
|
23
|
+
#include <thrust/detail/config.h>
|
|
24
|
+
|
|
25
|
+
#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
|
|
26
|
+
# pragma GCC system_header
|
|
27
|
+
#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
|
|
28
|
+
# pragma clang system_header
|
|
29
|
+
#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
|
|
30
|
+
# pragma system_header
|
|
31
|
+
#endif // no system header
|
|
32
|
+
#include <thrust/detail/execution_policy.h>
|
|
33
|
+
#include <thrust/pair.h>
|
|
34
|
+
|
|
35
|
+
THRUST_NAMESPACE_BEGIN
|
|
36
|
+
|
|
37
|
+
/*! \addtogroup reordering
|
|
38
|
+
* \ingroup algorithms
|
|
39
|
+
* \{
|
|
40
|
+
*
|
|
41
|
+
* \addtogroup partitioning
|
|
42
|
+
* \ingroup reordering
|
|
43
|
+
* \{
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
/*! \p partition reorders the elements <tt>[first, last)</tt> based on the function
|
|
47
|
+
* object \p pred, such that all of the elements that satisfy \p pred precede the
|
|
48
|
+
* elements that fail to satisfy it. The postcondition is that, for some iterator
|
|
49
|
+
* \c middle in the range <tt>[first, last)</tt>, <tt>pred(*i)</tt> is \c true for every
|
|
50
|
+
* iterator \c i in the range <tt>[first,middle)</tt> and \c false for every iterator
|
|
51
|
+
* \c i in the range <tt>[middle, last)</tt>. The return value of \p partition is
|
|
52
|
+
* \c middle.
|
|
53
|
+
*
|
|
54
|
+
* Note that the relative order of elements in the two reordered sequences is not
|
|
55
|
+
* necessarily the same as it was in the original sequence. A different algorithm,
|
|
56
|
+
* \p stable_partition, does guarantee to preserve the relative order.
|
|
57
|
+
*
|
|
58
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
59
|
+
*
|
|
60
|
+
* \param exec The execution policy to use for parallelization.
|
|
61
|
+
* \param first The beginning of the sequence to reorder.
|
|
62
|
+
* \param last The end of the sequence to reorder.
|
|
63
|
+
* \param pred A function object which decides to which partition each element of the
|
|
64
|
+
* sequence <tt>[first, last)</tt> belongs.
|
|
65
|
+
* \return An iterator referring to the first element of the second partition, that is,
|
|
66
|
+
* the sequence of the elements which do not satisfy \p pred.
|
|
67
|
+
*
|
|
68
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
69
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
70
|
+
* Iterator</a>, and \p ForwardIterator's \c value_type is convertible to \p Predicate's argument type, and \p
|
|
71
|
+
* ForwardIterator is mutable. \tparam Predicate is a model of <a
|
|
72
|
+
* href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
73
|
+
*
|
|
74
|
+
* The following code snippet demonstrates how to use \p partition to reorder a
|
|
75
|
+
* sequence so that even numbers precede odd numbers using the \p thrust::host execution policy for parallelization:
|
|
76
|
+
*
|
|
77
|
+
* \code
|
|
78
|
+
* #include <thrust/partition.h>
|
|
79
|
+
* #include <thrust/execution_policy.h>
|
|
80
|
+
* ...
|
|
81
|
+
* struct is_even
|
|
82
|
+
* {
|
|
83
|
+
* __host__ __device__
|
|
84
|
+
* bool operator()(const int &x)
|
|
85
|
+
* {
|
|
86
|
+
* return (x % 2) == 0;
|
|
87
|
+
* }
|
|
88
|
+
* };
|
|
89
|
+
* ...
|
|
90
|
+
* int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
91
|
+
* const int N = sizeof(A)/sizeof(int);
|
|
92
|
+
* thrust::partition(thrust::host,
|
|
93
|
+
* A, A + N,
|
|
94
|
+
* is_even());
|
|
95
|
+
* // A is now {2, 4, 6, 8, 10, 1, 3, 5, 7, 9}
|
|
96
|
+
* \endcode
|
|
97
|
+
*
|
|
98
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/partition
|
|
99
|
+
* \see \p stable_partition
|
|
100
|
+
* \see \p partition_copy
|
|
101
|
+
*/
|
|
102
|
+
template <typename DerivedPolicy, typename ForwardIterator, typename Predicate>
|
|
103
|
+
_CCCL_HOST_DEVICE ForwardIterator partition(
|
|
104
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
105
|
+
ForwardIterator first,
|
|
106
|
+
ForwardIterator last,
|
|
107
|
+
Predicate pred);
|
|
108
|
+
|
|
109
|
+
/*! \p partition reorders the elements <tt>[first, last)</tt> based on the function
|
|
110
|
+
* object \p pred, such that all of the elements that satisfy \p pred precede the
|
|
111
|
+
* elements that fail to satisfy it. The postcondition is that, for some iterator
|
|
112
|
+
* \c middle in the range <tt>[first, last)</tt>, <tt>pred(*i)</tt> is \c true for every
|
|
113
|
+
* iterator \c i in the range <tt>[first,middle)</tt> and \c false for every iterator
|
|
114
|
+
* \c i in the range <tt>[middle, last)</tt>. The return value of \p partition is
|
|
115
|
+
* \c middle.
|
|
116
|
+
*
|
|
117
|
+
* Note that the relative order of elements in the two reordered sequences is not
|
|
118
|
+
* necessarily the same as it was in the original sequence. A different algorithm,
|
|
119
|
+
* \p stable_partition, does guarantee to preserve the relative order.
|
|
120
|
+
*
|
|
121
|
+
* \param first The beginning of the sequence to reorder.
|
|
122
|
+
* \param last The end of the sequence to reorder.
|
|
123
|
+
* \param pred A function object which decides to which partition each element of the
|
|
124
|
+
* sequence <tt>[first, last)</tt> belongs.
|
|
125
|
+
* \return An iterator referring to the first element of the second partition, that is,
|
|
126
|
+
* the sequence of the elements which do not satisfy \p pred.
|
|
127
|
+
*
|
|
128
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
129
|
+
* Iterator</a>, and \p ForwardIterator's \c value_type is convertible to \p Predicate's argument type, and \p
|
|
130
|
+
* ForwardIterator is mutable. \tparam Predicate is a model of <a
|
|
131
|
+
* href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
132
|
+
*
|
|
133
|
+
* The following code snippet demonstrates how to use \p partition to reorder a
|
|
134
|
+
* sequence so that even numbers precede odd numbers.
|
|
135
|
+
*
|
|
136
|
+
* \code
|
|
137
|
+
* #include <thrust/partition.h>
|
|
138
|
+
* ...
|
|
139
|
+
* struct is_even
|
|
140
|
+
* {
|
|
141
|
+
* __host__ __device__
|
|
142
|
+
* bool operator()(const int &x)
|
|
143
|
+
* {
|
|
144
|
+
* return (x % 2) == 0;
|
|
145
|
+
* }
|
|
146
|
+
* };
|
|
147
|
+
* ...
|
|
148
|
+
* int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
149
|
+
* const int N = sizeof(A)/sizeof(int);
|
|
150
|
+
* thrust::partition(A, A + N,
|
|
151
|
+
* is_even());
|
|
152
|
+
* // A is now {2, 4, 6, 8, 10, 1, 3, 5, 7, 9}
|
|
153
|
+
* \endcode
|
|
154
|
+
*
|
|
155
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/partition
|
|
156
|
+
* \see \p stable_partition
|
|
157
|
+
* \see \p partition_copy
|
|
158
|
+
*/
|
|
159
|
+
template <typename ForwardIterator, typename Predicate>
|
|
160
|
+
ForwardIterator partition(ForwardIterator first, ForwardIterator last, Predicate pred);
|
|
161
|
+
|
|
162
|
+
/*! \p partition reorders the elements <tt>[first, last)</tt> based on the function
|
|
163
|
+
* object \p pred applied to a stencil range <tt>[stencil, stencil + (last - first))</tt>,
|
|
164
|
+
* such that all of the elements whose corresponding stencil element satisfies \p pred precede all of the elements
|
|
165
|
+
* whose corresponding stencil element fails to satisfy it. The postcondition is that, for some iterator \c middle in
|
|
166
|
+
* the range <tt>[first, last)</tt>, <tt>pred(*stencil_i)</tt> is \c true for every iterator \c stencil_i in the range
|
|
167
|
+
* <tt>[stencil,stencil + (middle - first))</tt> and \c false for every iterator \c stencil_i in the range
|
|
168
|
+
* <tt>[stencil + (middle - first), stencil + (last - first))</tt>.
|
|
169
|
+
* The return value of \p stable_partition is \c middle.
|
|
170
|
+
*
|
|
171
|
+
* Note that the relative order of elements in the two reordered sequences is not
|
|
172
|
+
* necessarily the same as it was in the original sequence. A different algorithm,
|
|
173
|
+
* \p stable_partition, does guarantee to preserve the relative order.
|
|
174
|
+
*
|
|
175
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
176
|
+
*
|
|
177
|
+
* \param exec The execution policy to use for parallelization.
|
|
178
|
+
* \param first The beginning of the sequence to reorder.
|
|
179
|
+
* \param last The end of the sequence to reorder.
|
|
180
|
+
* \param stencil The beginning of the stencil sequence.
|
|
181
|
+
* \param pred A function object which decides to which partition each element of the
|
|
182
|
+
* sequence <tt>[first, last)</tt> belongs.
|
|
183
|
+
* \return An iterator referring to the first element of the second partition, that is,
|
|
184
|
+
* the sequence of the elements whose stencil elements do not satisfy \p pred.
|
|
185
|
+
*
|
|
186
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
187
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
188
|
+
* Iterator</a>, and \p ForwardIterator is mutable. \tparam InputIterator is a model of <a
|
|
189
|
+
* href="https://en.cppreference.com/w/cpp/iterator/input_iterator">Input Iterator</a>, and \p InputIterator's \c
|
|
190
|
+
* value_type is convertible to \p Predicate's argument type. \tparam Predicate is a model of <a
|
|
191
|
+
* href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
192
|
+
*
|
|
193
|
+
* \pre The ranges <tt>[first,last)</tt> and <tt>[stencil, stencil + (last - first))</tt> shall not overlap.
|
|
194
|
+
*
|
|
195
|
+
* The following code snippet demonstrates how to use \p partition to reorder a
|
|
196
|
+
* sequence so that even numbers precede odd numbers using the \p thrust::host execution policy for parallelization:
|
|
197
|
+
*
|
|
198
|
+
* \code
|
|
199
|
+
* #include <thrust/partition.h>
|
|
200
|
+
* #include <thrust/execution_policy.h>
|
|
201
|
+
* ...
|
|
202
|
+
* struct is_even
|
|
203
|
+
* {
|
|
204
|
+
* __host__ __device__
|
|
205
|
+
* bool operator()(const int &x)
|
|
206
|
+
* {
|
|
207
|
+
* return (x % 2) == 0;
|
|
208
|
+
* }
|
|
209
|
+
* };
|
|
210
|
+
* ...
|
|
211
|
+
* int A[] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1};
|
|
212
|
+
* int S[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
213
|
+
* const int N = sizeof(A)/sizeof(int);
|
|
214
|
+
* thrust::partition(thrust::host, A, A + N, S, is_even());
|
|
215
|
+
* // A is now {1, 1, 1, 1, 1, 0, 0, 0, 0, 0}
|
|
216
|
+
* // S is unmodified
|
|
217
|
+
* \endcode
|
|
218
|
+
*
|
|
219
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/partition
|
|
220
|
+
* \see \p stable_partition
|
|
221
|
+
* \see \p partition_copy
|
|
222
|
+
*/
|
|
223
|
+
template <typename DerivedPolicy, typename ForwardIterator, typename InputIterator, typename Predicate>
|
|
224
|
+
_CCCL_HOST_DEVICE ForwardIterator partition(
|
|
225
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
226
|
+
ForwardIterator first,
|
|
227
|
+
ForwardIterator last,
|
|
228
|
+
InputIterator stencil,
|
|
229
|
+
Predicate pred);
|
|
230
|
+
|
|
231
|
+
/*! \p partition reorders the elements <tt>[first, last)</tt> based on the function
|
|
232
|
+
* object \p pred applied to a stencil range <tt>[stencil, stencil + (last - first))</tt>,
|
|
233
|
+
* such that all of the elements whose corresponding stencil element satisfies \p pred precede all of the elements
|
|
234
|
+
* whose corresponding stencil element fails to satisfy it. The postcondition is that, for some iterator \c middle in
|
|
235
|
+
* the range <tt>[first, last)</tt>, <tt>pred(*stencil_i)</tt> is \c true for every iterator \c stencil_i in the range
|
|
236
|
+
* <tt>[stencil,stencil + (middle - first))</tt> and \c false for every iterator \c stencil_i in the range
|
|
237
|
+
* <tt>[stencil + (middle - first), stencil + (last - first))</tt>.
|
|
238
|
+
* The return value of \p stable_partition is \c middle.
|
|
239
|
+
*
|
|
240
|
+
* Note that the relative order of elements in the two reordered sequences is not
|
|
241
|
+
* necessarily the same as it was in the original sequence. A different algorithm,
|
|
242
|
+
* \p stable_partition, does guarantee to preserve the relative order.
|
|
243
|
+
*
|
|
244
|
+
* \param first The beginning of the sequence to reorder.
|
|
245
|
+
* \param last The end of the sequence to reorder.
|
|
246
|
+
* \param stencil The beginning of the stencil sequence.
|
|
247
|
+
* \param pred A function object which decides to which partition each element of the
|
|
248
|
+
* sequence <tt>[first, last)</tt> belongs.
|
|
249
|
+
* \return An iterator referring to the first element of the second partition, that is,
|
|
250
|
+
* the sequence of the elements whose stencil elements do not satisfy \p pred.
|
|
251
|
+
*
|
|
252
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
253
|
+
* Iterator</a>, and \p ForwardIterator is mutable. \tparam InputIterator is a model of <a
|
|
254
|
+
* href="https://en.cppreference.com/w/cpp/iterator/input_iterator">Input Iterator</a>, and \p InputIterator's \c
|
|
255
|
+
* value_type is convertible to \p Predicate's argument type. \tparam Predicate is a model of <a
|
|
256
|
+
* href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
257
|
+
*
|
|
258
|
+
* \pre The ranges <tt>[first,last)</tt> and <tt>[stencil, stencil + (last - first))</tt> shall not overlap.
|
|
259
|
+
*
|
|
260
|
+
* The following code snippet demonstrates how to use \p partition to reorder a
|
|
261
|
+
* sequence so that even numbers precede odd numbers.
|
|
262
|
+
*
|
|
263
|
+
* \code
|
|
264
|
+
* #include <thrust/partition.h>
|
|
265
|
+
* ...
|
|
266
|
+
* struct is_even
|
|
267
|
+
* {
|
|
268
|
+
* __host__ __device__
|
|
269
|
+
* bool operator()(const int &x)
|
|
270
|
+
* {
|
|
271
|
+
* return (x % 2) == 0;
|
|
272
|
+
* }
|
|
273
|
+
* };
|
|
274
|
+
* ...
|
|
275
|
+
* int A[] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1};
|
|
276
|
+
* int S[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
277
|
+
* const int N = sizeof(A)/sizeof(int);
|
|
278
|
+
* thrust::partition(A, A + N, S, is_even());
|
|
279
|
+
* // A is now {1, 1, 1, 1, 1, 0, 0, 0, 0, 0}
|
|
280
|
+
* // S is unmodified
|
|
281
|
+
* \endcode
|
|
282
|
+
*
|
|
283
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/partition
|
|
284
|
+
* \see \p stable_partition
|
|
285
|
+
* \see \p partition_copy
|
|
286
|
+
*/
|
|
287
|
+
template <typename ForwardIterator, typename InputIterator, typename Predicate>
|
|
288
|
+
ForwardIterator partition(ForwardIterator first, ForwardIterator last, InputIterator stencil, Predicate pred);
|
|
289
|
+
|
|
290
|
+
/*! \p partition_copy differs from \p partition only in that the reordered
|
|
291
|
+
* sequence is written to different output sequences, rather than in place.
|
|
292
|
+
*
|
|
293
|
+
* \p partition_copy copies the elements <tt>[first, last)</tt> based on the
|
|
294
|
+
* function object \p pred. All of the elements that satisfy \p pred are copied
|
|
295
|
+
* to the range beginning at \p out_true and all the elements that fail to satisfy it
|
|
296
|
+
* are copied to the range beginning at \p out_false.
|
|
297
|
+
*
|
|
298
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
299
|
+
*
|
|
300
|
+
* \param exec The execution policy to use for parallelization.
|
|
301
|
+
* \param first The beginning of the sequence to reorder.
|
|
302
|
+
* \param last The end of the sequence to reorder.
|
|
303
|
+
* \param out_true The destination of the resulting sequence of elements which satisfy \p pred.
|
|
304
|
+
* \param out_false The destination of the resulting sequence of elements which fail to satisfy \p pred.
|
|
305
|
+
* \param pred A function object which decides to which partition each element of the
|
|
306
|
+
* sequence <tt>[first, last)</tt> belongs.
|
|
307
|
+
* \return A \p pair p such that <tt>p.first</tt> is the end of the output range beginning
|
|
308
|
+
* at \p out_true and <tt>p.second</tt> is the end of the output range beginning at
|
|
309
|
+
* \p out_false.
|
|
310
|
+
*
|
|
311
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
312
|
+
* \tparam InputIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/input_iterator">Input
|
|
313
|
+
* Iterator</a>, and \p InputIterator's \c value_type is convertible to \p Predicate's argument type and \p
|
|
314
|
+
* InputIterator's \c value_type is convertible to \p OutputIterator1 and \p OutputIterator2's \c value_types. \tparam
|
|
315
|
+
* OutputIterator1 is a model of <a href="https://en.cppreference.com/w/cpp/iterator/output_iterator">Output
|
|
316
|
+
* Iterator</a>. \tparam OutputIterator2 is a model of <a
|
|
317
|
+
* href="https://en.cppreference.com/w/cpp/iterator/output_iterator">Output Iterator</a>. \tparam Predicate is a model
|
|
318
|
+
* of <a href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
319
|
+
*
|
|
320
|
+
* \pre The input range shall not overlap with either output range.
|
|
321
|
+
*
|
|
322
|
+
* The following code snippet demonstrates how to use \p partition_copy to separate a
|
|
323
|
+
* sequence into two output sequences of even and odd numbers using the \p thrust::host execution policy for
|
|
324
|
+
* parallelization:
|
|
325
|
+
*
|
|
326
|
+
* \code
|
|
327
|
+
* #include <thrust/partition.h>
|
|
328
|
+
* #include <thrust/execution_policy.h>
|
|
329
|
+
* ...
|
|
330
|
+
* struct is_even
|
|
331
|
+
* {
|
|
332
|
+
* __host__ __device__
|
|
333
|
+
* bool operator()(const int &x)
|
|
334
|
+
* {
|
|
335
|
+
* return (x % 2) == 0;
|
|
336
|
+
* }
|
|
337
|
+
* };
|
|
338
|
+
* ...
|
|
339
|
+
* int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
340
|
+
* int result[10];
|
|
341
|
+
* const int N = sizeof(A)/sizeof(int);
|
|
342
|
+
* int *evens = result;
|
|
343
|
+
* int *odds = result + 5;
|
|
344
|
+
* thrust::partition_copy(thrust::host, A, A + N, evens, odds, is_even());
|
|
345
|
+
* // A remains {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
|
|
346
|
+
* // result is now {2, 4, 6, 8, 10, 1, 3, 5, 7, 9}
|
|
347
|
+
* // evens points to {2, 4, 6, 8, 10}
|
|
348
|
+
* // odds points to {1, 3, 5, 7, 9}
|
|
349
|
+
* \endcode
|
|
350
|
+
*
|
|
351
|
+
* \note The relative order of elements in the two reordered sequences is not
|
|
352
|
+
* necessarily the same as it was in the original sequence. A different algorithm,
|
|
353
|
+
* \p stable_partition_copy, does guarantee to preserve the relative order.
|
|
354
|
+
*
|
|
355
|
+
* \see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2569.pdf
|
|
356
|
+
* \see \p stable_partition_copy
|
|
357
|
+
* \see \p partition
|
|
358
|
+
*/
|
|
359
|
+
template <typename DerivedPolicy,
|
|
360
|
+
typename InputIterator,
|
|
361
|
+
typename OutputIterator1,
|
|
362
|
+
typename OutputIterator2,
|
|
363
|
+
typename Predicate>
|
|
364
|
+
_CCCL_HOST_DEVICE thrust::pair<OutputIterator1, OutputIterator2> partition_copy(
|
|
365
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
366
|
+
InputIterator first,
|
|
367
|
+
InputIterator last,
|
|
368
|
+
OutputIterator1 out_true,
|
|
369
|
+
OutputIterator2 out_false,
|
|
370
|
+
Predicate pred);
|
|
371
|
+
|
|
372
|
+
/*! \p partition_copy differs from \p partition only in that the reordered
|
|
373
|
+
* sequence is written to different output sequences, rather than in place.
|
|
374
|
+
*
|
|
375
|
+
* \p partition_copy copies the elements <tt>[first, last)</tt> based on the
|
|
376
|
+
* function object \p pred. All of the elements that satisfy \p pred are copied
|
|
377
|
+
* to the range beginning at \p out_true and all the elements that fail to satisfy it
|
|
378
|
+
* are copied to the range beginning at \p out_false.
|
|
379
|
+
*
|
|
380
|
+
* \param first The beginning of the sequence to reorder.
|
|
381
|
+
* \param last The end of the sequence to reorder.
|
|
382
|
+
* \param out_true The destination of the resulting sequence of elements which satisfy \p pred.
|
|
383
|
+
* \param out_false The destination of the resulting sequence of elements which fail to satisfy \p pred.
|
|
384
|
+
* \param pred A function object which decides to which partition each element of the
|
|
385
|
+
* sequence <tt>[first, last)</tt> belongs.
|
|
386
|
+
* \return A \p pair p such that <tt>p.first</tt> is the end of the output range beginning
|
|
387
|
+
* at \p out_true and <tt>p.second</tt> is the end of the output range beginning at
|
|
388
|
+
* \p out_false.
|
|
389
|
+
*
|
|
390
|
+
* \tparam InputIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/input_iterator">Input
|
|
391
|
+
* Iterator</a>, and \p InputIterator's \c value_type is convertible to \p Predicate's argument type and \p
|
|
392
|
+
* InputIterator's \c value_type is convertible to \p OutputIterator1 and \p OutputIterator2's \c value_types. \tparam
|
|
393
|
+
* OutputIterator1 is a model of <a href="https://en.cppreference.com/w/cpp/iterator/output_iterator">Output
|
|
394
|
+
* Iterator</a>. \tparam OutputIterator2 is a model of <a
|
|
395
|
+
* href="https://en.cppreference.com/w/cpp/iterator/output_iterator">Output Iterator</a>. \tparam Predicate is a model
|
|
396
|
+
* of <a href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
397
|
+
*
|
|
398
|
+
* \pre The input range shall not overlap with either output range.
|
|
399
|
+
*
|
|
400
|
+
* The following code snippet demonstrates how to use \p partition_copy to separate a
|
|
401
|
+
* sequence into two output sequences of even and odd numbers.
|
|
402
|
+
*
|
|
403
|
+
* \code
|
|
404
|
+
* #include <thrust/partition.h>
|
|
405
|
+
* ...
|
|
406
|
+
* struct is_even
|
|
407
|
+
* {
|
|
408
|
+
* __host__ __device__
|
|
409
|
+
* bool operator()(const int &x)
|
|
410
|
+
* {
|
|
411
|
+
* return (x % 2) == 0;
|
|
412
|
+
* }
|
|
413
|
+
* };
|
|
414
|
+
* ...
|
|
415
|
+
* int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
416
|
+
* int result[10];
|
|
417
|
+
* const int N = sizeof(A)/sizeof(int);
|
|
418
|
+
* int *evens = result;
|
|
419
|
+
* int *odds = result + 5;
|
|
420
|
+
* thrust::partition_copy(A, A + N, evens, odds, is_even());
|
|
421
|
+
* // A remains {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
|
|
422
|
+
* // result is now {2, 4, 6, 8, 10, 1, 3, 5, 7, 9}
|
|
423
|
+
* // evens points to {2, 4, 6, 8, 10}
|
|
424
|
+
* // odds points to {1, 3, 5, 7, 9}
|
|
425
|
+
* \endcode
|
|
426
|
+
*
|
|
427
|
+
* \note The relative order of elements in the two reordered sequences is not
|
|
428
|
+
* necessarily the same as it was in the original sequence. A different algorithm,
|
|
429
|
+
* \p stable_partition_copy, does guarantee to preserve the relative order.
|
|
430
|
+
*
|
|
431
|
+
* \see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2569.pdf
|
|
432
|
+
* \see \p stable_partition_copy
|
|
433
|
+
* \see \p partition
|
|
434
|
+
*/
|
|
435
|
+
template <typename InputIterator, typename OutputIterator1, typename OutputIterator2, typename Predicate>
|
|
436
|
+
thrust::pair<OutputIterator1, OutputIterator2> partition_copy(
|
|
437
|
+
InputIterator first, InputIterator last, OutputIterator1 out_true, OutputIterator2 out_false, Predicate pred);
|
|
438
|
+
|
|
439
|
+
/*! \p partition_copy differs from \p partition only in that the reordered
|
|
440
|
+
* sequence is written to different output sequences, rather than in place.
|
|
441
|
+
*
|
|
442
|
+
* \p partition_copy copies the elements <tt>[first, last)</tt> based on the
|
|
443
|
+
* function object \p pred which is applied to a range of stencil elements. All of the elements
|
|
444
|
+
* whose corresponding stencil element satisfies \p pred are copied to the range beginning at \p out_true
|
|
445
|
+
* and all the elements whose stencil element fails to satisfy it are copied to the range beginning
|
|
446
|
+
* at \p out_false.
|
|
447
|
+
*
|
|
448
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
449
|
+
*
|
|
450
|
+
* \param exec The execution policy to use for parallelization.
|
|
451
|
+
* \param first The beginning of the sequence to reorder.
|
|
452
|
+
* \param last The end of the sequence to reorder.
|
|
453
|
+
* \param stencil The beginning of the stencil sequence.
|
|
454
|
+
* \param out_true The destination of the resulting sequence of elements which satisfy \p pred.
|
|
455
|
+
* \param out_false The destination of the resulting sequence of elements which fail to satisfy \p pred.
|
|
456
|
+
* \param pred A function object which decides to which partition each element of the
|
|
457
|
+
* sequence <tt>[first, last)</tt> belongs.
|
|
458
|
+
* \return A \p pair p such that <tt>p.first</tt> is the end of the output range beginning
|
|
459
|
+
* at \p out_true and <tt>p.second</tt> is the end of the output range beginning at
|
|
460
|
+
* \p out_false.
|
|
461
|
+
*
|
|
462
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
463
|
+
* \tparam InputIterator1 is a model of <a href="https://en.cppreference.com/w/cpp/iterator/input_iterator">Input
|
|
464
|
+
* Iterator</a>, and \p InputIterator's \c value_type is convertible to \p OutputIterator1 and \p OutputIterator2's \c
|
|
465
|
+
* value_types. \tparam InputIterator2 is a model of <a
|
|
466
|
+
* href="https://en.cppreference.com/w/cpp/iterator/input_iterator">Input Iterator</a>, and \p InputIterator2's \c
|
|
467
|
+
* value_type is convertible to \p Predicate's argument type. \tparam OutputIterator1 is a model of <a
|
|
468
|
+
* href="https://en.cppreference.com/w/cpp/iterator/output_iterator">Output Iterator</a>. \tparam OutputIterator2 is a
|
|
469
|
+
* model of <a href="https://en.cppreference.com/w/cpp/iterator/output_iterator">Output Iterator</a>. \tparam Predicate
|
|
470
|
+
* is a model of <a href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
471
|
+
*
|
|
472
|
+
* \pre The input ranges shall not overlap with either output range.
|
|
473
|
+
*
|
|
474
|
+
* The following code snippet demonstrates how to use \p partition_copy to separate a
|
|
475
|
+
* sequence into two output sequences of even and odd numbers using the \p thrust::host execution
|
|
476
|
+
* policy for parallelization.
|
|
477
|
+
*
|
|
478
|
+
* \code
|
|
479
|
+
* #include <thrust/partition.h>
|
|
480
|
+
* #include <thrust/functional.h>
|
|
481
|
+
* #include <thrust/execution_policy.h>
|
|
482
|
+
* ...
|
|
483
|
+
* int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
484
|
+
* int S[] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1};
|
|
485
|
+
* int result[10];
|
|
486
|
+
* const int N = sizeof(A)/sizeof(int);
|
|
487
|
+
* int *evens = result;
|
|
488
|
+
* int *odds = result + 5;
|
|
489
|
+
* thrust::stable_partition_copy(thrust::host, A, A + N, S, evens, odds, ::cuda::std::identity{});
|
|
490
|
+
* // A remains {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
|
|
491
|
+
* // S remains {0, 1, 0, 1, 0, 1, 0, 1, 0, 1}
|
|
492
|
+
* // result is now {2, 4, 6, 8, 10, 1, 3, 5, 7, 9}
|
|
493
|
+
* // evens points to {2, 4, 6, 8, 10}
|
|
494
|
+
* // odds points to {1, 3, 5, 7, 9}
|
|
495
|
+
* \endcode
|
|
496
|
+
*
|
|
497
|
+
* \note The relative order of elements in the two reordered sequences is not
|
|
498
|
+
* necessarily the same as it was in the original sequence. A different algorithm,
|
|
499
|
+
* \p stable_partition_copy, does guarantee to preserve the relative order.
|
|
500
|
+
*
|
|
501
|
+
* \see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2569.pdf
|
|
502
|
+
* \see \p stable_partition_copy
|
|
503
|
+
* \see \p partition
|
|
504
|
+
*/
|
|
505
|
+
template <typename DerivedPolicy,
|
|
506
|
+
typename InputIterator1,
|
|
507
|
+
typename InputIterator2,
|
|
508
|
+
typename OutputIterator1,
|
|
509
|
+
typename OutputIterator2,
|
|
510
|
+
typename Predicate>
|
|
511
|
+
_CCCL_HOST_DEVICE thrust::pair<OutputIterator1, OutputIterator2> partition_copy(
|
|
512
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
513
|
+
InputIterator1 first,
|
|
514
|
+
InputIterator1 last,
|
|
515
|
+
InputIterator2 stencil,
|
|
516
|
+
OutputIterator1 out_true,
|
|
517
|
+
OutputIterator2 out_false,
|
|
518
|
+
Predicate pred);
|
|
519
|
+
|
|
520
|
+
/*! \p partition_copy differs from \p partition only in that the reordered
|
|
521
|
+
* sequence is written to different output sequences, rather than in place.
|
|
522
|
+
*
|
|
523
|
+
* \p partition_copy copies the elements <tt>[first, last)</tt> based on the
|
|
524
|
+
* function object \p pred which is applied to a range of stencil elements. All of the elements
|
|
525
|
+
* whose corresponding stencil element satisfies \p pred are copied to the range beginning at \p out_true
|
|
526
|
+
* and all the elements whose stencil element fails to satisfy it are copied to the range beginning
|
|
527
|
+
* at \p out_false.
|
|
528
|
+
*
|
|
529
|
+
* \param first The beginning of the sequence to reorder.
|
|
530
|
+
* \param last The end of the sequence to reorder.
|
|
531
|
+
* \param stencil The beginning of the stencil sequence.
|
|
532
|
+
* \param out_true The destination of the resulting sequence of elements which satisfy \p pred.
|
|
533
|
+
* \param out_false The destination of the resulting sequence of elements which fail to satisfy \p pred.
|
|
534
|
+
* \param pred A function object which decides to which partition each element of the
|
|
535
|
+
* sequence <tt>[first, last)</tt> belongs.
|
|
536
|
+
* \return A \p pair p such that <tt>p.first</tt> is the end of the output range beginning
|
|
537
|
+
* at \p out_true and <tt>p.second</tt> is the end of the output range beginning at
|
|
538
|
+
* \p out_false.
|
|
539
|
+
*
|
|
540
|
+
* \tparam InputIterator1 is a model of <a href="https://en.cppreference.com/w/cpp/iterator/input_iterator">Input
|
|
541
|
+
* Iterator</a>, and \p InputIterator's \c value_type is convertible to \p OutputIterator1 and \p OutputIterator2's \c
|
|
542
|
+
* value_types. \tparam InputIterator2 is a model of <a
|
|
543
|
+
* href="https://en.cppreference.com/w/cpp/iterator/input_iterator">Input Iterator</a>, and \p InputIterator2's \c
|
|
544
|
+
* value_type is convertible to \p Predicate's argument type. \tparam OutputIterator1 is a model of <a
|
|
545
|
+
* href="https://en.cppreference.com/w/cpp/iterator/output_iterator">Output Iterator</a>. \tparam OutputIterator2 is a
|
|
546
|
+
* model of <a href="https://en.cppreference.com/w/cpp/iterator/output_iterator">Output Iterator</a>. \tparam Predicate
|
|
547
|
+
* is a model of <a href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
548
|
+
*
|
|
549
|
+
* \pre The input ranges shall not overlap with either output range.
|
|
550
|
+
*
|
|
551
|
+
* The following code snippet demonstrates how to use \p partition_copy to separate a
|
|
552
|
+
* sequence into two output sequences of even and odd numbers.
|
|
553
|
+
*
|
|
554
|
+
* \code
|
|
555
|
+
* #include <thrust/partition.h>
|
|
556
|
+
* #include <thrust/functional.h>
|
|
557
|
+
* ...
|
|
558
|
+
* int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
559
|
+
* int S[] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1};
|
|
560
|
+
* int result[10];
|
|
561
|
+
* const int N = sizeof(A)/sizeof(int);
|
|
562
|
+
* int *evens = result;
|
|
563
|
+
* int *odds = result + 5;
|
|
564
|
+
* thrust::stable_partition_copy(A, A + N, S, evens, odds, ::cuda::std::identity{});
|
|
565
|
+
* // A remains {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
|
|
566
|
+
* // S remains {0, 1, 0, 1, 0, 1, 0, 1, 0, 1}
|
|
567
|
+
* // result is now {2, 4, 6, 8, 10, 1, 3, 5, 7, 9}
|
|
568
|
+
* // evens points to {2, 4, 6, 8, 10}
|
|
569
|
+
* // odds points to {1, 3, 5, 7, 9}
|
|
570
|
+
* \endcode
|
|
571
|
+
*
|
|
572
|
+
* \note The relative order of elements in the two reordered sequences is not
|
|
573
|
+
* necessarily the same as it was in the original sequence. A different algorithm,
|
|
574
|
+
* \p stable_partition_copy, does guarantee to preserve the relative order.
|
|
575
|
+
*
|
|
576
|
+
* \see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2569.pdf
|
|
577
|
+
* \see \p stable_partition_copy
|
|
578
|
+
* \see \p partition
|
|
579
|
+
*/
|
|
580
|
+
template <typename InputIterator1,
|
|
581
|
+
typename InputIterator2,
|
|
582
|
+
typename OutputIterator1,
|
|
583
|
+
typename OutputIterator2,
|
|
584
|
+
typename Predicate>
|
|
585
|
+
thrust::pair<OutputIterator1, OutputIterator2> partition_copy(
|
|
586
|
+
InputIterator1 first,
|
|
587
|
+
InputIterator1 last,
|
|
588
|
+
InputIterator2 stencil,
|
|
589
|
+
OutputIterator1 out_true,
|
|
590
|
+
OutputIterator2 out_false,
|
|
591
|
+
Predicate pred);
|
|
592
|
+
|
|
593
|
+
/*! \p stable_partition is much like \p partition : it reorders the elements in the
|
|
594
|
+
* range <tt>[first, last)</tt> based on the function object \p pred, such that all of
|
|
595
|
+
* the elements that satisfy \p pred precede all of the elements that fail to satisfy
|
|
596
|
+
* it. The postcondition is that, for some iterator \p middle in the range
|
|
597
|
+
* <tt>[first, last)</tt>, <tt>pred(*i)</tt> is \c true for every iterator \c i in the
|
|
598
|
+
* range <tt>[first,middle)</tt> and \c false for every iterator \c i in the range
|
|
599
|
+
* <tt>[middle, last)</tt>. The return value of \p stable_partition is \c middle.
|
|
600
|
+
*
|
|
601
|
+
* \p stable_partition differs from \p partition in that \p stable_partition is
|
|
602
|
+
* guaranteed to preserve relative order. That is, if \c x and \c y are elements in
|
|
603
|
+
* <tt>[first, last)</tt>, and \c stencil_x and \c stencil_y are the stencil elements
|
|
604
|
+
* in corresponding positions within <tt>[stencil, stencil + (last - first))</tt>,
|
|
605
|
+
* and <tt>pred(stencil_x) == pred(stencil_y)</tt>, and if \c x precedes
|
|
606
|
+
* \c y, then it will still be true after \p stable_partition that \c x precedes \c y.
|
|
607
|
+
*
|
|
608
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
609
|
+
*
|
|
610
|
+
* \param exec The execution policy to use for parallelization.
|
|
611
|
+
* \param first The first element of the sequence to reorder.
|
|
612
|
+
* \param last One position past the last element of the sequence to reorder.
|
|
613
|
+
* \param pred A function object which decides to which partition each element of the
|
|
614
|
+
* sequence <tt>[first, last)</tt> belongs.
|
|
615
|
+
* \return An iterator referring to the first element of the second partition, that is,
|
|
616
|
+
* the sequence of the elements which do not satisfy pred.
|
|
617
|
+
*
|
|
618
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
619
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
620
|
+
* Iterator</a>, and \p ForwardIterator's \c value_type is convertible to \p Predicate's argument type, and \p
|
|
621
|
+
* ForwardIterator is mutable. \tparam Predicate is a model of <a
|
|
622
|
+
* href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
623
|
+
*
|
|
624
|
+
* The following code snippet demonstrates how to use \p stable_partition to reorder a
|
|
625
|
+
* sequence so that even numbers precede odd numbers using the \p thrust::host execution policy for parallelization:
|
|
626
|
+
*
|
|
627
|
+
* \code
|
|
628
|
+
* #include <thrust/partition.h>
|
|
629
|
+
* #include <thrust/execution_policy.h>
|
|
630
|
+
* ...
|
|
631
|
+
* struct is_even
|
|
632
|
+
* {
|
|
633
|
+
* __host__ __device__
|
|
634
|
+
* bool operator()(const int &x)
|
|
635
|
+
* {
|
|
636
|
+
* return (x % 2) == 0;
|
|
637
|
+
* }
|
|
638
|
+
* };
|
|
639
|
+
* ...
|
|
640
|
+
* int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
641
|
+
* const int N = sizeof(A)/sizeof(int);
|
|
642
|
+
* thrust::stable_partition(thrust::host,
|
|
643
|
+
* A, A + N,
|
|
644
|
+
* is_even());
|
|
645
|
+
* // A is now {2, 4, 6, 8, 10, 1, 3, 5, 7, 9}
|
|
646
|
+
* \endcode
|
|
647
|
+
*
|
|
648
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/stable_partition
|
|
649
|
+
* \see \p partition
|
|
650
|
+
* \see \p stable_partition_copy
|
|
651
|
+
*/
|
|
652
|
+
template <typename DerivedPolicy, typename ForwardIterator, typename Predicate>
|
|
653
|
+
_CCCL_HOST_DEVICE ForwardIterator stable_partition(
|
|
654
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
655
|
+
ForwardIterator first,
|
|
656
|
+
ForwardIterator last,
|
|
657
|
+
Predicate pred);
|
|
658
|
+
|
|
659
|
+
/*! \p stable_partition is much like \p partition : it reorders the elements in the
|
|
660
|
+
* range <tt>[first, last)</tt> based on the function object \p pred, such that all of
|
|
661
|
+
* the elements that satisfy \p pred precede all of the elements that fail to satisfy
|
|
662
|
+
* it. The postcondition is that, for some iterator \p middle in the range
|
|
663
|
+
* <tt>[first, last)</tt>, <tt>pred(*i)</tt> is \c true for every iterator \c i in the
|
|
664
|
+
* range <tt>[first,middle)</tt> and \c false for every iterator \c i in the range
|
|
665
|
+
* <tt>[middle, last)</tt>. The return value of \p stable_partition is \c middle.
|
|
666
|
+
*
|
|
667
|
+
* \p stable_partition differs from \p partition in that \p stable_partition is
|
|
668
|
+
* guaranteed to preserve relative order. That is, if \c x and \c y are elements in
|
|
669
|
+
* <tt>[first, last)</tt>, and \c stencil_x and \c stencil_y are the stencil elements
|
|
670
|
+
* in corresponding positions within <tt>[stencil, stencil + (last - first))</tt>,
|
|
671
|
+
* and <tt>pred(stencil_x) == pred(stencil_y)</tt>, and if \c x precedes
|
|
672
|
+
* \c y, then it will still be true after \p stable_partition that \c x precedes \c y.
|
|
673
|
+
*
|
|
674
|
+
* \param first The first element of the sequence to reorder.
|
|
675
|
+
* \param last One position past the last element of the sequence to reorder.
|
|
676
|
+
* \param pred A function object which decides to which partition each element of the
|
|
677
|
+
* sequence <tt>[first, last)</tt> belongs.
|
|
678
|
+
* \return An iterator referring to the first element of the second partition, that is,
|
|
679
|
+
* the sequence of the elements which do not satisfy pred.
|
|
680
|
+
*
|
|
681
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
682
|
+
* Iterator</a>, and \p ForwardIterator's \c value_type is convertible to \p Predicate's argument type, and \p
|
|
683
|
+
* ForwardIterator is mutable. \tparam Predicate is a model of <a
|
|
684
|
+
* href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
685
|
+
*
|
|
686
|
+
* The following code snippet demonstrates how to use \p stable_partition to reorder a
|
|
687
|
+
* sequence so that even numbers precede odd numbers.
|
|
688
|
+
*
|
|
689
|
+
* \code
|
|
690
|
+
* #include <thrust/partition.h>
|
|
691
|
+
* ...
|
|
692
|
+
* struct is_even
|
|
693
|
+
* {
|
|
694
|
+
* __host__ __device__
|
|
695
|
+
* bool operator()(const int &x)
|
|
696
|
+
* {
|
|
697
|
+
* return (x % 2) == 0;
|
|
698
|
+
* }
|
|
699
|
+
* };
|
|
700
|
+
* ...
|
|
701
|
+
* int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
702
|
+
* const int N = sizeof(A)/sizeof(int);
|
|
703
|
+
* thrust::stable_partition(A, A + N,
|
|
704
|
+
* is_even());
|
|
705
|
+
* // A is now {2, 4, 6, 8, 10, 1, 3, 5, 7, 9}
|
|
706
|
+
* \endcode
|
|
707
|
+
*
|
|
708
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/stable_partition
|
|
709
|
+
* \see \p partition
|
|
710
|
+
* \see \p stable_partition_copy
|
|
711
|
+
*/
|
|
712
|
+
template <typename ForwardIterator, typename Predicate>
|
|
713
|
+
ForwardIterator stable_partition(ForwardIterator first, ForwardIterator last, Predicate pred);
|
|
714
|
+
|
|
715
|
+
/*! \p stable_partition is much like \p partition: it reorders the elements in the
|
|
716
|
+
* range <tt>[first, last)</tt> based on the function object \p pred applied to a stencil
|
|
717
|
+
* range <tt>[stencil, stencil + (last - first))</tt>, such that all of
|
|
718
|
+
* the elements whose corresponding stencil element satisfies \p pred precede all of the elements whose
|
|
719
|
+
* corresponding stencil element fails to satisfy it. The postcondition is that, for some iterator
|
|
720
|
+
* \c middle in the range <tt>[first, last)</tt>, <tt>pred(*stencil_i)</tt> is \c true for every iterator
|
|
721
|
+
* \c stencil_i in the range <tt>[stencil,stencil + (middle - first))</tt> and \c false for every iterator \c stencil_i
|
|
722
|
+
* in the range <tt>[stencil + (middle - first), stencil + (last - first))</tt>.
|
|
723
|
+
* The return value of \p stable_partition is \c middle.
|
|
724
|
+
*
|
|
725
|
+
* \p stable_partition differs from \p partition in that \p stable_partition is
|
|
726
|
+
* guaranteed to preserve relative order. That is, if \c x and \c y are elements in
|
|
727
|
+
* <tt>[first, last)</tt>, such that <tt>pred(x) == pred(y)</tt>, and if \c x precedes
|
|
728
|
+
* \c y, then it will still be true after \p stable_partition that \c x precedes \c y.
|
|
729
|
+
*
|
|
730
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
731
|
+
*
|
|
732
|
+
* \param exec The execution policy to use for parallelization.
|
|
733
|
+
* \param first The first element of the sequence to reorder.
|
|
734
|
+
* \param last One position past the last element of the sequence to reorder.
|
|
735
|
+
* \param stencil The beginning of the stencil sequence.
|
|
736
|
+
* \param pred A function object which decides to which partition each element of the
|
|
737
|
+
* sequence <tt>[first, last)</tt> belongs.
|
|
738
|
+
* \return An iterator referring to the first element of the second partition, that is,
|
|
739
|
+
* the sequence of the elements whose stencil elements do not satisfy \p pred.
|
|
740
|
+
*
|
|
741
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
742
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
743
|
+
* Iterator</a>, and \p ForwardIterator is mutable. \tparam InputIterator is a model of <a
|
|
744
|
+
* href="https://en.cppreference.com/w/cpp/iterator/input_iterator">Input Iterator</a>, and \p InputIterator's \c
|
|
745
|
+
* value_type is convertible to \p Predicate's argument type. \tparam Predicate is a model of <a
|
|
746
|
+
* href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
747
|
+
*
|
|
748
|
+
* \pre The range <tt>[first, last)</tt> shall not overlap with the range <tt>[stencil, stencil + (last - first))</tt>.
|
|
749
|
+
*
|
|
750
|
+
* The following code snippet demonstrates how to use \p stable_partition to reorder a
|
|
751
|
+
* sequence so that even numbers precede odd numbers using the \p thrust::host execution policy for parallelization:
|
|
752
|
+
*
|
|
753
|
+
* \code
|
|
754
|
+
* #include <thrust/partition.h>
|
|
755
|
+
* #include <thrust/execution_policy.h>
|
|
756
|
+
* ...
|
|
757
|
+
* struct is_even
|
|
758
|
+
* {
|
|
759
|
+
* __host__ __device__
|
|
760
|
+
* bool operator()(const int &x)
|
|
761
|
+
* {
|
|
762
|
+
* return (x % 2) == 0;
|
|
763
|
+
* }
|
|
764
|
+
* };
|
|
765
|
+
* ...
|
|
766
|
+
* int A[] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1};
|
|
767
|
+
* int S[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
768
|
+
* const int N = sizeof(A)/sizeof(int);
|
|
769
|
+
* thrust::stable_partition(thrust::host, A, A + N, S, is_even());
|
|
770
|
+
* // A is now {1, 1, 1, 1, 1, 0, 0, 0, 0, 0}
|
|
771
|
+
* // S is unmodified
|
|
772
|
+
* \endcode
|
|
773
|
+
*
|
|
774
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/stable_partition
|
|
775
|
+
* \see \p partition
|
|
776
|
+
* \see \p stable_partition_copy
|
|
777
|
+
*/
|
|
778
|
+
template <typename DerivedPolicy, typename ForwardIterator, typename InputIterator, typename Predicate>
|
|
779
|
+
_CCCL_HOST_DEVICE ForwardIterator stable_partition(
|
|
780
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
781
|
+
ForwardIterator first,
|
|
782
|
+
ForwardIterator last,
|
|
783
|
+
InputIterator stencil,
|
|
784
|
+
Predicate pred);
|
|
785
|
+
|
|
786
|
+
/*! \p stable_partition is much like \p partition: it reorders the elements in the
|
|
787
|
+
* range <tt>[first, last)</tt> based on the function object \p pred applied to a stencil
|
|
788
|
+
* range <tt>[stencil, stencil + (last - first))</tt>, such that all of
|
|
789
|
+
* the elements whose corresponding stencil element satisfies \p pred precede all of the elements whose
|
|
790
|
+
* corresponding stencil element fails to satisfy it. The postcondition is that, for some iterator
|
|
791
|
+
* \c middle in the range <tt>[first, last)</tt>, <tt>pred(*stencil_i)</tt> is \c true for every iterator
|
|
792
|
+
* \c stencil_i in the range <tt>[stencil,stencil + (middle - first))</tt> and \c false for every iterator \c stencil_i
|
|
793
|
+
* in the range <tt>[stencil + (middle - first), stencil + (last - first))</tt>.
|
|
794
|
+
* The return value of \p stable_partition is \c middle.
|
|
795
|
+
*
|
|
796
|
+
* \p stable_partition differs from \p partition in that \p stable_partition is
|
|
797
|
+
* guaranteed to preserve relative order. That is, if \c x and \c y are elements in
|
|
798
|
+
* <tt>[first, last)</tt>, such that <tt>pred(x) == pred(y)</tt>, and if \c x precedes
|
|
799
|
+
* \c y, then it will still be true after \p stable_partition that \c x precedes \c y.
|
|
800
|
+
*
|
|
801
|
+
* \param first The first element of the sequence to reorder.
|
|
802
|
+
* \param last One position past the last element of the sequence to reorder.
|
|
803
|
+
* \param stencil The beginning of the stencil sequence.
|
|
804
|
+
* \param pred A function object which decides to which partition each element of the
|
|
805
|
+
* sequence <tt>[first, last)</tt> belongs.
|
|
806
|
+
* \return An iterator referring to the first element of the second partition, that is,
|
|
807
|
+
* the sequence of the elements whose stencil elements do not satisfy \p pred.
|
|
808
|
+
*
|
|
809
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
810
|
+
* Iterator</a>, and \p ForwardIterator is mutable. \tparam InputIterator is a model of <a
|
|
811
|
+
* href="https://en.cppreference.com/w/cpp/iterator/input_iterator">Input Iterator</a>, and \p InputIterator's \c
|
|
812
|
+
* value_type is convertible to \p Predicate's argument type. \tparam Predicate is a model of <a
|
|
813
|
+
* href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
814
|
+
*
|
|
815
|
+
* \pre The range <tt>[first, last)</tt> shall not overlap with the range <tt>[stencil, stencil + (last - first))</tt>.
|
|
816
|
+
*
|
|
817
|
+
* The following code snippet demonstrates how to use \p stable_partition to reorder a
|
|
818
|
+
* sequence so that even numbers precede odd numbers.
|
|
819
|
+
*
|
|
820
|
+
* \code
|
|
821
|
+
* #include <thrust/partition.h>
|
|
822
|
+
* ...
|
|
823
|
+
* struct is_even
|
|
824
|
+
* {
|
|
825
|
+
* __host__ __device__
|
|
826
|
+
* bool operator()(const int &x)
|
|
827
|
+
* {
|
|
828
|
+
* return (x % 2) == 0;
|
|
829
|
+
* }
|
|
830
|
+
* };
|
|
831
|
+
* ...
|
|
832
|
+
* int A[] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1};
|
|
833
|
+
* int S[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
834
|
+
* const int N = sizeof(A)/sizeof(int);
|
|
835
|
+
* thrust::stable_partition(A, A + N, S, is_even());
|
|
836
|
+
* // A is now {1, 1, 1, 1, 1, 0, 0, 0, 0, 0}
|
|
837
|
+
* // S is unmodified
|
|
838
|
+
* \endcode
|
|
839
|
+
*
|
|
840
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/stable_partition
|
|
841
|
+
* \see \p partition
|
|
842
|
+
* \see \p stable_partition_copy
|
|
843
|
+
*/
|
|
844
|
+
template <typename ForwardIterator, typename InputIterator, typename Predicate>
|
|
845
|
+
ForwardIterator stable_partition(ForwardIterator first, ForwardIterator last, InputIterator stencil, Predicate pred);
|
|
846
|
+
|
|
847
|
+
/*! \p stable_partition_copy differs from \p stable_partition only in that the reordered
|
|
848
|
+
* sequence is written to different output sequences, rather than in place.
|
|
849
|
+
*
|
|
850
|
+
* \p stable_partition_copy copies the elements <tt>[first, last)</tt> based on the
|
|
851
|
+
* function object \p pred. All of the elements that satisfy \p pred are copied
|
|
852
|
+
* to the range beginning at \p out_true and all the elements that fail to satisfy it
|
|
853
|
+
* are copied to the range beginning at \p out_false.
|
|
854
|
+
*
|
|
855
|
+
* \p stable_partition_copy differs from \p partition_copy in that
|
|
856
|
+
* \p stable_partition_copy is guaranteed to preserve relative order. That is, if
|
|
857
|
+
* \c x and \c y are elements in <tt>[first, last)</tt>, such that
|
|
858
|
+
* <tt>pred(x) == pred(y)</tt>, and if \c x precedes \c y, then it will still be true
|
|
859
|
+
* after \p stable_partition_copy that \c x precedes \c y in the output.
|
|
860
|
+
*
|
|
861
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
862
|
+
*
|
|
863
|
+
* \param exec The execution policy to use for parallelization.
|
|
864
|
+
* \param first The first element of the sequence to reorder.
|
|
865
|
+
* \param last One position past the last element of the sequence to reorder.
|
|
866
|
+
* \param out_true The destination of the resulting sequence of elements which satisfy \p pred.
|
|
867
|
+
* \param out_false The destination of the resulting sequence of elements which fail to satisfy \p pred.
|
|
868
|
+
* \param pred A function object which decides to which partition each element of the
|
|
869
|
+
* sequence <tt>[first, last)</tt> belongs.
|
|
870
|
+
* \return A \p pair p such that <tt>p.first</tt> is the end of the output range beginning
|
|
871
|
+
* at \p out_true and <tt>p.second</tt> is the end of the output range beginning at
|
|
872
|
+
* \p out_false.
|
|
873
|
+
*
|
|
874
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
875
|
+
* \tparam InputIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/input_iterator">Input
|
|
876
|
+
* Iterator</a>, and \p InputIterator's \c value_type is convertible to \p Predicate's argument type and \p
|
|
877
|
+
* InputIterator's \c value_type is convertible to \p OutputIterator1 and \p OutputIterator2's \c value_types. \tparam
|
|
878
|
+
* OutputIterator1 is a model of <a href="https://en.cppreference.com/w/cpp/iterator/output_iterator">Output
|
|
879
|
+
* Iterator</a>. \tparam OutputIterator2 is a model of <a
|
|
880
|
+
* href="https://en.cppreference.com/w/cpp/iterator/output_iterator">Output Iterator</a>. \tparam Predicate is a model
|
|
881
|
+
* of <a href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
882
|
+
*
|
|
883
|
+
* \pre The input ranges shall not overlap with either output range.
|
|
884
|
+
*
|
|
885
|
+
* The following code snippet demonstrates how to use \p stable_partition_copy to
|
|
886
|
+
* reorder a sequence so that even numbers precede odd numbers using the \p thrust::host execution policy for
|
|
887
|
+
* parallelization:
|
|
888
|
+
*
|
|
889
|
+
* \code
|
|
890
|
+
* #include <thrust/partition.h>
|
|
891
|
+
* #include <thrust/execution_policy.h>
|
|
892
|
+
* ...
|
|
893
|
+
* struct is_even
|
|
894
|
+
* {
|
|
895
|
+
* __host__ __device__
|
|
896
|
+
* bool operator()(const int &x)
|
|
897
|
+
* {
|
|
898
|
+
* return (x % 2) == 0;
|
|
899
|
+
* }
|
|
900
|
+
* };
|
|
901
|
+
* ...
|
|
902
|
+
* int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
903
|
+
* int result[10];
|
|
904
|
+
* const int N = sizeof(A)/sizeof(int);
|
|
905
|
+
* int *evens = result;
|
|
906
|
+
* int *odds = result + 5;
|
|
907
|
+
* thrust::stable_partition_copy(thrust::host, A, A + N, evens, odds, is_even());
|
|
908
|
+
* // A remains {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
|
|
909
|
+
* // result is now {2, 4, 6, 8, 10, 1, 3, 5, 7, 9}
|
|
910
|
+
* // evens points to {2, 4, 6, 8, 10}
|
|
911
|
+
* // odds points to {1, 3, 5, 7, 9}
|
|
912
|
+
* \endcode
|
|
913
|
+
*
|
|
914
|
+
* \see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2569.pdf
|
|
915
|
+
* \see \p partition_copy
|
|
916
|
+
* \see \p stable_partition
|
|
917
|
+
*/
|
|
918
|
+
template <typename DerivedPolicy,
|
|
919
|
+
typename InputIterator,
|
|
920
|
+
typename OutputIterator1,
|
|
921
|
+
typename OutputIterator2,
|
|
922
|
+
typename Predicate>
|
|
923
|
+
_CCCL_HOST_DEVICE thrust::pair<OutputIterator1, OutputIterator2> stable_partition_copy(
|
|
924
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
925
|
+
InputIterator first,
|
|
926
|
+
InputIterator last,
|
|
927
|
+
OutputIterator1 out_true,
|
|
928
|
+
OutputIterator2 out_false,
|
|
929
|
+
Predicate pred);
|
|
930
|
+
|
|
931
|
+
/*! \p stable_partition_copy differs from \p stable_partition only in that the reordered
|
|
932
|
+
* sequence is written to different output sequences, rather than in place.
|
|
933
|
+
*
|
|
934
|
+
* \p stable_partition_copy copies the elements <tt>[first, last)</tt> based on the
|
|
935
|
+
* function object \p pred. All of the elements that satisfy \p pred are copied
|
|
936
|
+
* to the range beginning at \p out_true and all the elements that fail to satisfy it
|
|
937
|
+
* are copied to the range beginning at \p out_false.
|
|
938
|
+
*
|
|
939
|
+
* \p stable_partition_copy differs from \p partition_copy in that
|
|
940
|
+
* \p stable_partition_copy is guaranteed to preserve relative order. That is, if
|
|
941
|
+
* \c x and \c y are elements in <tt>[first, last)</tt>, such that
|
|
942
|
+
* <tt>pred(x) == pred(y)</tt>, and if \c x precedes \c y, then it will still be true
|
|
943
|
+
* after \p stable_partition_copy that \c x precedes \c y in the output.
|
|
944
|
+
*
|
|
945
|
+
* \param first The first element of the sequence to reorder.
|
|
946
|
+
* \param last One position past the last element of the sequence to reorder.
|
|
947
|
+
* \param out_true The destination of the resulting sequence of elements which satisfy \p pred.
|
|
948
|
+
* \param out_false The destination of the resulting sequence of elements which fail to satisfy \p pred.
|
|
949
|
+
* \param pred A function object which decides to which partition each element of the
|
|
950
|
+
* sequence <tt>[first, last)</tt> belongs.
|
|
951
|
+
* \return A \p pair p such that <tt>p.first</tt> is the end of the output range beginning
|
|
952
|
+
* at \p out_true and <tt>p.second</tt> is the end of the output range beginning at
|
|
953
|
+
* \p out_false.
|
|
954
|
+
*
|
|
955
|
+
* \tparam InputIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/input_iterator">Input
|
|
956
|
+
* Iterator</a>, and \p InputIterator's \c value_type is convertible to \p Predicate's argument type and \p
|
|
957
|
+
* InputIterator's \c value_type is convertible to \p OutputIterator1 and \p OutputIterator2's \c value_types. \tparam
|
|
958
|
+
* OutputIterator1 is a model of <a href="https://en.cppreference.com/w/cpp/iterator/output_iterator">Output
|
|
959
|
+
* Iterator</a>. \tparam OutputIterator2 is a model of <a
|
|
960
|
+
* href="https://en.cppreference.com/w/cpp/iterator/output_iterator">Output Iterator</a>. \tparam Predicate is a model
|
|
961
|
+
* of <a href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
962
|
+
*
|
|
963
|
+
* \pre The input ranges shall not overlap with either output range.
|
|
964
|
+
*
|
|
965
|
+
* The following code snippet demonstrates how to use \p stable_partition_copy to
|
|
966
|
+
* reorder a sequence so that even numbers precede odd numbers.
|
|
967
|
+
*
|
|
968
|
+
* \code
|
|
969
|
+
* #include <thrust/partition.h>
|
|
970
|
+
* ...
|
|
971
|
+
* struct is_even
|
|
972
|
+
* {
|
|
973
|
+
* __host__ __device__
|
|
974
|
+
* bool operator()(const int &x)
|
|
975
|
+
* {
|
|
976
|
+
* return (x % 2) == 0;
|
|
977
|
+
* }
|
|
978
|
+
* };
|
|
979
|
+
* ...
|
|
980
|
+
* int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
981
|
+
* int result[10];
|
|
982
|
+
* const int N = sizeof(A)/sizeof(int);
|
|
983
|
+
* int *evens = result;
|
|
984
|
+
* int *odds = result + 5;
|
|
985
|
+
* thrust::stable_partition_copy(A, A + N, evens, odds, is_even());
|
|
986
|
+
* // A remains {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
|
|
987
|
+
* // result is now {2, 4, 6, 8, 10, 1, 3, 5, 7, 9}
|
|
988
|
+
* // evens points to {2, 4, 6, 8, 10}
|
|
989
|
+
* // odds points to {1, 3, 5, 7, 9}
|
|
990
|
+
* \endcode
|
|
991
|
+
*
|
|
992
|
+
* \see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2569.pdf
|
|
993
|
+
* \see \p partition_copy
|
|
994
|
+
* \see \p stable_partition
|
|
995
|
+
*/
|
|
996
|
+
template <typename InputIterator, typename OutputIterator1, typename OutputIterator2, typename Predicate>
|
|
997
|
+
thrust::pair<OutputIterator1, OutputIterator2> stable_partition_copy(
|
|
998
|
+
InputIterator first, InputIterator last, OutputIterator1 out_true, OutputIterator2 out_false, Predicate pred);
|
|
999
|
+
|
|
1000
|
+
/*! \p stable_partition_copy differs from \p stable_partition only in that the reordered
|
|
1001
|
+
* sequence is written to different output sequences, rather than in place.
|
|
1002
|
+
*
|
|
1003
|
+
* \p stable_partition_copy copies the elements <tt>[first, last)</tt> based on the
|
|
1004
|
+
* function object \p pred which is applied to a range of stencil elements. All of the elements
|
|
1005
|
+
* whose corresponding stencil element satisfies \p pred are copied to the range beginning at \p out_true
|
|
1006
|
+
* and all the elements whose stencil element fails to satisfy it are copied to the range beginning
|
|
1007
|
+
* at \p out_false.
|
|
1008
|
+
*
|
|
1009
|
+
* \p stable_partition_copy differs from \p partition_copy in that
|
|
1010
|
+
* \p stable_partition_copy is guaranteed to preserve relative order. That is, if
|
|
1011
|
+
* \c x and \c y are elements in <tt>[first, last)</tt>, such that
|
|
1012
|
+
* <tt>pred(x) == pred(y)</tt>, and if \c x precedes \c y, then it will still be true
|
|
1013
|
+
* after \p stable_partition_copy that \c x precedes \c y in the output.
|
|
1014
|
+
*
|
|
1015
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
1016
|
+
*
|
|
1017
|
+
* \param exec The execution policy to use for parallelization.
|
|
1018
|
+
* \param first The first element of the sequence to reorder.
|
|
1019
|
+
* \param last One position past the last element of the sequence to reorder.
|
|
1020
|
+
* \param stencil The beginning of the stencil sequence.
|
|
1021
|
+
* \param out_true The destination of the resulting sequence of elements which satisfy \p pred.
|
|
1022
|
+
* \param out_false The destination of the resulting sequence of elements which fail to satisfy \p pred.
|
|
1023
|
+
* \param pred A function object which decides to which partition each element of the
|
|
1024
|
+
* sequence <tt>[first, last)</tt> belongs.
|
|
1025
|
+
* \return A \p pair p such that <tt>p.first</tt> is the end of the output range beginning
|
|
1026
|
+
* at \p out_true and <tt>p.second</tt> is the end of the output range beginning at
|
|
1027
|
+
* \p out_false.
|
|
1028
|
+
*
|
|
1029
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
1030
|
+
* \tparam InputIterator1 is a model of <a href="https://en.cppreference.com/w/cpp/iterator/input_iterator">Input
|
|
1031
|
+
* Iterator</a>, and \p InputIterator's \c value_type is convertible to \p OutputIterator1 and \p OutputIterator2's \c
|
|
1032
|
+
* value_types. \tparam InputIterator2 is a model of <a
|
|
1033
|
+
* href="https://en.cppreference.com/w/cpp/iterator/input_iterator">Input Iterator</a>, and \p InputIterator2's \c
|
|
1034
|
+
* value_type is convertible to \p Predicate's argument type. \tparam OutputIterator1 is a model of <a
|
|
1035
|
+
* href="https://en.cppreference.com/w/cpp/iterator/output_iterator">Output Iterator</a>. \tparam OutputIterator2 is a
|
|
1036
|
+
* model of <a href="https://en.cppreference.com/w/cpp/iterator/output_iterator">Output Iterator</a>. \tparam Predicate
|
|
1037
|
+
* is a model of <a href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
1038
|
+
*
|
|
1039
|
+
* \pre The input ranges shall not overlap with either output range.
|
|
1040
|
+
*
|
|
1041
|
+
* The following code snippet demonstrates how to use \p stable_partition_copy to
|
|
1042
|
+
* reorder a sequence so that even numbers precede odd numbers using the \p thrust::host execution policy for
|
|
1043
|
+
* parallelization:
|
|
1044
|
+
*
|
|
1045
|
+
* \code
|
|
1046
|
+
* #include <thrust/partition.h>
|
|
1047
|
+
* #include <thrust/functional.h>
|
|
1048
|
+
* #include <thrust/execution_policy.h>
|
|
1049
|
+
* ...
|
|
1050
|
+
* int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
1051
|
+
* int S[] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1};
|
|
1052
|
+
* int result[10];
|
|
1053
|
+
* const int N = sizeof(A)/sizeof(int);
|
|
1054
|
+
* int *evens = result;
|
|
1055
|
+
* int *odds = result + 5;
|
|
1056
|
+
* thrust::stable_partition_copy(thrust::host, A, A + N, S, evens, odds, ::cuda::std::identity{});
|
|
1057
|
+
* // A remains {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
|
|
1058
|
+
* // S remains {0, 1, 0, 1, 0, 1, 0, 1, 0, 1}
|
|
1059
|
+
* // result is now {2, 4, 6, 8, 10, 1, 3, 5, 7, 9}
|
|
1060
|
+
* // evens points to {2, 4, 6, 8, 10}
|
|
1061
|
+
* // odds points to {1, 3, 5, 7, 9}
|
|
1062
|
+
* \endcode
|
|
1063
|
+
*
|
|
1064
|
+
* \see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2569.pdf
|
|
1065
|
+
* \see \p partition_copy
|
|
1066
|
+
* \see \p stable_partition
|
|
1067
|
+
*/
|
|
1068
|
+
template <typename DerivedPolicy,
|
|
1069
|
+
typename InputIterator1,
|
|
1070
|
+
typename InputIterator2,
|
|
1071
|
+
typename OutputIterator1,
|
|
1072
|
+
typename OutputIterator2,
|
|
1073
|
+
typename Predicate>
|
|
1074
|
+
_CCCL_HOST_DEVICE thrust::pair<OutputIterator1, OutputIterator2> stable_partition_copy(
|
|
1075
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
1076
|
+
InputIterator1 first,
|
|
1077
|
+
InputIterator1 last,
|
|
1078
|
+
InputIterator2 stencil,
|
|
1079
|
+
OutputIterator1 out_true,
|
|
1080
|
+
OutputIterator2 out_false,
|
|
1081
|
+
Predicate pred);
|
|
1082
|
+
|
|
1083
|
+
/*! \p stable_partition_copy differs from \p stable_partition only in that the reordered
|
|
1084
|
+
* sequence is written to different output sequences, rather than in place.
|
|
1085
|
+
*
|
|
1086
|
+
* \p stable_partition_copy copies the elements <tt>[first, last)</tt> based on the
|
|
1087
|
+
* function object \p pred which is applied to a range of stencil elements. All of the elements
|
|
1088
|
+
* whose corresponding stencil element satisfies \p pred are copied to the range beginning at \p out_true
|
|
1089
|
+
* and all the elements whose stencil element fails to satisfy it are copied to the range beginning
|
|
1090
|
+
* at \p out_false.
|
|
1091
|
+
*
|
|
1092
|
+
* \p stable_partition_copy differs from \p partition_copy in that
|
|
1093
|
+
* \p stable_partition_copy is guaranteed to preserve relative order. That is, if
|
|
1094
|
+
* \c x and \c y are elements in <tt>[first, last)</tt>, such that
|
|
1095
|
+
* <tt>pred(x) == pred(y)</tt>, and if \c x precedes \c y, then it will still be true
|
|
1096
|
+
* after \p stable_partition_copy that \c x precedes \c y in the output.
|
|
1097
|
+
*
|
|
1098
|
+
* \param first The first element of the sequence to reorder.
|
|
1099
|
+
* \param last One position past the last element of the sequence to reorder.
|
|
1100
|
+
* \param stencil The beginning of the stencil sequence.
|
|
1101
|
+
* \param out_true The destination of the resulting sequence of elements which satisfy \p pred.
|
|
1102
|
+
* \param out_false The destination of the resulting sequence of elements which fail to satisfy \p pred.
|
|
1103
|
+
* \param pred A function object which decides to which partition each element of the
|
|
1104
|
+
* sequence <tt>[first, last)</tt> belongs.
|
|
1105
|
+
* \return A \p pair p such that <tt>p.first</tt> is the end of the output range beginning
|
|
1106
|
+
* at \p out_true and <tt>p.second</tt> is the end of the output range beginning at
|
|
1107
|
+
* \p out_false.
|
|
1108
|
+
*
|
|
1109
|
+
* \tparam InputIterator1 is a model of <a href="https://en.cppreference.com/w/cpp/iterator/input_iterator">Input
|
|
1110
|
+
* Iterator</a>, and \p InputIterator's \c value_type is convertible to \p OutputIterator1 and \p OutputIterator2's \c
|
|
1111
|
+
* value_types. \tparam InputIterator2 is a model of <a
|
|
1112
|
+
* href="https://en.cppreference.com/w/cpp/iterator/input_iterator">Input Iterator</a>, and \p InputIterator2's \c
|
|
1113
|
+
* value_type is convertible to \p Predicate's argument type. \tparam OutputIterator1 is a model of <a
|
|
1114
|
+
* href="https://en.cppreference.com/w/cpp/iterator/output_iterator">Output Iterator</a>. \tparam OutputIterator2 is a
|
|
1115
|
+
* model of <a href="https://en.cppreference.com/w/cpp/iterator/output_iterator">Output Iterator</a>. \tparam Predicate
|
|
1116
|
+
* is a model of <a href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
1117
|
+
*
|
|
1118
|
+
* \pre The input ranges shall not overlap with either output range.
|
|
1119
|
+
*
|
|
1120
|
+
* The following code snippet demonstrates how to use \p stable_partition_copy to
|
|
1121
|
+
* reorder a sequence so that even numbers precede odd numbers.
|
|
1122
|
+
*
|
|
1123
|
+
* \code
|
|
1124
|
+
* #include <thrust/partition.h>
|
|
1125
|
+
* #include <thrust/functional.h>
|
|
1126
|
+
* ...
|
|
1127
|
+
* int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
1128
|
+
* int S[] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1};
|
|
1129
|
+
* int result[10];
|
|
1130
|
+
* const int N = sizeof(A)/sizeof(int);
|
|
1131
|
+
* int *evens = result;
|
|
1132
|
+
* int *odds = result + 5;
|
|
1133
|
+
* thrust::stable_partition_copy(A, A + N, S, evens, odds, ::cuda::std::identity{});
|
|
1134
|
+
* // A remains {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
|
|
1135
|
+
* // S remains {0, 1, 0, 1, 0, 1, 0, 1, 0, 1}
|
|
1136
|
+
* // result is now {2, 4, 6, 8, 10, 1, 3, 5, 7, 9}
|
|
1137
|
+
* // evens points to {2, 4, 6, 8, 10}
|
|
1138
|
+
* // odds points to {1, 3, 5, 7, 9}
|
|
1139
|
+
* \endcode
|
|
1140
|
+
*
|
|
1141
|
+
* \see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2569.pdf
|
|
1142
|
+
* \see \p partition_copy
|
|
1143
|
+
* \see \p stable_partition
|
|
1144
|
+
*/
|
|
1145
|
+
template <typename InputIterator1,
|
|
1146
|
+
typename InputIterator2,
|
|
1147
|
+
typename OutputIterator1,
|
|
1148
|
+
typename OutputIterator2,
|
|
1149
|
+
typename Predicate>
|
|
1150
|
+
thrust::pair<OutputIterator1, OutputIterator2> stable_partition_copy(
|
|
1151
|
+
InputIterator1 first,
|
|
1152
|
+
InputIterator1 last,
|
|
1153
|
+
InputIterator2 stencil,
|
|
1154
|
+
OutputIterator1 out_true,
|
|
1155
|
+
OutputIterator2 out_false,
|
|
1156
|
+
Predicate pred);
|
|
1157
|
+
|
|
1158
|
+
/*!
|
|
1159
|
+
* \} end group partitioning
|
|
1160
|
+
*/
|
|
1161
|
+
|
|
1162
|
+
/*!
|
|
1163
|
+
* \} end group reordering
|
|
1164
|
+
*/
|
|
1165
|
+
|
|
1166
|
+
/*! \addtogroup searching
|
|
1167
|
+
* \{
|
|
1168
|
+
*/
|
|
1169
|
+
|
|
1170
|
+
/*! \p partition_point returns an iterator pointing to the end of the true
|
|
1171
|
+
* partition of a partitioned range. \p partition_point requires the input range
|
|
1172
|
+
* <tt>[first,last)</tt> to be a partition; that is, all elements which satisfy
|
|
1173
|
+
* <tt>pred</tt> shall appear before those that do not.
|
|
1174
|
+
*
|
|
1175
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
1176
|
+
*
|
|
1177
|
+
* \param exec The execution policy to use for parallelization.
|
|
1178
|
+
* \param first The beginning of the range to consider.
|
|
1179
|
+
* \param last The end of the range to consider.
|
|
1180
|
+
* \param pred A function object which decides to which partition each element of the
|
|
1181
|
+
* range <tt>[first, last)</tt> belongs.
|
|
1182
|
+
* \return An iterator \c mid such that <tt>all_of(first, mid, pred)</tt>
|
|
1183
|
+
* and <tt>none_of(mid, last, pred)</tt> are both true.
|
|
1184
|
+
*
|
|
1185
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
1186
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
1187
|
+
* Iterator</a>, and \p ForwardIterator's \c value_type is convertible to \p Predicate's argument type. \tparam
|
|
1188
|
+
* Predicate is a model of <a href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
1189
|
+
*
|
|
1190
|
+
* \pre The range <tt>[first, last)</tt> shall be partitioned by \p pred.
|
|
1191
|
+
*
|
|
1192
|
+
* \note Though similar, \p partition_point is not redundant with \p find_if_not.
|
|
1193
|
+
* \p partition_point's precondition provides an opportunity for a
|
|
1194
|
+
* faster implementation.
|
|
1195
|
+
*
|
|
1196
|
+
* \code
|
|
1197
|
+
* #include <thrust/partition.h>
|
|
1198
|
+
* #include <thrust/execution_policy.h>
|
|
1199
|
+
*
|
|
1200
|
+
* struct is_even
|
|
1201
|
+
* {
|
|
1202
|
+
* __host__ __device__
|
|
1203
|
+
* bool operator()(const int &x)
|
|
1204
|
+
* {
|
|
1205
|
+
* return (x % 2) == 0;
|
|
1206
|
+
* }
|
|
1207
|
+
* };
|
|
1208
|
+
*
|
|
1209
|
+
* ...
|
|
1210
|
+
*
|
|
1211
|
+
* int A[] = {2, 4, 6, 8, 10, 1, 3, 5, 7, 9};
|
|
1212
|
+
* int * B = thrust::partition_point(thrust::host, A, A + 10, is_even());
|
|
1213
|
+
* // B - A is 5
|
|
1214
|
+
* // [A, B) contains only even values
|
|
1215
|
+
* \endcode
|
|
1216
|
+
*
|
|
1217
|
+
* \see \p partition
|
|
1218
|
+
* \see \p find_if_not
|
|
1219
|
+
*/
|
|
1220
|
+
template <typename DerivedPolicy, typename ForwardIterator, typename Predicate>
|
|
1221
|
+
_CCCL_HOST_DEVICE ForwardIterator partition_point(
|
|
1222
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
1223
|
+
ForwardIterator first,
|
|
1224
|
+
ForwardIterator last,
|
|
1225
|
+
Predicate pred);
|
|
1226
|
+
|
|
1227
|
+
/*! \p partition_point returns an iterator pointing to the end of the true
|
|
1228
|
+
* partition of a partitioned range. \p partition_point requires the input range
|
|
1229
|
+
* <tt>[first,last)</tt> to be a partition; that is, all elements which satisfy
|
|
1230
|
+
* <tt>pred</tt> shall appear before those that do not.
|
|
1231
|
+
* \param first The beginning of the range to consider.
|
|
1232
|
+
* \param last The end of the range to consider.
|
|
1233
|
+
* \param pred A function object which decides to which partition each element of the
|
|
1234
|
+
* range <tt>[first, last)</tt> belongs.
|
|
1235
|
+
* \return An iterator \c mid such that <tt>all_of(first, mid, pred)</tt>
|
|
1236
|
+
* and <tt>none_of(mid, last, pred)</tt> are both true.
|
|
1237
|
+
*
|
|
1238
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
1239
|
+
* Iterator</a>, and \p ForwardIterator's \c value_type is convertible to \p Predicate's argument type. \tparam
|
|
1240
|
+
* Predicate is a model of <a href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
1241
|
+
*
|
|
1242
|
+
* \pre The range <tt>[first, last)</tt> shall be partitioned by \p pred.
|
|
1243
|
+
*
|
|
1244
|
+
* \note Though similar, \p partition_point is not redundant with \p find_if_not.
|
|
1245
|
+
* \p partition_point's precondition provides an opportunity for a
|
|
1246
|
+
* faster implementation.
|
|
1247
|
+
*
|
|
1248
|
+
* \code
|
|
1249
|
+
* #include <thrust/partition.h>
|
|
1250
|
+
*
|
|
1251
|
+
* struct is_even
|
|
1252
|
+
* {
|
|
1253
|
+
* __host__ __device__
|
|
1254
|
+
* bool operator()(const int &x)
|
|
1255
|
+
* {
|
|
1256
|
+
* return (x % 2) == 0;
|
|
1257
|
+
* }
|
|
1258
|
+
* };
|
|
1259
|
+
*
|
|
1260
|
+
* ...
|
|
1261
|
+
*
|
|
1262
|
+
* int A[] = {2, 4, 6, 8, 10, 1, 3, 5, 7, 9};
|
|
1263
|
+
* int * B = thrust::partition_point(A, A + 10, is_even());
|
|
1264
|
+
* // B - A is 5
|
|
1265
|
+
* // [A, B) contains only even values
|
|
1266
|
+
* \endcode
|
|
1267
|
+
*
|
|
1268
|
+
* \see \p partition
|
|
1269
|
+
* \see \p find_if_not
|
|
1270
|
+
*/
|
|
1271
|
+
template <typename ForwardIterator, typename Predicate>
|
|
1272
|
+
ForwardIterator partition_point(ForwardIterator first, ForwardIterator last, Predicate pred);
|
|
1273
|
+
|
|
1274
|
+
/*!
|
|
1275
|
+
* \} end group searching
|
|
1276
|
+
*/
|
|
1277
|
+
|
|
1278
|
+
/*! \addtogroup reductions
|
|
1279
|
+
* \{
|
|
1280
|
+
* \addtogroup predicates
|
|
1281
|
+
* \{
|
|
1282
|
+
*/
|
|
1283
|
+
|
|
1284
|
+
/*! \p is_partitioned returns \c true if the given range
|
|
1285
|
+
* is partitioned with respect to a predicate, and \c false otherwise.
|
|
1286
|
+
*
|
|
1287
|
+
* Specifically, \p is_partitioned returns \c true if <tt>[first, last)</tt>
|
|
1288
|
+
* is empty of if <tt>[first, last)</tt> is partitioned by \p pred, i.e. if
|
|
1289
|
+
* all elements that satisfy \p pred appear before those that do not.
|
|
1290
|
+
*
|
|
1291
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
1292
|
+
*
|
|
1293
|
+
* \param exec The execution policy to use for parallelization.
|
|
1294
|
+
* \param first The beginning of the range to consider.
|
|
1295
|
+
* \param last The end of the range to consider.
|
|
1296
|
+
* \param pred A function object which decides to which partition each element of the
|
|
1297
|
+
* range <tt>[first, last)</tt> belongs.
|
|
1298
|
+
* \return \c true if the range <tt>[first, last)</tt> is partitioned with respect
|
|
1299
|
+
* to \p pred, or if <tt>[first, last)</tt> is empty. \c false, otherwise.
|
|
1300
|
+
*
|
|
1301
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
1302
|
+
* \tparam InputIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Input
|
|
1303
|
+
* Iterator</a>, and \p InputIterator's \c value_type is convertible to \p Predicate's argument type. \tparam
|
|
1304
|
+
* Predicate is a model of <a href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
1305
|
+
*
|
|
1306
|
+
* \code
|
|
1307
|
+
* #include <thrust/partition.h>
|
|
1308
|
+
* #include <thrust/execution_policy.h>
|
|
1309
|
+
*
|
|
1310
|
+
* struct is_even
|
|
1311
|
+
* {
|
|
1312
|
+
* __host__ __device__
|
|
1313
|
+
* bool operator()(const int &x)
|
|
1314
|
+
* {
|
|
1315
|
+
* return (x % 2) == 0;
|
|
1316
|
+
* }
|
|
1317
|
+
* };
|
|
1318
|
+
*
|
|
1319
|
+
* ...
|
|
1320
|
+
*
|
|
1321
|
+
* int A[] = {2, 4, 6, 8, 10, 1, 3, 5, 7, 9};
|
|
1322
|
+
* int B[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
1323
|
+
*
|
|
1324
|
+
* thrust::is_partitioned(thrust::host, A, A + 10, is_even()); // returns true
|
|
1325
|
+
* thrust::is_partitioned(thrust::host, B, B + 10, is_even()); // returns false
|
|
1326
|
+
* \endcode
|
|
1327
|
+
*
|
|
1328
|
+
* \see \p partition
|
|
1329
|
+
*/
|
|
1330
|
+
template <typename DerivedPolicy, typename InputIterator, typename Predicate>
|
|
1331
|
+
_CCCL_HOST_DEVICE bool is_partitioned(
|
|
1332
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
1333
|
+
InputIterator first,
|
|
1334
|
+
InputIterator last,
|
|
1335
|
+
Predicate pred);
|
|
1336
|
+
|
|
1337
|
+
/*! \p is_partitioned returns \c true if the given range
|
|
1338
|
+
* is partitioned with respect to a predicate, and \c false otherwise.
|
|
1339
|
+
*
|
|
1340
|
+
* Specifically, \p is_partitioned returns \c true if <tt>[first, last)</tt>
|
|
1341
|
+
* is empty of if <tt>[first, last)</tt> is partitioned by \p pred, i.e. if
|
|
1342
|
+
* all elements that satisfy \p pred appear before those that do not.
|
|
1343
|
+
*
|
|
1344
|
+
* \param first The beginning of the range to consider.
|
|
1345
|
+
* \param last The end of the range to consider.
|
|
1346
|
+
* \param pred A function object which decides to which partition each element of the
|
|
1347
|
+
* range <tt>[first, last)</tt> belongs.
|
|
1348
|
+
* \return \c true if the range <tt>[first, last)</tt> is partitioned with respect
|
|
1349
|
+
* to \p pred, or if <tt>[first, last)</tt> is empty. \c false, otherwise.
|
|
1350
|
+
*
|
|
1351
|
+
* \tparam InputIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Input
|
|
1352
|
+
* Iterator</a>, and \p InputIterator's \c value_type is convertible to \p Predicate's argument type. \tparam
|
|
1353
|
+
* Predicate is a model of <a href="https://en.cppreference.com/w/cpp/concepts/predicate">Predicate</a>.
|
|
1354
|
+
*
|
|
1355
|
+
* \code
|
|
1356
|
+
* #include <thrust/partition.h>
|
|
1357
|
+
*
|
|
1358
|
+
* struct is_even
|
|
1359
|
+
* {
|
|
1360
|
+
* __host__ __device__
|
|
1361
|
+
* bool operator()(const int &x)
|
|
1362
|
+
* {
|
|
1363
|
+
* return (x % 2) == 0;
|
|
1364
|
+
* }
|
|
1365
|
+
* };
|
|
1366
|
+
*
|
|
1367
|
+
* ...
|
|
1368
|
+
*
|
|
1369
|
+
* int A[] = {2, 4, 6, 8, 10, 1, 3, 5, 7, 9};
|
|
1370
|
+
* int B[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
|
1371
|
+
*
|
|
1372
|
+
* thrust::is_partitioned(A, A + 10, is_even()); // returns true
|
|
1373
|
+
* thrust::is_partitioned(B, B + 10, is_even()); // returns false
|
|
1374
|
+
* \endcode
|
|
1375
|
+
*
|
|
1376
|
+
* \see \p partition
|
|
1377
|
+
*/
|
|
1378
|
+
template <typename InputIterator, typename Predicate>
|
|
1379
|
+
bool is_partitioned(InputIterator first, InputIterator last, Predicate pred);
|
|
1380
|
+
|
|
1381
|
+
/*!
|
|
1382
|
+
* \} end group predicates
|
|
1383
|
+
*/
|
|
1384
|
+
|
|
1385
|
+
/*!
|
|
1386
|
+
* \} end group reductions
|
|
1387
|
+
*/
|
|
1388
|
+
|
|
1389
|
+
THRUST_NAMESPACE_END
|
|
1390
|
+
|
|
1391
|
+
#include <thrust/detail/partition.inl>
|