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,1320 @@
|
|
|
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 thrust/sort.h
|
|
18
|
+
* \brief Functions for reorganizing ranges into sorted order
|
|
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
|
+
|
|
34
|
+
THRUST_NAMESPACE_BEGIN
|
|
35
|
+
|
|
36
|
+
/*! \addtogroup sorting
|
|
37
|
+
* \ingroup algorithms
|
|
38
|
+
* \{
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
/*! \p sort sorts the elements in <tt>[first, last)</tt> into
|
|
42
|
+
* ascending order, meaning that if \c i and \c j are any two valid
|
|
43
|
+
* iterators in <tt>[first, last)</tt> such that \c i precedes \c j,
|
|
44
|
+
* then \c *j is not less than \c *i. Note: \c sort is not guaranteed
|
|
45
|
+
* to be stable. That is, suppose that \c *i and \c *j are equivalent:
|
|
46
|
+
* neither one is less than the other. It is not guaranteed that the
|
|
47
|
+
* relative order of these two elements will be preserved by \p sort.
|
|
48
|
+
*
|
|
49
|
+
* This version of \p sort compares objects using \c operator<.
|
|
50
|
+
*
|
|
51
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
52
|
+
*
|
|
53
|
+
* \param exec The execution policy to use for parallelization.
|
|
54
|
+
* \param first The beginning of the sequence.
|
|
55
|
+
* \param last The end of the sequence.
|
|
56
|
+
*
|
|
57
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
58
|
+
* \tparam RandomAccessIterator is a model of <a
|
|
59
|
+
* href="https://en.cppreference.com/w/cpp/iterator/random_access_iterator">Random Access Iterator</a>, \p
|
|
60
|
+
* RandomAccessIterator is mutable, and \p RandomAccessIterator's \c value_type is a model of <a
|
|
61
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a>, and the ordering
|
|
62
|
+
* relation on \p RandomAccessIterator's \c value_type is a <em>strict weak ordering</em>, as defined in the <a
|
|
63
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a> requirements.
|
|
64
|
+
*
|
|
65
|
+
* The following code snippet demonstrates how to use \p sort to sort
|
|
66
|
+
* a sequence of integers using the \p thrust::host execution policy for parallelization:
|
|
67
|
+
*
|
|
68
|
+
* \code
|
|
69
|
+
* #include <thrust/sort.h>
|
|
70
|
+
* #include <thrust/execution_policy.h>
|
|
71
|
+
* ...
|
|
72
|
+
* const int N = 6;
|
|
73
|
+
* int A[N] = {1, 4, 2, 8, 5, 7};
|
|
74
|
+
* thrust::sort(thrust::host, A, A + N);
|
|
75
|
+
* // A is now {1, 2, 4, 5, 7, 8}
|
|
76
|
+
* \endcode
|
|
77
|
+
*
|
|
78
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/sort
|
|
79
|
+
* \see \p stable_sort
|
|
80
|
+
* \see \p sort_by_key
|
|
81
|
+
*/
|
|
82
|
+
template <typename DerivedPolicy, typename RandomAccessIterator>
|
|
83
|
+
_CCCL_HOST_DEVICE void sort(const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
84
|
+
RandomAccessIterator first,
|
|
85
|
+
RandomAccessIterator last);
|
|
86
|
+
|
|
87
|
+
/*! \p sort sorts the elements in <tt>[first, last)</tt> into
|
|
88
|
+
* ascending order, meaning that if \c i and \c j are any two valid
|
|
89
|
+
* iterators in <tt>[first, last)</tt> such that \c i precedes \c j,
|
|
90
|
+
* then \c *j is not less than \c *i. Note: \c sort is not guaranteed
|
|
91
|
+
* to be stable. That is, suppose that \c *i and \c *j are equivalent:
|
|
92
|
+
* neither one is less than the other. It is not guaranteed that the
|
|
93
|
+
* relative order of these two elements will be preserved by \p sort.
|
|
94
|
+
*
|
|
95
|
+
* This version of \p sort compares objects using \c operator<.
|
|
96
|
+
*
|
|
97
|
+
* \param first The beginning of the sequence.
|
|
98
|
+
* \param last The end of the sequence.
|
|
99
|
+
*
|
|
100
|
+
* \tparam RandomAccessIterator is a model of <a
|
|
101
|
+
* href="https://en.cppreference.com/w/cpp/iterator/random_access_iterator">Random Access Iterator</a>, \p
|
|
102
|
+
* RandomAccessIterator is mutable, and \p RandomAccessIterator's \c value_type is a model of <a
|
|
103
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a>, and the ordering
|
|
104
|
+
* relation on \p RandomAccessIterator's \c value_type is a <em>strict weak ordering</em>, as defined in the <a
|
|
105
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a> requirements.
|
|
106
|
+
*
|
|
107
|
+
* The following code snippet demonstrates how to use \p sort to sort
|
|
108
|
+
* a sequence of integers.
|
|
109
|
+
*
|
|
110
|
+
* \code
|
|
111
|
+
* #include <thrust/sort.h>
|
|
112
|
+
* ...
|
|
113
|
+
* const int N = 6;
|
|
114
|
+
* int A[N] = {1, 4, 2, 8, 5, 7};
|
|
115
|
+
* thrust::sort(A, A + N);
|
|
116
|
+
* // A is now {1, 2, 4, 5, 7, 8}
|
|
117
|
+
* \endcode
|
|
118
|
+
*
|
|
119
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/sort
|
|
120
|
+
* \see \p stable_sort
|
|
121
|
+
* \see \p sort_by_key
|
|
122
|
+
*/
|
|
123
|
+
template <typename RandomAccessIterator>
|
|
124
|
+
void sort(RandomAccessIterator first, RandomAccessIterator last);
|
|
125
|
+
|
|
126
|
+
/*! \p sort sorts the elements in <tt>[first, last)</tt> into
|
|
127
|
+
* ascending order, meaning that if \c i and \c j are any two valid
|
|
128
|
+
* iterators in <tt>[first, last)</tt> such that \c i precedes \c j,
|
|
129
|
+
* then \c *j is not less than \c *i. Note: \c sort is not guaranteed
|
|
130
|
+
* to be stable. That is, suppose that \c *i and \c *j are equivalent:
|
|
131
|
+
* neither one is less than the other. It is not guaranteed that the
|
|
132
|
+
* relative order of these two elements will be preserved by \p sort.
|
|
133
|
+
*
|
|
134
|
+
* This version of \p sort compares objects using a function object
|
|
135
|
+
* \p comp.
|
|
136
|
+
*
|
|
137
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
138
|
+
*
|
|
139
|
+
* \param exec The execution policy to use for parallelization.
|
|
140
|
+
* \param first The beginning of the sequence.
|
|
141
|
+
* \param last The end of the sequence.
|
|
142
|
+
* \param comp Comparison operator.
|
|
143
|
+
*
|
|
144
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
145
|
+
* \tparam RandomAccessIterator is a model of <a
|
|
146
|
+
* href="https://en.cppreference.com/w/cpp/iterator/random_access_iterator">Random Access Iterator</a>, \p
|
|
147
|
+
* RandomAccessIterator is mutable, and \p RandomAccessIterator's \c value_type is convertible to \p
|
|
148
|
+
* StrictWeakOrdering's first argument type and second argument type. \tparam StrictWeakOrdering is a model of <a
|
|
149
|
+
* href="https://en.cppreference.com/w/cpp/concepts/strict_weak_order">Strict Weak Ordering</a>.
|
|
150
|
+
*
|
|
151
|
+
* The following code demonstrates how to sort integers in descending order
|
|
152
|
+
* using the greater<int> comparison operator using the \p thrust::host execution policy for parallelization:
|
|
153
|
+
*
|
|
154
|
+
* \code
|
|
155
|
+
* #include <thrust/sort.h>
|
|
156
|
+
* #include <thrust/functional.h>
|
|
157
|
+
* #include <thrust/execution_policy.h>
|
|
158
|
+
* ...
|
|
159
|
+
* const int N = 6;
|
|
160
|
+
* int A[N] = {1, 4, 2, 8, 5, 7};
|
|
161
|
+
* thrust::sort(thrust::host, A, A + N, ::cuda::std::greater<int>());
|
|
162
|
+
* // A is now {8, 7, 5, 4, 2, 1};
|
|
163
|
+
* \endcode
|
|
164
|
+
*
|
|
165
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/sort
|
|
166
|
+
* \see \p stable_sort
|
|
167
|
+
* \see \p sort_by_key
|
|
168
|
+
*/
|
|
169
|
+
template <typename DerivedPolicy, typename RandomAccessIterator, typename StrictWeakOrdering>
|
|
170
|
+
_CCCL_HOST_DEVICE void
|
|
171
|
+
sort(const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
172
|
+
RandomAccessIterator first,
|
|
173
|
+
RandomAccessIterator last,
|
|
174
|
+
StrictWeakOrdering comp);
|
|
175
|
+
|
|
176
|
+
/*! \p sort sorts the elements in <tt>[first, last)</tt> into
|
|
177
|
+
* ascending order, meaning that if \c i and \c j are any two valid
|
|
178
|
+
* iterators in <tt>[first, last)</tt> such that \c i precedes \c j,
|
|
179
|
+
* then \c *j is not less than \c *i. Note: \c sort is not guaranteed
|
|
180
|
+
* to be stable. That is, suppose that \c *i and \c *j are equivalent:
|
|
181
|
+
* neither one is less than the other. It is not guaranteed that the
|
|
182
|
+
* relative order of these two elements will be preserved by \p sort.
|
|
183
|
+
*
|
|
184
|
+
* This version of \p sort compares objects using a function object
|
|
185
|
+
* \p comp.
|
|
186
|
+
*
|
|
187
|
+
* \param first The beginning of the sequence.
|
|
188
|
+
* \param last The end of the sequence.
|
|
189
|
+
* \param comp Comparison operator.
|
|
190
|
+
*
|
|
191
|
+
* \tparam RandomAccessIterator is a model of <a
|
|
192
|
+
* href="https://en.cppreference.com/w/cpp/iterator/random_access_iterator">Random Access Iterator</a>, \p
|
|
193
|
+
* RandomAccessIterator is mutable, and \p RandomAccessIterator's \c value_type is convertible to \p
|
|
194
|
+
* StrictWeakOrdering's first argument type and second argument type. \tparam StrictWeakOrdering is a model of <a
|
|
195
|
+
* href="https://en.cppreference.com/w/cpp/concepts/strict_weak_order">Strict Weak Ordering</a>.
|
|
196
|
+
*
|
|
197
|
+
* The following code demonstrates how to sort integers in descending order
|
|
198
|
+
* using the greater<int> comparison operator.
|
|
199
|
+
*
|
|
200
|
+
* \code
|
|
201
|
+
* #include <thrust/sort.h>
|
|
202
|
+
* #include <thrust/functional.h>
|
|
203
|
+
* ...
|
|
204
|
+
* const int N = 6;
|
|
205
|
+
* int A[N] = {1, 4, 2, 8, 5, 7};
|
|
206
|
+
* thrust::sort(A, A + N, ::cuda::std::greater<int>());
|
|
207
|
+
* // A is now {8, 7, 5, 4, 2, 1};
|
|
208
|
+
* \endcode
|
|
209
|
+
*
|
|
210
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/sort
|
|
211
|
+
* \see \p stable_sort
|
|
212
|
+
* \see \p sort_by_key
|
|
213
|
+
*/
|
|
214
|
+
template <typename RandomAccessIterator, typename StrictWeakOrdering>
|
|
215
|
+
_CCCL_HOST_DEVICE void sort(RandomAccessIterator first, RandomAccessIterator last, StrictWeakOrdering comp);
|
|
216
|
+
|
|
217
|
+
/*! \p stable_sort is much like \c sort: it sorts the elements in
|
|
218
|
+
* <tt>[first, last)</tt> into ascending order, meaning that if \c i
|
|
219
|
+
* and \c j are any two valid iterators in <tt>[first, last)</tt> such
|
|
220
|
+
* that \c i precedes \c j, then \c *j is not less than \c *i.
|
|
221
|
+
*
|
|
222
|
+
* As the name suggests, \p stable_sort is stable: it preserves the
|
|
223
|
+
* relative ordering of equivalent elements. That is, if \c x and \c y
|
|
224
|
+
* are elements in <tt>[first, last)</tt> such that \c x precedes \c y,
|
|
225
|
+
* and if the two elements are equivalent (neither <tt>x < y</tt> nor
|
|
226
|
+
* <tt>y < x</tt>) then a postcondition of \p stable_sort is that \c x
|
|
227
|
+
* still precedes \c y.
|
|
228
|
+
*
|
|
229
|
+
* This version of \p stable_sort compares objects using \c operator<.
|
|
230
|
+
*
|
|
231
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
232
|
+
*
|
|
233
|
+
* \param exec The execution policy to use for parallelization.
|
|
234
|
+
* \param first The beginning of the sequence.
|
|
235
|
+
* \param last The end of the sequence.
|
|
236
|
+
*
|
|
237
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
238
|
+
* \tparam RandomAccessIterator is a model of <a
|
|
239
|
+
* href="https://en.cppreference.com/w/cpp/iterator/random_access_iterator">Random Access Iterator</a>, \p
|
|
240
|
+
* RandomAccessIterator is mutable, and \p RandomAccessIterator's \c value_type is a model of <a
|
|
241
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a>, and the ordering
|
|
242
|
+
* relation on \p RandomAccessIterator's \c value_type is a <em>strict weak ordering</em>, as defined in the <a
|
|
243
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a> requirements.
|
|
244
|
+
*
|
|
245
|
+
* The following code snippet demonstrates how to use \p sort to sort
|
|
246
|
+
* a sequence of integers using the \p thrust::host execution policy for parallelization:
|
|
247
|
+
*
|
|
248
|
+
* \code
|
|
249
|
+
* #include <thrust/sort.h>
|
|
250
|
+
* #include <thrust/execution_policy.h>
|
|
251
|
+
* ...
|
|
252
|
+
* const int N = 6;
|
|
253
|
+
* int A[N] = {1, 4, 2, 8, 5, 7};
|
|
254
|
+
* thrust::stable_sort(thrust::host, A, A + N);
|
|
255
|
+
* // A is now {1, 2, 4, 5, 7, 8}
|
|
256
|
+
* \endcode
|
|
257
|
+
*
|
|
258
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/stable_sort
|
|
259
|
+
* \see \p sort
|
|
260
|
+
* \see \p stable_sort_by_key
|
|
261
|
+
*/
|
|
262
|
+
template <typename DerivedPolicy, typename RandomAccessIterator>
|
|
263
|
+
_CCCL_HOST_DEVICE void stable_sort(const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
264
|
+
RandomAccessIterator first,
|
|
265
|
+
RandomAccessIterator last);
|
|
266
|
+
|
|
267
|
+
/*! \p stable_sort is much like \c sort: it sorts the elements in
|
|
268
|
+
* <tt>[first, last)</tt> into ascending order, meaning that if \c i
|
|
269
|
+
* and \c j are any two valid iterators in <tt>[first, last)</tt> such
|
|
270
|
+
* that \c i precedes \c j, then \c *j is not less than \c *i.
|
|
271
|
+
*
|
|
272
|
+
* As the name suggests, \p stable_sort is stable: it preserves the
|
|
273
|
+
* relative ordering of equivalent elements. That is, if \c x and \c y
|
|
274
|
+
* are elements in <tt>[first, last)</tt> such that \c x precedes \c y,
|
|
275
|
+
* and if the two elements are equivalent (neither <tt>x < y</tt> nor
|
|
276
|
+
* <tt>y < x</tt>) then a postcondition of \p stable_sort is that \c x
|
|
277
|
+
* still precedes \c y.
|
|
278
|
+
*
|
|
279
|
+
* This version of \p stable_sort compares objects using \c operator<.
|
|
280
|
+
*
|
|
281
|
+
* \param first The beginning of the sequence.
|
|
282
|
+
* \param last The end of the sequence.
|
|
283
|
+
*
|
|
284
|
+
* \tparam RandomAccessIterator is a model of <a
|
|
285
|
+
* href="https://en.cppreference.com/w/cpp/iterator/random_access_iterator">Random Access Iterator</a>, \p
|
|
286
|
+
* RandomAccessIterator is mutable, and \p RandomAccessIterator's \c value_type is a model of <a
|
|
287
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a>, and the ordering
|
|
288
|
+
* relation on \p RandomAccessIterator's \c value_type is a <em>strict weak ordering</em>, as defined in the <a
|
|
289
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a> requirements.
|
|
290
|
+
*
|
|
291
|
+
* The following code snippet demonstrates how to use \p sort to sort
|
|
292
|
+
* a sequence of integers.
|
|
293
|
+
*
|
|
294
|
+
* \code
|
|
295
|
+
* #include <thrust/sort.h>
|
|
296
|
+
* ...
|
|
297
|
+
* const int N = 6;
|
|
298
|
+
* int A[N] = {1, 4, 2, 8, 5, 7};
|
|
299
|
+
* thrust::stable_sort(A, A + N);
|
|
300
|
+
* // A is now {1, 2, 4, 5, 7, 8}
|
|
301
|
+
* \endcode
|
|
302
|
+
*
|
|
303
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/stable_sort
|
|
304
|
+
* \see \p sort
|
|
305
|
+
* \see \p stable_sort_by_key
|
|
306
|
+
*/
|
|
307
|
+
template <typename RandomAccessIterator>
|
|
308
|
+
void stable_sort(RandomAccessIterator first, RandomAccessIterator last);
|
|
309
|
+
|
|
310
|
+
/*! \p stable_sort is much like \c sort: it sorts the elements in
|
|
311
|
+
* <tt>[first, last)</tt> into ascending order, meaning that if \c i
|
|
312
|
+
* and \c j are any two valid iterators in <tt>[first, last)</tt> such
|
|
313
|
+
* that \c i precedes \c j, then \c *j is not less than \c *i.
|
|
314
|
+
*
|
|
315
|
+
* As the name suggests, \p stable_sort is stable: it preserves the
|
|
316
|
+
* relative ordering of equivalent elements. That is, if \c x and \c y
|
|
317
|
+
* are elements in <tt>[first, last)</tt> such that \c x precedes \c y,
|
|
318
|
+
* and if the two elements are equivalent (neither <tt>x < y</tt> nor
|
|
319
|
+
* <tt>y < x</tt>) then a postcondition of \p stable_sort is that \c x
|
|
320
|
+
* still precedes \c y.
|
|
321
|
+
*
|
|
322
|
+
* This version of \p stable_sort compares objects using a function object
|
|
323
|
+
* \p comp.
|
|
324
|
+
*
|
|
325
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
326
|
+
*
|
|
327
|
+
* \param exec The execution policy to use for parallelization.
|
|
328
|
+
* \param first The beginning of the sequence.
|
|
329
|
+
* \param last The end of the sequence.
|
|
330
|
+
* \param comp Comparison operator.
|
|
331
|
+
*
|
|
332
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
333
|
+
* \tparam RandomAccessIterator is a model of <a
|
|
334
|
+
* href="https://en.cppreference.com/w/cpp/iterator/random_access_iterator">Random Access Iterator</a>, \p
|
|
335
|
+
* RandomAccessIterator is mutable, and \p RandomAccessIterator's \c value_type is convertible to \p
|
|
336
|
+
* StrictWeakOrdering's first argument type and second argument type. \tparam StrictWeakOrdering is a model of <a
|
|
337
|
+
* href="https://en.cppreference.com/w/cpp/concepts/strict_weak_order">Strict Weak Ordering</a>.
|
|
338
|
+
*
|
|
339
|
+
* The following code demonstrates how to sort integers in descending order
|
|
340
|
+
* using the greater<int> comparison operator using the \p thrust::host execution policy for parallelization:
|
|
341
|
+
*
|
|
342
|
+
* \code
|
|
343
|
+
* #include <thrust/sort.h>
|
|
344
|
+
* #include <thrust/functional.h>
|
|
345
|
+
* #include <thrust/execution_policy.h>
|
|
346
|
+
* ...
|
|
347
|
+
* const int N = 6;
|
|
348
|
+
* int A[N] = {1, 4, 2, 8, 5, 7};
|
|
349
|
+
* thrust::sort(A, A + N, ::cuda::std::greater<int>());
|
|
350
|
+
* // A is now {8, 7, 5, 4, 2, 1};
|
|
351
|
+
* \endcode
|
|
352
|
+
*
|
|
353
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/stable_sort
|
|
354
|
+
* \see \p sort
|
|
355
|
+
* \see \p stable_sort_by_key
|
|
356
|
+
*/
|
|
357
|
+
template <typename DerivedPolicy, typename RandomAccessIterator, typename StrictWeakOrdering>
|
|
358
|
+
_CCCL_HOST_DEVICE void stable_sort(
|
|
359
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
360
|
+
RandomAccessIterator first,
|
|
361
|
+
RandomAccessIterator last,
|
|
362
|
+
StrictWeakOrdering comp);
|
|
363
|
+
|
|
364
|
+
/*! \p stable_sort is much like \c sort: it sorts the elements in
|
|
365
|
+
* <tt>[first, last)</tt> into ascending order, meaning that if \c i
|
|
366
|
+
* and \c j are any two valid iterators in <tt>[first, last)</tt> such
|
|
367
|
+
* that \c i precedes \c j, then \c *j is not less than \c *i.
|
|
368
|
+
*
|
|
369
|
+
* As the name suggests, \p stable_sort is stable: it preserves the
|
|
370
|
+
* relative ordering of equivalent elements. That is, if \c x and \c y
|
|
371
|
+
* are elements in <tt>[first, last)</tt> such that \c x precedes \c y,
|
|
372
|
+
* and if the two elements are equivalent (neither <tt>x < y</tt> nor
|
|
373
|
+
* <tt>y < x</tt>) then a postcondition of \p stable_sort is that \c x
|
|
374
|
+
* still precedes \c y.
|
|
375
|
+
*
|
|
376
|
+
* This version of \p stable_sort compares objects using a function object
|
|
377
|
+
* \p comp.
|
|
378
|
+
*
|
|
379
|
+
* \param first The beginning of the sequence.
|
|
380
|
+
* \param last The end of the sequence.
|
|
381
|
+
* \param comp Comparison operator.
|
|
382
|
+
*
|
|
383
|
+
* \tparam RandomAccessIterator is a model of <a
|
|
384
|
+
* href="https://en.cppreference.com/w/cpp/iterator/random_access_iterator">Random Access Iterator</a>, \p
|
|
385
|
+
* RandomAccessIterator is mutable, and \p RandomAccessIterator's \c value_type is convertible to \p
|
|
386
|
+
* StrictWeakOrdering's first argument type and second argument type. \tparam StrictWeakOrdering is a model of <a
|
|
387
|
+
* href="https://en.cppreference.com/w/cpp/concepts/strict_weak_order">Strict Weak Ordering</a>.
|
|
388
|
+
*
|
|
389
|
+
* The following code demonstrates how to sort integers in descending order
|
|
390
|
+
* using the greater<int> comparison operator.
|
|
391
|
+
*
|
|
392
|
+
* \code
|
|
393
|
+
* #include <thrust/sort.h>
|
|
394
|
+
* #include <thrust/functional.h>
|
|
395
|
+
* ...
|
|
396
|
+
* const int N = 6;
|
|
397
|
+
* int A[N] = {1, 4, 2, 8, 5, 7};
|
|
398
|
+
* thrust::sort(A, A + N, ::cuda::std::greater<int>());
|
|
399
|
+
* // A is now {8, 7, 5, 4, 2, 1};
|
|
400
|
+
* \endcode
|
|
401
|
+
*
|
|
402
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/stable_sort
|
|
403
|
+
* \see \p sort
|
|
404
|
+
* \see \p stable_sort_by_key
|
|
405
|
+
*/
|
|
406
|
+
template <typename RandomAccessIterator, typename StrictWeakOrdering>
|
|
407
|
+
void stable_sort(RandomAccessIterator first, RandomAccessIterator last, StrictWeakOrdering comp);
|
|
408
|
+
|
|
409
|
+
///////////////
|
|
410
|
+
// Key Value //
|
|
411
|
+
///////////////
|
|
412
|
+
|
|
413
|
+
/*! \p sort_by_key performs a key-value sort. That is, \p sort_by_key sorts the
|
|
414
|
+
* elements in <tt>[keys_first, keys_last)</tt> and <tt>[values_first,
|
|
415
|
+
* values_first + (keys_last - keys_first))</tt> into ascending key order,
|
|
416
|
+
* meaning that if \c i and \c j are any two valid iterators in <tt>[keys_first,
|
|
417
|
+
* keys_last)</tt> such that \c i precedes \c j, and \c p and \c q are iterators
|
|
418
|
+
* in <tt>[values_first, values_first + (keys_last - keys_first))</tt>
|
|
419
|
+
* corresponding to \c i and \c j respectively, then \c *j is not less than
|
|
420
|
+
* \c *i.
|
|
421
|
+
*
|
|
422
|
+
* Note: \c sort_by_key is not guaranteed to be stable. That is, suppose that
|
|
423
|
+
* \c *i and \c *j are equivalent: neither one is less than the other. It is not
|
|
424
|
+
* guaranteed that the relative order of these two keys or the relative
|
|
425
|
+
* order of their corresponding values will be preserved by \p sort_by_key.
|
|
426
|
+
*
|
|
427
|
+
* This version of \p sort_by_key compares key objects using \c operator<.
|
|
428
|
+
*
|
|
429
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
430
|
+
*
|
|
431
|
+
* \param exec The execution policy to use for parallelization.
|
|
432
|
+
* \param keys_first The beginning of the key sequence.
|
|
433
|
+
* \param keys_last The end of the key sequence.
|
|
434
|
+
* \param values_first The beginning of the value sequence.
|
|
435
|
+
*
|
|
436
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
437
|
+
* \tparam RandomAccessIterator1 is a model of <a
|
|
438
|
+
* href="https://en.cppreference.com/w/cpp/iterator/random_access_iterator">Random Access Iterator</a>, \p
|
|
439
|
+
* RandomAccessIterator1 is mutable, and \p RandomAccessIterator1's \c value_type is a model of <a
|
|
440
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a>, and the ordering
|
|
441
|
+
* relation on \p RandomAccessIterator1's \c value_type is a <em>strict weak ordering</em>, as defined in the <a
|
|
442
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a> requirements. \tparam
|
|
443
|
+
* RandomAccessIterator2 is a model of <a href="https://en.cppreference.com/w/cpp/named_req/RandomAccessIterator">Random
|
|
444
|
+
* Access Iterator</a>, and \p RandomAccessIterator2 is mutable.
|
|
445
|
+
*
|
|
446
|
+
* \pre The range <tt>[keys_first, keys_last))</tt> shall not overlap the range <tt>[values_first, values_first +
|
|
447
|
+
* (keys_last - keys_first))</tt>.
|
|
448
|
+
*
|
|
449
|
+
* The following code snippet demonstrates how to use \p sort_by_key to sort
|
|
450
|
+
* an array of character values using integers as sorting keys using the \p thrust::host execution policy
|
|
451
|
+
* for parallelization:
|
|
452
|
+
*
|
|
453
|
+
* \code
|
|
454
|
+
* #include <thrust/sort.h>
|
|
455
|
+
* #include <thrust/execution_policy.h>
|
|
456
|
+
* ...
|
|
457
|
+
* const int N = 6;
|
|
458
|
+
* int keys[N] = { 1, 4, 2, 8, 5, 7};
|
|
459
|
+
* char values[N] = {'a', 'b', 'c', 'd', 'e', 'f'};
|
|
460
|
+
* thrust::sort_by_key(thrust::host, keys, keys + N, values);
|
|
461
|
+
* // keys is now { 1, 2, 4, 5, 7, 8}
|
|
462
|
+
* // values is now {'a', 'c', 'b', 'e', 'f', 'd'}
|
|
463
|
+
* \endcode
|
|
464
|
+
*
|
|
465
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/sort
|
|
466
|
+
* \see \p stable_sort_by_key
|
|
467
|
+
* \see \p sort
|
|
468
|
+
*/
|
|
469
|
+
template <typename DerivedPolicy, typename RandomAccessIterator1, typename RandomAccessIterator2>
|
|
470
|
+
_CCCL_HOST_DEVICE void sort_by_key(
|
|
471
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
472
|
+
RandomAccessIterator1 keys_first,
|
|
473
|
+
RandomAccessIterator1 keys_last,
|
|
474
|
+
RandomAccessIterator2 values_first);
|
|
475
|
+
|
|
476
|
+
/*! \p sort_by_key performs a key-value sort. That is, \p sort_by_key sorts the
|
|
477
|
+
* elements in <tt>[keys_first, keys_last)</tt> and <tt>[values_first,
|
|
478
|
+
* values_first + (keys_last - keys_first))</tt> into ascending key order,
|
|
479
|
+
* meaning that if \c i and \c j are any two valid iterators in <tt>[keys_first,
|
|
480
|
+
* keys_last)</tt> such that \c i precedes \c j, and \c p and \c q are iterators
|
|
481
|
+
* in <tt>[values_first, values_first + (keys_last - keys_first))</tt>
|
|
482
|
+
* corresponding to \c i and \c j respectively, then \c *j is not less than
|
|
483
|
+
* \c *i.
|
|
484
|
+
*
|
|
485
|
+
* Note: \c sort_by_key is not guaranteed to be stable. That is, suppose that
|
|
486
|
+
* \c *i and \c *j are equivalent: neither one is less than the other. It is not
|
|
487
|
+
* guaranteed that the relative order of these two keys or the relative
|
|
488
|
+
* order of their corresponding values will be preserved by \p sort_by_key.
|
|
489
|
+
*
|
|
490
|
+
* This version of \p sort_by_key compares key objects using \c operator<.
|
|
491
|
+
*
|
|
492
|
+
* \param keys_first The beginning of the key sequence.
|
|
493
|
+
* \param keys_last The end of the key sequence.
|
|
494
|
+
* \param values_first The beginning of the value sequence.
|
|
495
|
+
*
|
|
496
|
+
* \tparam RandomAccessIterator1 is a model of <a
|
|
497
|
+
* href="https://en.cppreference.com/w/cpp/iterator/random_access_iterator">Random Access Iterator</a>, \p
|
|
498
|
+
* RandomAccessIterator1 is mutable, and \p RandomAccessIterator1's \c value_type is a model of <a
|
|
499
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a>, and the ordering
|
|
500
|
+
* relation on \p RandomAccessIterator1's \c value_type is a <em>strict weak ordering</em>, as defined in the <a
|
|
501
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a> requirements. \tparam
|
|
502
|
+
* RandomAccessIterator2 is a model of <a href="https://en.cppreference.com/w/cpp/named_req/RandomAccessIterator">Random
|
|
503
|
+
* Access Iterator</a>, and \p RandomAccessIterator2 is mutable.
|
|
504
|
+
*
|
|
505
|
+
* \pre The range <tt>[keys_first, keys_last))</tt> shall not overlap the range <tt>[values_first, values_first +
|
|
506
|
+
* (keys_last - keys_first))</tt>.
|
|
507
|
+
*
|
|
508
|
+
* The following code snippet demonstrates how to use \p sort_by_key to sort
|
|
509
|
+
* an array of character values using integers as sorting keys.
|
|
510
|
+
*
|
|
511
|
+
* \code
|
|
512
|
+
* #include <thrust/sort.h>
|
|
513
|
+
* ...
|
|
514
|
+
* const int N = 6;
|
|
515
|
+
* int keys[N] = { 1, 4, 2, 8, 5, 7};
|
|
516
|
+
* char values[N] = {'a', 'b', 'c', 'd', 'e', 'f'};
|
|
517
|
+
* thrust::sort_by_key(keys, keys + N, values);
|
|
518
|
+
* // keys is now { 1, 2, 4, 5, 7, 8}
|
|
519
|
+
* // values is now {'a', 'c', 'b', 'e', 'f', 'd'}
|
|
520
|
+
* \endcode
|
|
521
|
+
*
|
|
522
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/sort
|
|
523
|
+
* \see \p stable_sort_by_key
|
|
524
|
+
* \see \p sort
|
|
525
|
+
*/
|
|
526
|
+
template <typename RandomAccessIterator1, typename RandomAccessIterator2>
|
|
527
|
+
void sort_by_key(RandomAccessIterator1 keys_first, RandomAccessIterator1 keys_last, RandomAccessIterator2 values_first);
|
|
528
|
+
|
|
529
|
+
/*! \p sort_by_key performs a key-value sort. That is, \p sort_by_key sorts the
|
|
530
|
+
* elements in <tt>[keys_first, keys_last)</tt> and <tt>[values_first,
|
|
531
|
+
* values_first + (keys_last - keys_first))</tt> into ascending key order,
|
|
532
|
+
* meaning that if \c i and \c j are any two valid iterators in <tt>[keys_first,
|
|
533
|
+
* keys_last)</tt> such that \c i precedes \c j, and \c p and \c q are iterators
|
|
534
|
+
* in <tt>[values_first, values_first + (keys_last - keys_first))</tt>
|
|
535
|
+
* corresponding to \c i and \c j respectively, then \c *j is not less than
|
|
536
|
+
* \c *i.
|
|
537
|
+
*
|
|
538
|
+
* Note: \c sort_by_key is not guaranteed to be stable. That is, suppose that
|
|
539
|
+
* \c *i and \c *j are equivalent: neither one is less than the other. It is not
|
|
540
|
+
* guaranteed that the relative order of these two keys or the relative
|
|
541
|
+
* order of their corresponding values will be preserved by \p sort_by_key.
|
|
542
|
+
*
|
|
543
|
+
* This version of \p sort_by_key compares key objects using a function object
|
|
544
|
+
* \c comp.
|
|
545
|
+
*
|
|
546
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
547
|
+
*
|
|
548
|
+
* \param exec The execution policy to use for parallelization.
|
|
549
|
+
* \param keys_first The beginning of the key sequence.
|
|
550
|
+
* \param keys_last The end of the key sequence.
|
|
551
|
+
* \param values_first The beginning of the value sequence.
|
|
552
|
+
* \param comp Comparison operator.
|
|
553
|
+
*
|
|
554
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
555
|
+
* \tparam RandomAccessIterator1 is a model of <a
|
|
556
|
+
* href="https://en.cppreference.com/w/cpp/iterator/random_access_iterator">Random Access Iterator</a>, \p
|
|
557
|
+
* RandomAccessIterator1 is mutable, and \p RandomAccessIterator1's \c value_type is convertible to \p
|
|
558
|
+
* StrictWeakOrdering's first argument type and second argument type. \tparam RandomAccessIterator2 is a model of
|
|
559
|
+
* <a href="https://en.cppreference.com/w/cpp/named_req/RandomAccessIterator">Random Access Iterator</a>, and \p
|
|
560
|
+
* RandomAccessIterator2 is mutable. \tparam StrictWeakOrdering is a model of <a
|
|
561
|
+
* href="https://en.cppreference.com/w/cpp/concepts/strict_weak_order">Strict Weak Ordering</a>.
|
|
562
|
+
*
|
|
563
|
+
* \pre The range <tt>[keys_first, keys_last))</tt> shall not overlap the range <tt>[values_first, values_first +
|
|
564
|
+
* (keys_last - keys_first))</tt>.
|
|
565
|
+
*
|
|
566
|
+
* The following code snippet demonstrates how to use \p sort_by_key to sort
|
|
567
|
+
* an array of character values using integers as sorting keys using the \p thrust::host execution policy
|
|
568
|
+
* for parallelization.The keys are sorted in descending order using the <tt>greater<int></tt> comparison operator.
|
|
569
|
+
*
|
|
570
|
+
* \code
|
|
571
|
+
* #include <thrust/sort.h>
|
|
572
|
+
* #include <thrust/execution_policy.h>
|
|
573
|
+
* ...
|
|
574
|
+
* const int N = 6;
|
|
575
|
+
* int keys[N] = { 1, 4, 2, 8, 5, 7};
|
|
576
|
+
* char values[N] = {'a', 'b', 'c', 'd', 'e', 'f'};
|
|
577
|
+
* thrust::sort_by_key(thrust::host, keys, keys + N, values, ::cuda::std::greater<int>());
|
|
578
|
+
* // keys is now { 8, 7, 5, 4, 2, 1}
|
|
579
|
+
* // values is now {'d', 'f', 'e', 'b', 'c', 'a'}
|
|
580
|
+
* \endcode
|
|
581
|
+
*
|
|
582
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/sort
|
|
583
|
+
* \see \p stable_sort_by_key
|
|
584
|
+
* \see \p sort
|
|
585
|
+
*/
|
|
586
|
+
template <typename DerivedPolicy,
|
|
587
|
+
typename RandomAccessIterator1,
|
|
588
|
+
typename RandomAccessIterator2,
|
|
589
|
+
typename StrictWeakOrdering>
|
|
590
|
+
_CCCL_HOST_DEVICE void sort_by_key(
|
|
591
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
592
|
+
RandomAccessIterator1 keys_first,
|
|
593
|
+
RandomAccessIterator1 keys_last,
|
|
594
|
+
RandomAccessIterator2 values_first,
|
|
595
|
+
StrictWeakOrdering comp);
|
|
596
|
+
|
|
597
|
+
/*! \p sort_by_key performs a key-value sort. That is, \p sort_by_key sorts the
|
|
598
|
+
* elements in <tt>[keys_first, keys_last)</tt> and <tt>[values_first,
|
|
599
|
+
* values_first + (keys_last - keys_first))</tt> into ascending key order,
|
|
600
|
+
* meaning that if \c i and \c j are any two valid iterators in <tt>[keys_first,
|
|
601
|
+
* keys_last)</tt> such that \c i precedes \c j, and \c p and \c q are iterators
|
|
602
|
+
* in <tt>[values_first, values_first + (keys_last - keys_first))</tt>
|
|
603
|
+
* corresponding to \c i and \c j respectively, then \c *j is not less than
|
|
604
|
+
* \c *i.
|
|
605
|
+
*
|
|
606
|
+
* Note: \c sort_by_key is not guaranteed to be stable. That is, suppose that
|
|
607
|
+
* \c *i and \c *j are equivalent: neither one is less than the other. It is not
|
|
608
|
+
* guaranteed that the relative order of these two keys or the relative
|
|
609
|
+
* order of their corresponding values will be preserved by \p sort_by_key.
|
|
610
|
+
*
|
|
611
|
+
* This version of \p sort_by_key compares key objects using a function object
|
|
612
|
+
* \c comp.
|
|
613
|
+
*
|
|
614
|
+
* \param keys_first The beginning of the key sequence.
|
|
615
|
+
* \param keys_last The end of the key sequence.
|
|
616
|
+
* \param values_first The beginning of the value sequence.
|
|
617
|
+
* \param comp Comparison operator.
|
|
618
|
+
*
|
|
619
|
+
* \tparam RandomAccessIterator1 is a model of <a
|
|
620
|
+
* href="https://en.cppreference.com/w/cpp/iterator/random_access_iterator">Random Access Iterator</a>, \p
|
|
621
|
+
* RandomAccessIterator1 is mutable, and \p RandomAccessIterator1's \c value_type is convertible to \p
|
|
622
|
+
* StrictWeakOrdering's first argument type and second argument type. \tparam RandomAccessIterator2 is a model of
|
|
623
|
+
* <a href="https://en.cppreference.com/w/cpp/named_req/RandomAccessIterator">Random Access Iterator</a>, and \p
|
|
624
|
+
* RandomAccessIterator2 is mutable. \tparam StrictWeakOrdering is a model of <a
|
|
625
|
+
* href="https://en.cppreference.com/w/cpp/concepts/strict_weak_order">Strict Weak Ordering</a>.
|
|
626
|
+
*
|
|
627
|
+
* \pre The range <tt>[keys_first, keys_last))</tt> shall not overlap the range <tt>[values_first, values_first +
|
|
628
|
+
* (keys_last - keys_first))</tt>.
|
|
629
|
+
*
|
|
630
|
+
* The following code snippet demonstrates how to use \p sort_by_key to sort
|
|
631
|
+
* an array of character values using integers as sorting keys. The keys
|
|
632
|
+
* are sorted in descending order using the greater<int> comparison operator.
|
|
633
|
+
*
|
|
634
|
+
* \code
|
|
635
|
+
* #include <thrust/sort.h>
|
|
636
|
+
* ...
|
|
637
|
+
* const int N = 6;
|
|
638
|
+
* int keys[N] = { 1, 4, 2, 8, 5, 7};
|
|
639
|
+
* char values[N] = {'a', 'b', 'c', 'd', 'e', 'f'};
|
|
640
|
+
* thrust::sort_by_key(keys, keys + N, values, ::cuda::std::greater<int>());
|
|
641
|
+
* // keys is now { 8, 7, 5, 4, 2, 1}
|
|
642
|
+
* // values is now {'d', 'f', 'e', 'b', 'c', 'a'}
|
|
643
|
+
* \endcode
|
|
644
|
+
*
|
|
645
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/sort
|
|
646
|
+
* \see \p stable_sort_by_key
|
|
647
|
+
* \see \p sort
|
|
648
|
+
*/
|
|
649
|
+
template <typename RandomAccessIterator1, typename RandomAccessIterator2, typename StrictWeakOrdering>
|
|
650
|
+
void sort_by_key(RandomAccessIterator1 keys_first,
|
|
651
|
+
RandomAccessIterator1 keys_last,
|
|
652
|
+
RandomAccessIterator2 values_first,
|
|
653
|
+
StrictWeakOrdering comp);
|
|
654
|
+
|
|
655
|
+
/*! \p stable_sort_by_key performs a key-value sort. That is, \p stable_sort_by_key
|
|
656
|
+
* sorts the elements in <tt>[keys_first, keys_last)</tt> and <tt>[values_first,
|
|
657
|
+
* values_first + (keys_last - keys_first))</tt> into ascending key order,
|
|
658
|
+
* meaning that if \c i and \c j are any two valid iterators in <tt>[keys_first,
|
|
659
|
+
* keys_last)</tt> such that \c i precedes \c j, and \c p and \c q are iterators
|
|
660
|
+
* in <tt>[values_first, values_first + (keys_last - keys_first))</tt>
|
|
661
|
+
* corresponding to \c i and \c j respectively, then \c *j is not less than
|
|
662
|
+
* \c *i.
|
|
663
|
+
*
|
|
664
|
+
* As the name suggests, \p stable_sort_by_key is stable: it preserves the
|
|
665
|
+
* relative ordering of equivalent elements. That is, if \c x and \c y
|
|
666
|
+
* are elements in <tt>[keys_first, keys_last)</tt> such that \c x precedes \c y,
|
|
667
|
+
* and if the two elements are equivalent (neither <tt>x < y</tt> nor
|
|
668
|
+
* <tt>y < x</tt>) then a postcondition of \p stable_sort_by_key is that \c x
|
|
669
|
+
* still precedes \c y.
|
|
670
|
+
*
|
|
671
|
+
* This version of \p stable_sort_by_key compares key objects using \c operator<.
|
|
672
|
+
*
|
|
673
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
674
|
+
*
|
|
675
|
+
* \param exec The execution policy to use for parallelization.
|
|
676
|
+
* \param keys_first The beginning of the key sequence.
|
|
677
|
+
* \param keys_last The end of the key sequence.
|
|
678
|
+
* \param values_first The beginning of the value sequence.
|
|
679
|
+
*
|
|
680
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
681
|
+
* \tparam RandomAccessIterator1 is a model of <a
|
|
682
|
+
* href="https://en.cppreference.com/w/cpp/iterator/random_access_iterator">Random Access Iterator</a>, \p
|
|
683
|
+
* RandomAccessIterator1 is mutable, and \p RandomAccessIterator1's \c value_type is a model of <a
|
|
684
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a>, and the ordering
|
|
685
|
+
* relation on \p RandomAccessIterator1's \c value_type is a <em>strict weak ordering</em>, as defined in the <a
|
|
686
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a> requirements. \tparam
|
|
687
|
+
* RandomAccessIterator2 is a model of <a href="https://en.cppreference.com/w/cpp/named_req/RandomAccessIterator">Random
|
|
688
|
+
* Access Iterator</a>, and \p RandomAccessIterator2 is mutable.
|
|
689
|
+
*
|
|
690
|
+
* \pre The range <tt>[keys_first, keys_last))</tt> shall not overlap the range <tt>[values_first, values_first +
|
|
691
|
+
* (keys_last - keys_first))</tt>.
|
|
692
|
+
*
|
|
693
|
+
* The following code snippet demonstrates how to use \p stable_sort_by_key to sort
|
|
694
|
+
* an array of characters using integers as sorting keys using the \p thrust::host execution policy for
|
|
695
|
+
* parallelization:
|
|
696
|
+
*
|
|
697
|
+
* \code
|
|
698
|
+
* #include <thrust/sort.h>
|
|
699
|
+
* #include <thrust/execution_policy.h>
|
|
700
|
+
* ...
|
|
701
|
+
* const int N = 6;
|
|
702
|
+
* int keys[N] = { 1, 4, 2, 8, 5, 7};
|
|
703
|
+
* char values[N] = {'a', 'b', 'c', 'd', 'e', 'f'};
|
|
704
|
+
* thrust::stable_sort_by_key(thrust::host, keys, keys + N, values);
|
|
705
|
+
* // keys is now { 1, 2, 4, 5, 7, 8}
|
|
706
|
+
* // values is now {'a', 'c', 'b', 'e', 'f', 'd'}
|
|
707
|
+
* \endcode
|
|
708
|
+
*
|
|
709
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/sort
|
|
710
|
+
* \see \p sort_by_key
|
|
711
|
+
* \see \p stable_sort
|
|
712
|
+
*/
|
|
713
|
+
template <typename DerivedPolicy, typename RandomAccessIterator1, typename RandomAccessIterator2>
|
|
714
|
+
_CCCL_HOST_DEVICE void stable_sort_by_key(
|
|
715
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
716
|
+
RandomAccessIterator1 keys_first,
|
|
717
|
+
RandomAccessIterator1 keys_last,
|
|
718
|
+
RandomAccessIterator2 values_first);
|
|
719
|
+
|
|
720
|
+
/*! \p stable_sort_by_key performs a key-value sort. That is, \p stable_sort_by_key
|
|
721
|
+
* sorts the elements in <tt>[keys_first, keys_last)</tt> and <tt>[values_first,
|
|
722
|
+
* values_first + (keys_last - keys_first))</tt> into ascending key order,
|
|
723
|
+
* meaning that if \c i and \c j are any two valid iterators in <tt>[keys_first,
|
|
724
|
+
* keys_last)</tt> such that \c i precedes \c j, and \c p and \c q are iterators
|
|
725
|
+
* in <tt>[values_first, values_first + (keys_last - keys_first))</tt>
|
|
726
|
+
* corresponding to \c i and \c j respectively, then \c *j is not less than
|
|
727
|
+
* \c *i.
|
|
728
|
+
*
|
|
729
|
+
* As the name suggests, \p stable_sort_by_key is stable: it preserves the
|
|
730
|
+
* relative ordering of equivalent elements. That is, if \c x and \c y
|
|
731
|
+
* are elements in <tt>[keys_first, keys_last)</tt> such that \c x precedes \c y,
|
|
732
|
+
* and if the two elements are equivalent (neither <tt>x < y</tt> nor
|
|
733
|
+
* <tt>y < x</tt>) then a postcondition of \p stable_sort_by_key is that \c x
|
|
734
|
+
* still precedes \c y.
|
|
735
|
+
*
|
|
736
|
+
* This version of \p stable_sort_by_key compares key objects using \c operator<.
|
|
737
|
+
*
|
|
738
|
+
* \param keys_first The beginning of the key sequence.
|
|
739
|
+
* \param keys_last The end of the key sequence.
|
|
740
|
+
* \param values_first The beginning of the value sequence.
|
|
741
|
+
*
|
|
742
|
+
* \tparam RandomAccessIterator1 is a model of <a
|
|
743
|
+
* href="https://en.cppreference.com/w/cpp/iterator/random_access_iterator">Random Access Iterator</a>, \p
|
|
744
|
+
* RandomAccessIterator1 is mutable, and \p RandomAccessIterator1's \c value_type is a model of <a
|
|
745
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a>, and the ordering
|
|
746
|
+
* relation on \p RandomAccessIterator1's \c value_type is a <em>strict weak ordering</em>, as defined in the <a
|
|
747
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a> requirements. \tparam
|
|
748
|
+
* RandomAccessIterator2 is a model of <a href="https://en.cppreference.com/w/cpp/named_req/RandomAccessIterator">Random
|
|
749
|
+
* Access Iterator</a>, and \p RandomAccessIterator2 is mutable.
|
|
750
|
+
*
|
|
751
|
+
* \pre The range <tt>[keys_first, keys_last))</tt> shall not overlap the range <tt>[values_first, values_first +
|
|
752
|
+
* (keys_last - keys_first))</tt>.
|
|
753
|
+
*
|
|
754
|
+
* The following code snippet demonstrates how to use \p stable_sort_by_key to sort
|
|
755
|
+
* an array of characters using integers as sorting keys.
|
|
756
|
+
*
|
|
757
|
+
* \code
|
|
758
|
+
* #include <thrust/sort.h>
|
|
759
|
+
* ...
|
|
760
|
+
* const int N = 6;
|
|
761
|
+
* int keys[N] = { 1, 4, 2, 8, 5, 7};
|
|
762
|
+
* char values[N] = {'a', 'b', 'c', 'd', 'e', 'f'};
|
|
763
|
+
* thrust::stable_sort_by_key(keys, keys + N, values);
|
|
764
|
+
* // keys is now { 1, 2, 4, 5, 7, 8}
|
|
765
|
+
* // values is now {'a', 'c', 'b', 'e', 'f', 'd'}
|
|
766
|
+
* \endcode
|
|
767
|
+
*
|
|
768
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/sort
|
|
769
|
+
* \see \p sort_by_key
|
|
770
|
+
* \see \p stable_sort
|
|
771
|
+
*/
|
|
772
|
+
template <typename RandomAccessIterator1, typename RandomAccessIterator2>
|
|
773
|
+
void stable_sort_by_key(
|
|
774
|
+
RandomAccessIterator1 keys_first, RandomAccessIterator1 keys_last, RandomAccessIterator2 values_first);
|
|
775
|
+
|
|
776
|
+
/*! \p stable_sort_by_key performs a key-value sort. That is, \p stable_sort_by_key
|
|
777
|
+
* sorts the elements in <tt>[keys_first, keys_last)</tt> and <tt>[values_first,
|
|
778
|
+
* values_first + (keys_last - keys_first))</tt> into ascending key order,
|
|
779
|
+
* meaning that if \c i and \c j are any two valid iterators in <tt>[keys_first,
|
|
780
|
+
* keys_last)</tt> such that \c i precedes \c j, and \c p and \c q are iterators
|
|
781
|
+
* in <tt>[values_first, values_first + (keys_last - keys_first))</tt>
|
|
782
|
+
* corresponding to \c i and \c j respectively, then \c *j is not less than
|
|
783
|
+
* \c *i.
|
|
784
|
+
*
|
|
785
|
+
* As the name suggests, \p stable_sort_by_key is stable: it preserves the
|
|
786
|
+
* relative ordering of equivalent elements. That is, if \c x and \c y
|
|
787
|
+
* are elements in <tt>[keys_first, keys_last)</tt> such that \c x precedes \c y,
|
|
788
|
+
* and if the two elements are equivalent (neither <tt>x < y</tt> nor
|
|
789
|
+
* <tt>y < x</tt>) then a postcondition of \p stable_sort_by_key is that \c x
|
|
790
|
+
* still precedes \c y.
|
|
791
|
+
*
|
|
792
|
+
* This version of \p stable_sort_by_key compares key objects using the function
|
|
793
|
+
* object \p comp.
|
|
794
|
+
*
|
|
795
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
796
|
+
*
|
|
797
|
+
* \param exec The execution policy to use for parallelization.
|
|
798
|
+
* \param keys_first The beginning of the key sequence.
|
|
799
|
+
* \param keys_last The end of the key sequence.
|
|
800
|
+
* \param values_first The beginning of the value sequence.
|
|
801
|
+
* \param comp Comparison operator.
|
|
802
|
+
*
|
|
803
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
804
|
+
* \tparam RandomAccessIterator1 is a model of <a
|
|
805
|
+
* href="https://en.cppreference.com/w/cpp/iterator/random_access_iterator">Random Access Iterator</a>, \p
|
|
806
|
+
* RandomAccessIterator1 is mutable, and \p RandomAccessIterator1's \c value_type is convertible to \p
|
|
807
|
+
* StrictWeakOrdering's first argument type and second argument type. \tparam RandomAccessIterator2 is a model of
|
|
808
|
+
* <a href="https://en.cppreference.com/w/cpp/named_req/RandomAccessIterator">Random Access Iterator</a>, and \p
|
|
809
|
+
* RandomAccessIterator2 is mutable. \tparam StrictWeakOrdering is a model of <a
|
|
810
|
+
* href="https://en.cppreference.com/w/cpp/concepts/strict_weak_order">Strict Weak Ordering</a>.
|
|
811
|
+
*
|
|
812
|
+
* \pre The range <tt>[keys_first, keys_last))</tt> shall not overlap the range <tt>[values_first, values_first +
|
|
813
|
+
* (keys_last - keys_first))</tt>.
|
|
814
|
+
*
|
|
815
|
+
* The following code snippet demonstrates how to use \p sort_by_key to sort
|
|
816
|
+
* an array of character values using integers as sorting keys using the \p thrust::host execution policy for
|
|
817
|
+
* parallelization. The keys are sorted in descending order using the <tt>greater<int></tt> comparison operator.
|
|
818
|
+
*
|
|
819
|
+
* \code
|
|
820
|
+
* #include <thrust/sort.h>
|
|
821
|
+
* #include <thrust/execution_policy.h>
|
|
822
|
+
* ...
|
|
823
|
+
* const int N = 6;
|
|
824
|
+
* int keys[N] = { 1, 4, 2, 8, 5, 7};
|
|
825
|
+
* char values[N] = {'a', 'b', 'c', 'd', 'e', 'f'};
|
|
826
|
+
* thrust::stable_sort_by_key(thrust::host, keys, keys + N, values, ::cuda::std::greater<int>());
|
|
827
|
+
* // keys is now { 8, 7, 5, 4, 2, 1}
|
|
828
|
+
* // values is now {'d', 'f', 'e', 'b', 'c', 'a'}
|
|
829
|
+
* \endcode
|
|
830
|
+
*
|
|
831
|
+
*
|
|
832
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/sort
|
|
833
|
+
* \see \p sort_by_key
|
|
834
|
+
* \see \p stable_sort
|
|
835
|
+
*/
|
|
836
|
+
template <typename DerivedPolicy,
|
|
837
|
+
typename RandomAccessIterator1,
|
|
838
|
+
typename RandomAccessIterator2,
|
|
839
|
+
typename StrictWeakOrdering>
|
|
840
|
+
_CCCL_HOST_DEVICE void stable_sort_by_key(
|
|
841
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
842
|
+
RandomAccessIterator1 keys_first,
|
|
843
|
+
RandomAccessIterator1 keys_last,
|
|
844
|
+
RandomAccessIterator2 values_first,
|
|
845
|
+
StrictWeakOrdering comp);
|
|
846
|
+
|
|
847
|
+
/*! \p stable_sort_by_key performs a key-value sort. That is, \p stable_sort_by_key
|
|
848
|
+
* sorts the elements in <tt>[keys_first, keys_last)</tt> and <tt>[values_first,
|
|
849
|
+
* values_first + (keys_last - keys_first))</tt> into ascending key order,
|
|
850
|
+
* meaning that if \c i and \c j are any two valid iterators in <tt>[keys_first,
|
|
851
|
+
* keys_last)</tt> such that \c i precedes \c j, and \c p and \c q are iterators
|
|
852
|
+
* in <tt>[values_first, values_first + (keys_last - keys_first))</tt>
|
|
853
|
+
* corresponding to \c i and \c j respectively, then \c *j is not less than
|
|
854
|
+
* \c *i.
|
|
855
|
+
*
|
|
856
|
+
* As the name suggests, \p stable_sort_by_key is stable: it preserves the
|
|
857
|
+
* relative ordering of equivalent elements. That is, if \c x and \c y
|
|
858
|
+
* are elements in <tt>[keys_first, keys_last)</tt> such that \c x precedes \c y,
|
|
859
|
+
* and if the two elements are equivalent (neither <tt>x < y</tt> nor
|
|
860
|
+
* <tt>y < x</tt>) then a postcondition of \p stable_sort_by_key is that \c x
|
|
861
|
+
* still precedes \c y.
|
|
862
|
+
*
|
|
863
|
+
* This version of \p stable_sort_by_key compares key objects using the function
|
|
864
|
+
* object \p comp.
|
|
865
|
+
*
|
|
866
|
+
* \param keys_first The beginning of the key sequence.
|
|
867
|
+
* \param keys_last The end of the key sequence.
|
|
868
|
+
* \param values_first The beginning of the value sequence.
|
|
869
|
+
* \param comp Comparison operator.
|
|
870
|
+
*
|
|
871
|
+
* \tparam RandomAccessIterator1 is a model of <a
|
|
872
|
+
* href="https://en.cppreference.com/w/cpp/iterator/random_access_iterator">Random Access Iterator</a>, \p
|
|
873
|
+
* RandomAccessIterator1 is mutable, and \p RandomAccessIterator1's \c value_type is convertible to \p
|
|
874
|
+
* StrictWeakOrdering's first argument type and second argument type. \tparam RandomAccessIterator2 is a model of
|
|
875
|
+
* <a href="https://en.cppreference.com/w/cpp/named_req/RandomAccessIterator">Random Access Iterator</a>, and \p
|
|
876
|
+
* RandomAccessIterator2 is mutable. \tparam StrictWeakOrdering is a model of <a
|
|
877
|
+
* href="https://en.cppreference.com/w/cpp/concepts/strict_weak_order">Strict Weak Ordering</a>.
|
|
878
|
+
*
|
|
879
|
+
* \pre The range <tt>[keys_first, keys_last))</tt> shall not overlap the range <tt>[values_first, values_first +
|
|
880
|
+
* (keys_last - keys_first))</tt>.
|
|
881
|
+
*
|
|
882
|
+
* The following code snippet demonstrates how to use \p sort_by_key to sort
|
|
883
|
+
* an array of character values using integers as sorting keys. The keys
|
|
884
|
+
* are sorted in descending order using the greater<int> comparison operator.
|
|
885
|
+
*
|
|
886
|
+
* \code
|
|
887
|
+
* #include <thrust/sort.h>
|
|
888
|
+
* ...
|
|
889
|
+
* const int N = 6;
|
|
890
|
+
* int keys[N] = { 1, 4, 2, 8, 5, 7};
|
|
891
|
+
* char values[N] = {'a', 'b', 'c', 'd', 'e', 'f'};
|
|
892
|
+
* thrust::stable_sort_by_key(keys, keys + N, values, ::cuda::std::greater<int>());
|
|
893
|
+
* // keys is now { 8, 7, 5, 4, 2, 1}
|
|
894
|
+
* // values is now {'d', 'f', 'e', 'b', 'c', 'a'}
|
|
895
|
+
* \endcode
|
|
896
|
+
*
|
|
897
|
+
*
|
|
898
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/sort
|
|
899
|
+
* \see \p sort_by_key
|
|
900
|
+
* \see \p stable_sort
|
|
901
|
+
*/
|
|
902
|
+
template <typename RandomAccessIterator1, typename RandomAccessIterator2, typename StrictWeakOrdering>
|
|
903
|
+
void stable_sort_by_key(RandomAccessIterator1 keys_first,
|
|
904
|
+
RandomAccessIterator1 keys_last,
|
|
905
|
+
RandomAccessIterator2 values_first,
|
|
906
|
+
StrictWeakOrdering comp);
|
|
907
|
+
|
|
908
|
+
/*! \} // end sorting
|
|
909
|
+
*/
|
|
910
|
+
|
|
911
|
+
/*! \addtogroup reductions
|
|
912
|
+
* \{
|
|
913
|
+
* \addtogroup predicates
|
|
914
|
+
* \{
|
|
915
|
+
*/
|
|
916
|
+
|
|
917
|
+
/*! \p is_sorted returns \c true if the range <tt>[first, last)</tt> is
|
|
918
|
+
* sorted in ascending order, and \c false otherwise.
|
|
919
|
+
*
|
|
920
|
+
* Specifically, this version of \p is_sorted returns \c false if for
|
|
921
|
+
* some iterator \c i in the range <tt>[first, last - 1)</tt> the
|
|
922
|
+
* expression <tt>*(i + 1) < *i</tt> is \c true.
|
|
923
|
+
*
|
|
924
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
925
|
+
*
|
|
926
|
+
* \param exec The execution policy to use for parallelization.
|
|
927
|
+
* \param first The beginning of the sequence.
|
|
928
|
+
* \param last The end of the sequence.
|
|
929
|
+
* \return \c true, if the sequence is sorted; \c false, otherwise.
|
|
930
|
+
*
|
|
931
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
932
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
933
|
+
* Iterator</a>, \p ForwardIterator's \c value_type is a model of <a
|
|
934
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a>, and the ordering on
|
|
935
|
+
* objects of \p ForwardIterator's \c value_type is a <em>strict weak ordering</em>, as defined in the <a
|
|
936
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a> requirements.
|
|
937
|
+
*
|
|
938
|
+
*
|
|
939
|
+
* The following code demonstrates how to use \p is_sorted to test whether the
|
|
940
|
+
* contents of a \c device_vector are stored in ascending order using the \p thrust::device execution policy
|
|
941
|
+
* for parallelization:
|
|
942
|
+
*
|
|
943
|
+
* \code
|
|
944
|
+
* #include <thrust/sort.h>
|
|
945
|
+
* #include <thrust/device_vector.h>
|
|
946
|
+
* #include <thrust/sort.h>
|
|
947
|
+
* #include <thrust/execution_policy.h>
|
|
948
|
+
* ...
|
|
949
|
+
* thrust::device_vector<int> v(6);
|
|
950
|
+
* v[0] = 1;
|
|
951
|
+
* v[1] = 4;
|
|
952
|
+
* v[2] = 2;
|
|
953
|
+
* v[3] = 8;
|
|
954
|
+
* v[4] = 5;
|
|
955
|
+
* v[5] = 7;
|
|
956
|
+
*
|
|
957
|
+
* bool result = thrust::is_sorted(thrust::device, v.begin(), v.end());
|
|
958
|
+
*
|
|
959
|
+
* // result == false
|
|
960
|
+
*
|
|
961
|
+
* thrust::sort(v.begin(), v.end());
|
|
962
|
+
* result = thrust::is_sorted(thrust::device, v.begin(), v.end());
|
|
963
|
+
*
|
|
964
|
+
* // result == true
|
|
965
|
+
* \endcode
|
|
966
|
+
*
|
|
967
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/is_sorted
|
|
968
|
+
* \see is_sorted_until
|
|
969
|
+
* \see \c sort
|
|
970
|
+
* \see \c stable_sort
|
|
971
|
+
* \see \c less<T>
|
|
972
|
+
*/
|
|
973
|
+
template <typename DerivedPolicy, typename ForwardIterator>
|
|
974
|
+
_CCCL_HOST_DEVICE bool is_sorted(
|
|
975
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec, ForwardIterator first, ForwardIterator last);
|
|
976
|
+
|
|
977
|
+
/*! \p is_sorted returns \c true if the range <tt>[first, last)</tt> is
|
|
978
|
+
* sorted in ascending order, and \c false otherwise.
|
|
979
|
+
*
|
|
980
|
+
* Specifically, this version of \p is_sorted returns \c false if for
|
|
981
|
+
* some iterator \c i in the range <tt>[first, last - 1)</tt> the
|
|
982
|
+
* expression <tt>*(i + 1) < *i</tt> is \c true.
|
|
983
|
+
*
|
|
984
|
+
* \param first The beginning of the sequence.
|
|
985
|
+
* \param last The end of the sequence.
|
|
986
|
+
* \return \c true, if the sequence is sorted; \c false, otherwise.
|
|
987
|
+
*
|
|
988
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
989
|
+
* Iterator</a>, \p ForwardIterator's \c value_type is a model of <a
|
|
990
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a>, and the ordering on
|
|
991
|
+
* objects of \p ForwardIterator's \c value_type is a <em>strict weak ordering</em>, as defined in the <a
|
|
992
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a> requirements.
|
|
993
|
+
*
|
|
994
|
+
*
|
|
995
|
+
* The following code demonstrates how to use \p is_sorted to test whether the
|
|
996
|
+
* contents of a \c device_vector are stored in ascending order.
|
|
997
|
+
*
|
|
998
|
+
* \code
|
|
999
|
+
* #include <thrust/sort.h>
|
|
1000
|
+
* #include <thrust/device_vector.h>
|
|
1001
|
+
* #include <thrust/sort.h>
|
|
1002
|
+
* ...
|
|
1003
|
+
* thrust::device_vector<int> v(6);
|
|
1004
|
+
* v[0] = 1;
|
|
1005
|
+
* v[1] = 4;
|
|
1006
|
+
* v[2] = 2;
|
|
1007
|
+
* v[3] = 8;
|
|
1008
|
+
* v[4] = 5;
|
|
1009
|
+
* v[5] = 7;
|
|
1010
|
+
*
|
|
1011
|
+
* bool result = thrust::is_sorted(v.begin(), v.end());
|
|
1012
|
+
*
|
|
1013
|
+
* // result == false
|
|
1014
|
+
*
|
|
1015
|
+
* thrust::sort(v.begin(), v.end());
|
|
1016
|
+
* result = thrust::is_sorted(v.begin(), v.end());
|
|
1017
|
+
*
|
|
1018
|
+
* // result == true
|
|
1019
|
+
* \endcode
|
|
1020
|
+
*
|
|
1021
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/is_sorted
|
|
1022
|
+
* \see is_sorted_until
|
|
1023
|
+
* \see \c sort
|
|
1024
|
+
* \see \c stable_sort
|
|
1025
|
+
* \see \c less<T>
|
|
1026
|
+
*/
|
|
1027
|
+
template <typename ForwardIterator>
|
|
1028
|
+
bool is_sorted(ForwardIterator first, ForwardIterator last);
|
|
1029
|
+
|
|
1030
|
+
/*! \p is_sorted returns \c true if the range <tt>[first, last)</tt> is sorted in ascending
|
|
1031
|
+
* order according to a user-defined comparison operation, and \c false otherwise.
|
|
1032
|
+
*
|
|
1033
|
+
* Specifically, this version of \p is_sorted returns \c false if for some iterator \c i in
|
|
1034
|
+
* the range <tt>[first, last - 1)</tt> the expression <tt>comp(*(i + 1), *i)</tt> is \c true.
|
|
1035
|
+
*
|
|
1036
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
1037
|
+
*
|
|
1038
|
+
* \param exec The execution policy to use for parallelization.
|
|
1039
|
+
* \param first The beginning of the sequence.
|
|
1040
|
+
* \param last The end of the sequence.
|
|
1041
|
+
* \param comp Comparison operator.
|
|
1042
|
+
* \return \c true, if the sequence is sorted according to comp; \c false, otherwise.
|
|
1043
|
+
*
|
|
1044
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
1045
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
1046
|
+
* Iterator</a>, and \p ForwardIterator's \c value_type is convertible to both \c StrictWeakOrdering's first and second
|
|
1047
|
+
* argument type. \tparam Compare is a model of <a
|
|
1048
|
+
* href="https://en.cppreference.com/w/cpp/concepts/strict_weak_order">Strict Weak Ordering</a>.
|
|
1049
|
+
*
|
|
1050
|
+
* The following code snippet demonstrates how to use \p is_sorted to test whether the
|
|
1051
|
+
* contents of a \c device_vector are stored in descending order using the \p thrust::device execution
|
|
1052
|
+
* policy for parallelization:
|
|
1053
|
+
*
|
|
1054
|
+
* \code
|
|
1055
|
+
* #include <thrust/sort.h>
|
|
1056
|
+
* #include <thrust/functional.h>
|
|
1057
|
+
* #include <thrust/device_vector.h>
|
|
1058
|
+
* #include <thrust/execution_policy.h>
|
|
1059
|
+
* ...
|
|
1060
|
+
* thrust::device_vector<int> v(6);
|
|
1061
|
+
* v[0] = 1;
|
|
1062
|
+
* v[1] = 4;
|
|
1063
|
+
* v[2] = 2;
|
|
1064
|
+
* v[3] = 8;
|
|
1065
|
+
* v[4] = 5;
|
|
1066
|
+
* v[5] = 7;
|
|
1067
|
+
*
|
|
1068
|
+
* ::cuda::std::greater<int> comp;
|
|
1069
|
+
* bool result = thrust::is_sorted(thrust::device, v.begin(), v.end(), comp);
|
|
1070
|
+
*
|
|
1071
|
+
* // result == false
|
|
1072
|
+
*
|
|
1073
|
+
* thrust::sort(v.begin(), v.end(), comp);
|
|
1074
|
+
* result = thrust::is_sorted(thrust::device, v.begin(), v.end(), comp);
|
|
1075
|
+
*
|
|
1076
|
+
* // result == true
|
|
1077
|
+
* \endcode
|
|
1078
|
+
*
|
|
1079
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/is_sorted
|
|
1080
|
+
* \see \c sort
|
|
1081
|
+
* \see \c stable_sort
|
|
1082
|
+
* \see \c less<T>
|
|
1083
|
+
*/
|
|
1084
|
+
template <typename DerivedPolicy, typename ForwardIterator, typename Compare>
|
|
1085
|
+
_CCCL_HOST_DEVICE bool
|
|
1086
|
+
is_sorted(const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
1087
|
+
ForwardIterator first,
|
|
1088
|
+
ForwardIterator last,
|
|
1089
|
+
Compare comp);
|
|
1090
|
+
|
|
1091
|
+
/*! \p is_sorted returns \c true if the range <tt>[first, last)</tt> is sorted in ascending
|
|
1092
|
+
* order according to a user-defined comparison operation, and \c false otherwise.
|
|
1093
|
+
*
|
|
1094
|
+
* Specifically, this version of \p is_sorted returns \c false if for some iterator \c i in
|
|
1095
|
+
* the range <tt>[first, last - 1)</tt> the expression <tt>comp(*(i + 1), *i)</tt> is \c true.
|
|
1096
|
+
*
|
|
1097
|
+
* \param first The beginning of the sequence.
|
|
1098
|
+
* \param last The end of the sequence.
|
|
1099
|
+
* \param comp Comparison operator.
|
|
1100
|
+
* \return \c true, if the sequence is sorted according to comp; \c false, otherwise.
|
|
1101
|
+
*
|
|
1102
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
1103
|
+
* Iterator</a>, and \p ForwardIterator's \c value_type is convertible to both \c StrictWeakOrdering's first and second
|
|
1104
|
+
* argument type.
|
|
1105
|
+
* \tparam Compare is a model of <a
|
|
1106
|
+
* href="https://en.cppreference.com/w/cpp/concepts/strict_weak_order">Strict Weak Ordering</a>.
|
|
1107
|
+
*
|
|
1108
|
+
* The following code snippet demonstrates how to use \p is_sorted to test whether the
|
|
1109
|
+
* contents of a \c device_vector are stored in descending order.
|
|
1110
|
+
*
|
|
1111
|
+
* \code
|
|
1112
|
+
* #include <thrust/sort.h>
|
|
1113
|
+
* #include <thrust/functional.h>
|
|
1114
|
+
* #include <thrust/device_vector.h>
|
|
1115
|
+
* ...
|
|
1116
|
+
* thrust::device_vector<int> v(6);
|
|
1117
|
+
* v[0] = 1;
|
|
1118
|
+
* v[1] = 4;
|
|
1119
|
+
* v[2] = 2;
|
|
1120
|
+
* v[3] = 8;
|
|
1121
|
+
* v[4] = 5;
|
|
1122
|
+
* v[5] = 7;
|
|
1123
|
+
*
|
|
1124
|
+
* ::cuda::std::greater<int> comp;
|
|
1125
|
+
* bool result = thrust::is_sorted(v.begin(), v.end(), comp);
|
|
1126
|
+
*
|
|
1127
|
+
* // result == false
|
|
1128
|
+
*
|
|
1129
|
+
* thrust::sort(v.begin(), v.end(), comp);
|
|
1130
|
+
* result = thrust::is_sorted(v.begin(), v.end(), comp);
|
|
1131
|
+
*
|
|
1132
|
+
* // result == true
|
|
1133
|
+
* \endcode
|
|
1134
|
+
*
|
|
1135
|
+
* \see https://en.cppreference.com/w/cpp/algorithm/is_sorted
|
|
1136
|
+
* \see \c sort
|
|
1137
|
+
* \see \c stable_sort
|
|
1138
|
+
* \see \c less<T>
|
|
1139
|
+
*/
|
|
1140
|
+
template <typename ForwardIterator, typename Compare>
|
|
1141
|
+
bool is_sorted(ForwardIterator first, ForwardIterator last, Compare comp);
|
|
1142
|
+
|
|
1143
|
+
/*! This version of \p is_sorted_until returns the last iterator \c i in <tt>[first,last]</tt> for
|
|
1144
|
+
* which the range <tt>[first,last)</tt> is sorted using \c operator<. If <tt>distance(first,last) < 2</tt>,
|
|
1145
|
+
* \p is_sorted_until simply returns \p last.
|
|
1146
|
+
*
|
|
1147
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
1148
|
+
*
|
|
1149
|
+
* \param exec The execution policy to use for parallelization.
|
|
1150
|
+
* \param first The beginning of the range of interest.
|
|
1151
|
+
* \param last The end of the range of interest.
|
|
1152
|
+
* \return The last iterator in the input range for which it is sorted.
|
|
1153
|
+
*
|
|
1154
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
1155
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
1156
|
+
* Iterator</a> and \p ForwardIterator's \c value_type is a model of <a
|
|
1157
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a>.
|
|
1158
|
+
*
|
|
1159
|
+
* The following code snippet demonstrates how to use \p is_sorted_until to find the first position
|
|
1160
|
+
* in an array where the data becomes unsorted using the \p thrust::host execution policy for
|
|
1161
|
+
* parallelization:
|
|
1162
|
+
*
|
|
1163
|
+
* \code
|
|
1164
|
+
* #include <thrust/sort.h>
|
|
1165
|
+
* #include <thrust/execution_policy.h>
|
|
1166
|
+
*
|
|
1167
|
+
* ...
|
|
1168
|
+
*
|
|
1169
|
+
* int A[8] = {0, 1, 2, 3, 0, 1, 2, 3};
|
|
1170
|
+
*
|
|
1171
|
+
* int * B = thrust::is_sorted_until(thrust::host, A, A + 8);
|
|
1172
|
+
*
|
|
1173
|
+
* // B - A is 4
|
|
1174
|
+
* // [A, B) is sorted
|
|
1175
|
+
* \endcode
|
|
1176
|
+
*
|
|
1177
|
+
* \see \p is_sorted
|
|
1178
|
+
* \see \p sort
|
|
1179
|
+
* \see \p sort_by_key
|
|
1180
|
+
* \see \p stable_sort
|
|
1181
|
+
* \see \p stable_sort_by_key
|
|
1182
|
+
*/
|
|
1183
|
+
template <typename DerivedPolicy, typename ForwardIterator>
|
|
1184
|
+
_CCCL_HOST_DEVICE ForwardIterator is_sorted_until(
|
|
1185
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec, ForwardIterator first, ForwardIterator last);
|
|
1186
|
+
|
|
1187
|
+
/*! This version of \p is_sorted_until returns the last iterator \c i in <tt>[first,last]</tt> for
|
|
1188
|
+
* which the range <tt>[first,last)</tt> is sorted using \c operator<. If <tt>distance(first,last) < 2</tt>,
|
|
1189
|
+
* \p is_sorted_until simply returns \p last.
|
|
1190
|
+
*
|
|
1191
|
+
* \param first The beginning of the range of interest.
|
|
1192
|
+
* \param last The end of the range of interest.
|
|
1193
|
+
* \return The last iterator in the input range for which it is sorted.
|
|
1194
|
+
*
|
|
1195
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
1196
|
+
* Iterator</a> and \p ForwardIterator's \c value_type is a model of <a
|
|
1197
|
+
* href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThan Comparable</a>.
|
|
1198
|
+
*
|
|
1199
|
+
* The following code snippet demonstrates how to use \p is_sorted_until to find the first position
|
|
1200
|
+
* in an array where the data becomes unsorted:
|
|
1201
|
+
*
|
|
1202
|
+
* \code
|
|
1203
|
+
* #include <thrust/sort.h>
|
|
1204
|
+
*
|
|
1205
|
+
* ...
|
|
1206
|
+
*
|
|
1207
|
+
* int A[8] = {0, 1, 2, 3, 0, 1, 2, 3};
|
|
1208
|
+
*
|
|
1209
|
+
* int * B = thrust::is_sorted_until(A, A + 8);
|
|
1210
|
+
*
|
|
1211
|
+
* // B - A is 4
|
|
1212
|
+
* // [A, B) is sorted
|
|
1213
|
+
* \endcode
|
|
1214
|
+
*
|
|
1215
|
+
* \see \p is_sorted
|
|
1216
|
+
* \see \p sort
|
|
1217
|
+
* \see \p sort_by_key
|
|
1218
|
+
* \see \p stable_sort
|
|
1219
|
+
* \see \p stable_sort_by_key
|
|
1220
|
+
*/
|
|
1221
|
+
template <typename ForwardIterator>
|
|
1222
|
+
ForwardIterator is_sorted_until(ForwardIterator first, ForwardIterator last);
|
|
1223
|
+
|
|
1224
|
+
/*! This version of \p is_sorted_until returns the last iterator \c i in <tt>[first,last]</tt> for
|
|
1225
|
+
* which the range <tt>[first,last)</tt> is sorted using the function object \c comp. If <tt>distance(first,last) <
|
|
1226
|
+
* 2</tt>, \p is_sorted_until simply returns \p last.
|
|
1227
|
+
*
|
|
1228
|
+
* The algorithm's execution is parallelized as determined by \p exec.
|
|
1229
|
+
*
|
|
1230
|
+
* \param exec The execution policy to use for parallelization:
|
|
1231
|
+
* \param first The beginning of the range of interest.
|
|
1232
|
+
* \param last The end of the range of interest.
|
|
1233
|
+
* \param comp The function object to use for comparison.
|
|
1234
|
+
* \return The last iterator in the input range for which it is sorted.
|
|
1235
|
+
*
|
|
1236
|
+
* \tparam DerivedPolicy The name of the derived execution policy.
|
|
1237
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
1238
|
+
* Iterator</a> and \p ForwardIterator's \c value_type is convertible to \p Compare's argument type. \tparam Compare
|
|
1239
|
+
* is a model of <a href="https://en.cppreference.com/w/cpp/concepts/strict_weak_order">Strict Weak Ordering</a>.
|
|
1240
|
+
*
|
|
1241
|
+
* The following code snippet demonstrates how to use \p is_sorted_until to find the first position
|
|
1242
|
+
* in an array where the data becomes unsorted in descending order using the \p thrust::host execution
|
|
1243
|
+
* policy for parallelization:
|
|
1244
|
+
*
|
|
1245
|
+
* \code
|
|
1246
|
+
* #include <thrust/sort.h>
|
|
1247
|
+
* #include <thrust/functional.h>
|
|
1248
|
+
* #include <thrust/execution_policy.h>
|
|
1249
|
+
*
|
|
1250
|
+
* ...
|
|
1251
|
+
*
|
|
1252
|
+
* int A[8] = {3, 2, 1, 0, 3, 2, 1, 0};
|
|
1253
|
+
*
|
|
1254
|
+
* ::cuda::std::greater<int> comp;
|
|
1255
|
+
* int * B = thrust::is_sorted_until(thrust::host, A, A + 8, comp);
|
|
1256
|
+
*
|
|
1257
|
+
* // B - A is 4
|
|
1258
|
+
* // [A, B) is sorted in descending order
|
|
1259
|
+
* \endcode
|
|
1260
|
+
*
|
|
1261
|
+
* \see \p is_sorted
|
|
1262
|
+
* \see \p sort
|
|
1263
|
+
* \see \p sort_by_key
|
|
1264
|
+
* \see \p stable_sort
|
|
1265
|
+
* \see \p stable_sort_by_key
|
|
1266
|
+
*/
|
|
1267
|
+
template <typename DerivedPolicy, typename ForwardIterator, typename Compare>
|
|
1268
|
+
_CCCL_HOST_DEVICE ForwardIterator is_sorted_until(
|
|
1269
|
+
const thrust::detail::execution_policy_base<DerivedPolicy>& exec,
|
|
1270
|
+
ForwardIterator first,
|
|
1271
|
+
ForwardIterator last,
|
|
1272
|
+
Compare comp);
|
|
1273
|
+
|
|
1274
|
+
/*! This version of \p is_sorted_until returns the last iterator \c i in <tt>[first,last]</tt> for
|
|
1275
|
+
* which the range <tt>[first,last)</tt> is sorted using the function object \c comp. If <tt>distance(first,last) <
|
|
1276
|
+
* 2</tt>, \p is_sorted_until simply returns \p last.
|
|
1277
|
+
*
|
|
1278
|
+
* \param first The beginning of the range of interest.
|
|
1279
|
+
* \param last The end of the range of interest.
|
|
1280
|
+
* \param comp The function object to use for comparison.
|
|
1281
|
+
* \return The last iterator in the input range for which it is sorted.
|
|
1282
|
+
*
|
|
1283
|
+
* \tparam ForwardIterator is a model of <a href="https://en.cppreference.com/w/cpp/iterator/forward_iterator">Forward
|
|
1284
|
+
* Iterator</a> and \p ForwardIterator's \c value_type is convertible to \p Compare's argument type. \tparam Compare
|
|
1285
|
+
* is a model of <a href="https://en.cppreference.com/w/cpp/concepts/strict_weak_order">Strict Weak Ordering</a>.
|
|
1286
|
+
*
|
|
1287
|
+
* The following code snippet demonstrates how to use \p is_sorted_until to find the first position
|
|
1288
|
+
* in an array where the data becomes unsorted in descending order:
|
|
1289
|
+
*
|
|
1290
|
+
* \code
|
|
1291
|
+
* #include <thrust/sort.h>
|
|
1292
|
+
* #include <thrust/functional.h>
|
|
1293
|
+
*
|
|
1294
|
+
* ...
|
|
1295
|
+
*
|
|
1296
|
+
* int A[8] = {3, 2, 1, 0, 3, 2, 1, 0};
|
|
1297
|
+
*
|
|
1298
|
+
* ::cuda::std::greater<int> comp;
|
|
1299
|
+
* int * B = thrust::is_sorted_until(A, A + 8, comp);
|
|
1300
|
+
*
|
|
1301
|
+
* // B - A is 4
|
|
1302
|
+
* // [A, B) is sorted in descending order
|
|
1303
|
+
* \endcode
|
|
1304
|
+
*
|
|
1305
|
+
* \see \p is_sorted
|
|
1306
|
+
* \see \p sort
|
|
1307
|
+
* \see \p sort_by_key
|
|
1308
|
+
* \see \p stable_sort
|
|
1309
|
+
* \see \p stable_sort_by_key
|
|
1310
|
+
*/
|
|
1311
|
+
template <typename ForwardIterator, typename Compare>
|
|
1312
|
+
ForwardIterator is_sorted_until(ForwardIterator first, ForwardIterator last, Compare comp);
|
|
1313
|
+
|
|
1314
|
+
/*! \} // end predicates
|
|
1315
|
+
* \} // end reductions
|
|
1316
|
+
*/
|
|
1317
|
+
|
|
1318
|
+
THRUST_NAMESPACE_END
|
|
1319
|
+
|
|
1320
|
+
#include <thrust/detail/sort.inl>
|