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,2509 @@
|
|
|
1
|
+
// -*- C++ -*-
|
|
2
|
+
//===---------------------------- chrono ----------------------------------===//
|
|
3
|
+
//
|
|
4
|
+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
5
|
+
// See https://llvm.org/LICENSE.txt for license information.
|
|
6
|
+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
7
|
+
//
|
|
8
|
+
//===----------------------------------------------------------------------===//
|
|
9
|
+
|
|
10
|
+
#ifndef _LIBCUDACXX_CHRONO
|
|
11
|
+
#define _LIBCUDACXX_CHRONO
|
|
12
|
+
|
|
13
|
+
/*
|
|
14
|
+
chrono synopsis
|
|
15
|
+
|
|
16
|
+
namespace std
|
|
17
|
+
{
|
|
18
|
+
namespace chrono
|
|
19
|
+
{
|
|
20
|
+
|
|
21
|
+
template <class ToDuration, class Rep, class Period>
|
|
22
|
+
constexpr
|
|
23
|
+
ToDuration
|
|
24
|
+
duration_cast(const duration<Rep, Period>& fd);
|
|
25
|
+
|
|
26
|
+
template <class Rep> struct treat_as_floating_point : is_floating_point<Rep> {};
|
|
27
|
+
|
|
28
|
+
template <class Rep> inline constexpr bool treat_as_floating_point_v
|
|
29
|
+
= treat_as_floating_point<Rep>::value; // C++17
|
|
30
|
+
|
|
31
|
+
template <class Rep>
|
|
32
|
+
struct duration_values
|
|
33
|
+
{
|
|
34
|
+
public:
|
|
35
|
+
static constexpr Rep zero(); // noexcept in C++20
|
|
36
|
+
static constexpr Rep max(); // noexcept in C++20
|
|
37
|
+
static constexpr Rep min(); // noexcept in C++20
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// duration
|
|
41
|
+
|
|
42
|
+
template <class Rep, class Period = ratio<1>>
|
|
43
|
+
class duration
|
|
44
|
+
{
|
|
45
|
+
static_assert(!__is_cuda_std_duration_v<Rep>, "A duration representation can not be a duration");
|
|
46
|
+
static_assert(__is_cuda_std_ratio_v<Period>, "Second template parameter of duration must be a std::ratio");
|
|
47
|
+
static_assert(Period::num > 0, "duration period must be positive");
|
|
48
|
+
public:
|
|
49
|
+
typedef Rep rep;
|
|
50
|
+
typedef typename _Period::type period;
|
|
51
|
+
|
|
52
|
+
constexpr duration() = default;
|
|
53
|
+
template <class Rep2>
|
|
54
|
+
constexpr explicit duration(const Rep2& r,
|
|
55
|
+
typename enable_if
|
|
56
|
+
<
|
|
57
|
+
is_convertible<Rep2, rep>::value &&
|
|
58
|
+
(treat_as_floating_point<rep>::value ||
|
|
59
|
+
!treat_as_floating_point<rep>::value && !treat_as_floating_point<Rep2>::value)
|
|
60
|
+
>::type* = 0);
|
|
61
|
+
|
|
62
|
+
// conversions
|
|
63
|
+
template <class Rep2, class Period2>
|
|
64
|
+
constexpr duration(const duration<Rep2, Period2>& d,
|
|
65
|
+
typename enable_if
|
|
66
|
+
<
|
|
67
|
+
treat_as_floating_point<rep>::value ||
|
|
68
|
+
ratio_divide<Period2, period>::type::den == 1
|
|
69
|
+
>::type* = 0);
|
|
70
|
+
|
|
71
|
+
// observer
|
|
72
|
+
|
|
73
|
+
constexpr rep count() const;
|
|
74
|
+
|
|
75
|
+
// arithmetic
|
|
76
|
+
|
|
77
|
+
constexpr common_type<duration>::type operator+() const;
|
|
78
|
+
constexpr common_type<duration>::type operator-() const;
|
|
79
|
+
constexpr duration& operator++(); // constexpr in C++17
|
|
80
|
+
constexpr duration operator++(int); // constexpr in C++17
|
|
81
|
+
constexpr duration& operator--(); // constexpr in C++17
|
|
82
|
+
constexpr duration operator--(int); // constexpr in C++17
|
|
83
|
+
|
|
84
|
+
constexpr duration& operator+=(const duration& d); // constexpr in C++17
|
|
85
|
+
constexpr duration& operator-=(const duration& d); // constexpr in C++17
|
|
86
|
+
|
|
87
|
+
duration& operator*=(const rep& rhs); // constexpr in C++17
|
|
88
|
+
duration& operator/=(const rep& rhs); // constexpr in C++17
|
|
89
|
+
duration& operator%=(const rep& rhs); // constexpr in C++17
|
|
90
|
+
duration& operator%=(const duration& rhs); // constexpr in C++17
|
|
91
|
+
|
|
92
|
+
// special values
|
|
93
|
+
|
|
94
|
+
static constexpr duration zero(); // noexcept in C++20
|
|
95
|
+
static constexpr duration min(); // noexcept in C++20
|
|
96
|
+
static constexpr duration max(); // noexcept in C++20
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
typedef duration<long long, nano> nanoseconds;
|
|
100
|
+
typedef duration<long long, micro> microseconds;
|
|
101
|
+
typedef duration<long long, milli> milliseconds;
|
|
102
|
+
typedef duration<long long > seconds;
|
|
103
|
+
typedef duration< long, ratio< 60> > minutes;
|
|
104
|
+
typedef duration< long, ratio<3600> > hours;
|
|
105
|
+
|
|
106
|
+
template <class Clock, class Duration = typename Clock::duration>
|
|
107
|
+
class time_point
|
|
108
|
+
{
|
|
109
|
+
public:
|
|
110
|
+
typedef Clock clock;
|
|
111
|
+
typedef Duration duration;
|
|
112
|
+
typedef typename duration::rep rep;
|
|
113
|
+
typedef typename duration::period period;
|
|
114
|
+
private:
|
|
115
|
+
duration d_; // exposition only
|
|
116
|
+
|
|
117
|
+
public:
|
|
118
|
+
time_point(); // has value "epoch" // constexpr in C++14
|
|
119
|
+
explicit time_point(const duration& d); // same as time_point() + d // constexpr in C++14
|
|
120
|
+
|
|
121
|
+
// conversions
|
|
122
|
+
template <class Duration2>
|
|
123
|
+
time_point(const time_point<clock, Duration2>& t); // constexpr in C++14
|
|
124
|
+
|
|
125
|
+
// observer
|
|
126
|
+
|
|
127
|
+
duration time_since_epoch() const; // constexpr in C++14
|
|
128
|
+
|
|
129
|
+
// arithmetic
|
|
130
|
+
|
|
131
|
+
time_point& operator+=(const duration& d); // constexpr in C++17
|
|
132
|
+
time_point& operator-=(const duration& d); // constexpr in C++17
|
|
133
|
+
|
|
134
|
+
// special values
|
|
135
|
+
|
|
136
|
+
static constexpr time_point min(); // noexcept in C++20
|
|
137
|
+
static constexpr time_point max(); // noexcept in C++20
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
} // chrono
|
|
141
|
+
|
|
142
|
+
// common_type traits
|
|
143
|
+
template <class Rep1, class Period1, class Rep2, class Period2>
|
|
144
|
+
struct common_type<chrono::duration<Rep1, Period1>, chrono::duration<Rep2, Period2>>;
|
|
145
|
+
|
|
146
|
+
template <class Clock, class Duration1, class Duration2>
|
|
147
|
+
struct common_type<chrono::time_point<Clock, Duration1>, chrono::time_point<Clock, Duration2>>;
|
|
148
|
+
|
|
149
|
+
namespace chrono {
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
template<class T> struct is_clock; // C++20
|
|
153
|
+
template<class T> inline constexpr bool is_clock_v = is_clock<T>::value; // C++20
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
// duration arithmetic
|
|
157
|
+
template <class Rep1, class Period1, class Rep2, class Period2>
|
|
158
|
+
constexpr
|
|
159
|
+
typename common_type<duration<Rep1, Period1>, duration<Rep2, Period2>>::type
|
|
160
|
+
operator+(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);
|
|
161
|
+
template <class Rep1, class Period1, class Rep2, class Period2>
|
|
162
|
+
constexpr
|
|
163
|
+
typename common_type<duration<Rep1, Period1>, duration<Rep2, Period2>>::type
|
|
164
|
+
operator-(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);
|
|
165
|
+
template <class Rep1, class Period, class Rep2>
|
|
166
|
+
constexpr
|
|
167
|
+
duration<typename common_type<Rep1, Rep2>::type, Period>
|
|
168
|
+
operator*(const duration<Rep1, Period>& d, const Rep2& s);
|
|
169
|
+
template <class Rep1, class Period, class Rep2>
|
|
170
|
+
constexpr
|
|
171
|
+
duration<typename common_type<Rep1, Rep2>::type, Period>
|
|
172
|
+
operator*(const Rep1& s, const duration<Rep2, Period>& d);
|
|
173
|
+
template <class Rep1, class Period, class Rep2>
|
|
174
|
+
constexpr
|
|
175
|
+
duration<typename common_type<Rep1, Rep2>::type, Period>
|
|
176
|
+
operator/(const duration<Rep1, Period>& d, const Rep2& s);
|
|
177
|
+
template <class Rep1, class Period1, class Rep2, class Period2>
|
|
178
|
+
constexpr
|
|
179
|
+
typename common_type<Rep1, Rep2>::type
|
|
180
|
+
operator/(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);
|
|
181
|
+
|
|
182
|
+
// duration comparisons
|
|
183
|
+
template <class Rep1, class Period1, class Rep2, class Period2>
|
|
184
|
+
constexpr
|
|
185
|
+
bool operator==(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);
|
|
186
|
+
template <class Rep1, class Period1, class Rep2, class Period2>
|
|
187
|
+
constexpr
|
|
188
|
+
bool operator!=(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);
|
|
189
|
+
template <class Rep1, class Period1, class Rep2, class Period2>
|
|
190
|
+
constexpr
|
|
191
|
+
bool operator< (const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);
|
|
192
|
+
template <class Rep1, class Period1, class Rep2, class Period2>
|
|
193
|
+
constexpr
|
|
194
|
+
bool operator<=(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);
|
|
195
|
+
template <class Rep1, class Period1, class Rep2, class Period2>
|
|
196
|
+
constexpr
|
|
197
|
+
bool operator> (const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);
|
|
198
|
+
template <class Rep1, class Period1, class Rep2, class Period2>
|
|
199
|
+
constexpr
|
|
200
|
+
bool operator>=(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);
|
|
201
|
+
|
|
202
|
+
// duration_cast
|
|
203
|
+
template <class ToDuration, class Rep, class Period>
|
|
204
|
+
ToDuration duration_cast(const duration<Rep, Period>& d);
|
|
205
|
+
|
|
206
|
+
template <class ToDuration, class Rep, class Period>
|
|
207
|
+
constexpr ToDuration floor(const duration<Rep, Period>& d); // C++17
|
|
208
|
+
template <class ToDuration, class Rep, class Period>
|
|
209
|
+
constexpr ToDuration ceil(const duration<Rep, Period>& d); // C++17
|
|
210
|
+
template <class ToDuration, class Rep, class Period>
|
|
211
|
+
constexpr ToDuration round(const duration<Rep, Period>& d); // C++17
|
|
212
|
+
|
|
213
|
+
// duration I/O is elsewhere
|
|
214
|
+
|
|
215
|
+
// time_point arithmetic (all constexpr in C++14)
|
|
216
|
+
template <class Clock, class Duration1, class Rep2, class Period2>
|
|
217
|
+
time_point<Clock, typename common_type<Duration1, duration<Rep2, Period2>>::type>
|
|
218
|
+
operator+(const time_point<Clock, Duration1>& lhs, const duration<Rep2, Period2>& rhs);
|
|
219
|
+
template <class Rep1, class Period1, class Clock, class Duration2>
|
|
220
|
+
time_point<Clock, typename common_type<duration<Rep1, Period1>, Duration2>::type>
|
|
221
|
+
operator+(const duration<Rep1, Period1>& lhs, const time_point<Clock, Duration2>& rhs);
|
|
222
|
+
template <class Clock, class Duration1, class Rep2, class Period2>
|
|
223
|
+
time_point<Clock, typename common_type<Duration1, duration<Rep2, Period2>>::type>
|
|
224
|
+
operator-(const time_point<Clock, Duration1>& lhs, const duration<Rep2, Period2>& rhs);
|
|
225
|
+
template <class Clock, class Duration1, class Duration2>
|
|
226
|
+
typename common_type<Duration1, Duration2>::type
|
|
227
|
+
operator-(const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);
|
|
228
|
+
|
|
229
|
+
// time_point comparisons (all constexpr in C++14)
|
|
230
|
+
template <class Clock, class Duration1, class Duration2>
|
|
231
|
+
bool operator==(const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);
|
|
232
|
+
template <class Clock, class Duration1, class Duration2>
|
|
233
|
+
bool operator!=(const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);
|
|
234
|
+
template <class Clock, class Duration1, class Duration2>
|
|
235
|
+
bool operator< (const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);
|
|
236
|
+
template <class Clock, class Duration1, class Duration2>
|
|
237
|
+
bool operator<=(const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);
|
|
238
|
+
template <class Clock, class Duration1, class Duration2>
|
|
239
|
+
bool operator> (const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);
|
|
240
|
+
template <class Clock, class Duration1, class Duration2>
|
|
241
|
+
bool operator>=(const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);
|
|
242
|
+
|
|
243
|
+
// time_point_cast (constexpr in C++14)
|
|
244
|
+
|
|
245
|
+
template <class ToDuration, class Clock, class Duration>
|
|
246
|
+
time_point<Clock, ToDuration> time_point_cast(const time_point<Clock, Duration>& t);
|
|
247
|
+
|
|
248
|
+
template <class ToDuration, class Clock, class Duration>
|
|
249
|
+
constexpr time_point<Clock, ToDuration>
|
|
250
|
+
floor(const time_point<Clock, Duration>& tp); // C++17
|
|
251
|
+
|
|
252
|
+
template <class ToDuration, class Clock, class Duration>
|
|
253
|
+
constexpr time_point<Clock, ToDuration>
|
|
254
|
+
ceil(const time_point<Clock, Duration>& tp); // C++17
|
|
255
|
+
|
|
256
|
+
template <class ToDuration, class Clock, class Duration>
|
|
257
|
+
constexpr time_point<Clock, ToDuration>
|
|
258
|
+
round(const time_point<Clock, Duration>& tp); // C++17
|
|
259
|
+
|
|
260
|
+
template <class Rep, class Period>
|
|
261
|
+
constexpr duration<Rep, Period> abs(duration<Rep, Period> d); // C++17
|
|
262
|
+
|
|
263
|
+
// Clocks
|
|
264
|
+
|
|
265
|
+
class system_clock
|
|
266
|
+
{
|
|
267
|
+
public:
|
|
268
|
+
typedef microseconds duration;
|
|
269
|
+
typedef duration::rep rep;
|
|
270
|
+
typedef duration::period period;
|
|
271
|
+
typedef chrono::time_point<system_clock> time_point;
|
|
272
|
+
static const bool is_steady = false; // constexpr in C++14
|
|
273
|
+
|
|
274
|
+
static time_point now() noexcept;
|
|
275
|
+
static time_t to_time_t (const time_point& __t) noexcept;
|
|
276
|
+
static time_point from_time_t(time_t __t) noexcept;
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
template <class Duration>
|
|
280
|
+
using sys_time = time_point<system_clock, Duration>; // C++20
|
|
281
|
+
using sys_seconds = sys_time<seconds>; // C++20
|
|
282
|
+
using sys_days = sys_time<days>; // C++20
|
|
283
|
+
|
|
284
|
+
class utc_clock; // C++20
|
|
285
|
+
|
|
286
|
+
template <class Duration>
|
|
287
|
+
using utc_time = time_point<utc_clock, Duration>; // C++20
|
|
288
|
+
using utc_seconds = utc_time<seconds>; // C++20
|
|
289
|
+
|
|
290
|
+
class tai_clock; // C++20
|
|
291
|
+
|
|
292
|
+
template <class Duration>
|
|
293
|
+
using tai_time = time_point<tai_clock, Duration>; // C++20
|
|
294
|
+
using tai_seconds = tai_time<seconds>; // C++20
|
|
295
|
+
|
|
296
|
+
class file_clock; // C++20
|
|
297
|
+
|
|
298
|
+
template<class Duration>
|
|
299
|
+
using file_time = time_point<file_clock, Duration>; // C++20
|
|
300
|
+
|
|
301
|
+
class steady_clock
|
|
302
|
+
{
|
|
303
|
+
public:
|
|
304
|
+
typedef nanoseconds duration;
|
|
305
|
+
typedef duration::rep rep;
|
|
306
|
+
typedef duration::period period;
|
|
307
|
+
typedef chrono::time_point<steady_clock, duration> time_point;
|
|
308
|
+
static const bool is_steady = true; // constexpr in C++14
|
|
309
|
+
|
|
310
|
+
static time_point now() noexcept;
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
typedef steady_clock high_resolution_clock;
|
|
314
|
+
|
|
315
|
+
// 25.7.8, local time // C++20
|
|
316
|
+
struct local_t {};
|
|
317
|
+
template<class Duration>
|
|
318
|
+
using local_time = time_point<local_t, Duration>;
|
|
319
|
+
using local_seconds = local_time<seconds>;
|
|
320
|
+
using local_days = local_time<days>;
|
|
321
|
+
|
|
322
|
+
// 25.7.9, time_point conversions template<class DestClock, class SourceClock> // C++20
|
|
323
|
+
struct clock_time_conversion;
|
|
324
|
+
|
|
325
|
+
template<class DestClock, class SourceClock, class Duration>
|
|
326
|
+
auto clock_cast(const time_point<SourceClock, Duration>& t);
|
|
327
|
+
|
|
328
|
+
// 25.8.2, class last_spec // C++20
|
|
329
|
+
struct last_spec;
|
|
330
|
+
|
|
331
|
+
// 25.8.3, class day // C++20
|
|
332
|
+
|
|
333
|
+
class day;
|
|
334
|
+
constexpr bool operator==(const day& x, const day& y) noexcept;
|
|
335
|
+
constexpr bool operator!=(const day& x, const day& y) noexcept;
|
|
336
|
+
constexpr bool operator< (const day& x, const day& y) noexcept;
|
|
337
|
+
constexpr bool operator> (const day& x, const day& y) noexcept;
|
|
338
|
+
constexpr bool operator<=(const day& x, const day& y) noexcept;
|
|
339
|
+
constexpr bool operator>=(const day& x, const day& y) noexcept;
|
|
340
|
+
constexpr day operator+(const day& x, const days& y) noexcept;
|
|
341
|
+
constexpr day operator+(const days& x, const day& y) noexcept;
|
|
342
|
+
constexpr day operator-(const day& x, const days& y) noexcept;
|
|
343
|
+
constexpr days operator-(const day& x, const day& y) noexcept;
|
|
344
|
+
|
|
345
|
+
// 25.8.4, class month // C++20
|
|
346
|
+
class month;
|
|
347
|
+
constexpr bool operator==(const month& x, const month& y) noexcept;
|
|
348
|
+
constexpr bool operator!=(const month& x, const month& y) noexcept;
|
|
349
|
+
constexpr bool operator< (const month& x, const month& y) noexcept;
|
|
350
|
+
constexpr bool operator> (const month& x, const month& y) noexcept;
|
|
351
|
+
constexpr bool operator<=(const month& x, const month& y) noexcept;
|
|
352
|
+
constexpr bool operator>=(const month& x, const month& y) noexcept;
|
|
353
|
+
constexpr month operator+(const month& x, const months& y) noexcept;
|
|
354
|
+
constexpr month operator+(const months& x, const month& y) noexcept;
|
|
355
|
+
constexpr month operator-(const month& x, const months& y) noexcept;
|
|
356
|
+
constexpr months operator-(const month& x, const month& y) noexcept;
|
|
357
|
+
|
|
358
|
+
// 25.8.5, class year // C++20
|
|
359
|
+
class year;
|
|
360
|
+
constexpr bool operator==(const year& x, const year& y) noexcept;
|
|
361
|
+
constexpr bool operator!=(const year& x, const year& y) noexcept;
|
|
362
|
+
constexpr bool operator< (const year& x, const year& y) noexcept;
|
|
363
|
+
constexpr bool operator> (const year& x, const year& y) noexcept;
|
|
364
|
+
constexpr bool operator<=(const year& x, const year& y) noexcept;
|
|
365
|
+
constexpr bool operator>=(const year& x, const year& y) noexcept;
|
|
366
|
+
constexpr year operator+(const year& x, const years& y) noexcept;
|
|
367
|
+
constexpr year operator+(const years& x, const year& y) noexcept;
|
|
368
|
+
constexpr year operator-(const year& x, const years& y) noexcept;
|
|
369
|
+
constexpr years operator-(const year& x, const year& y) noexcept;
|
|
370
|
+
|
|
371
|
+
// 25.8.6, class weekday // C++20
|
|
372
|
+
class weekday;
|
|
373
|
+
|
|
374
|
+
constexpr bool operator==(const weekday& x, const weekday& y) noexcept;
|
|
375
|
+
constexpr bool operator!=(const weekday& x, const weekday& y) noexcept;
|
|
376
|
+
constexpr weekday operator+(const weekday& x, const days& y) noexcept;
|
|
377
|
+
constexpr weekday operator+(const days& x, const weekday& y) noexcept;
|
|
378
|
+
constexpr weekday operator-(const weekday& x, const days& y) noexcept;
|
|
379
|
+
constexpr days operator-(const weekday& x, const weekday& y) noexcept;
|
|
380
|
+
|
|
381
|
+
// 25.8.7, class weekday_indexed // C++20
|
|
382
|
+
|
|
383
|
+
class weekday_indexed;
|
|
384
|
+
constexpr bool operator==(const weekday_indexed& x, const weekday_indexed& y) noexcept;
|
|
385
|
+
constexpr bool operator!=(const weekday_indexed& x, const weekday_indexed& y) noexcept;
|
|
386
|
+
|
|
387
|
+
// 25.8.8, class weekday_last // C++20
|
|
388
|
+
class weekday_last;
|
|
389
|
+
|
|
390
|
+
constexpr bool operator==(const weekday_last& x, const weekday_last& y) noexcept;
|
|
391
|
+
constexpr bool operator!=(const weekday_last& x, const weekday_last& y) noexcept;
|
|
392
|
+
|
|
393
|
+
// 25.8.9, class month_day // C++20
|
|
394
|
+
class month_day;
|
|
395
|
+
|
|
396
|
+
constexpr bool operator==(const month_day& x, const month_day& y) noexcept;
|
|
397
|
+
constexpr bool operator!=(const month_day& x, const month_day& y) noexcept;
|
|
398
|
+
constexpr bool operator< (const month_day& x, const month_day& y) noexcept;
|
|
399
|
+
constexpr bool operator> (const month_day& x, const month_day& y) noexcept;
|
|
400
|
+
constexpr bool operator<=(const month_day& x, const month_day& y) noexcept;
|
|
401
|
+
constexpr bool operator>=(const month_day& x, const month_day& y) noexcept;
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
// 25.8.10, class month_day_last // C++20
|
|
405
|
+
class month_day_last;
|
|
406
|
+
|
|
407
|
+
constexpr bool operator==(const month_day_last& x, const month_day_last& y) noexcept;
|
|
408
|
+
constexpr bool operator!=(const month_day_last& x, const month_day_last& y) noexcept;
|
|
409
|
+
constexpr bool operator< (const month_day_last& x, const month_day_last& y) noexcept;
|
|
410
|
+
constexpr bool operator> (const month_day_last& x, const month_day_last& y) noexcept;
|
|
411
|
+
constexpr bool operator<=(const month_day_last& x, const month_day_last& y) noexcept;
|
|
412
|
+
constexpr bool operator>=(const month_day_last& x, const month_day_last& y) noexcept;
|
|
413
|
+
|
|
414
|
+
// 25.8.11, class month_weekday // C++20
|
|
415
|
+
class month_weekday;
|
|
416
|
+
|
|
417
|
+
constexpr bool operator==(const month_weekday& x, const month_weekday& y) noexcept;
|
|
418
|
+
constexpr bool operator!=(const month_weekday& x, const month_weekday& y) noexcept;
|
|
419
|
+
|
|
420
|
+
// 25.8.12, class month_weekday_last // C++20
|
|
421
|
+
class month_weekday_last;
|
|
422
|
+
|
|
423
|
+
constexpr bool operator==(const month_weekday_last& x, const month_weekday_last& y) noexcept;
|
|
424
|
+
constexpr bool operator!=(const month_weekday_last& x, const month_weekday_last& y) noexcept;
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
// 25.8.13, class year_month // C++20
|
|
428
|
+
class year_month;
|
|
429
|
+
|
|
430
|
+
constexpr bool operator==(const year_month& x, const year_month& y) noexcept;
|
|
431
|
+
constexpr bool operator!=(const year_month& x, const year_month& y) noexcept;
|
|
432
|
+
constexpr bool operator< (const year_month& x, const year_month& y) noexcept;
|
|
433
|
+
constexpr bool operator> (const year_month& x, const year_month& y) noexcept;
|
|
434
|
+
constexpr bool operator<=(const year_month& x, const year_month& y) noexcept;
|
|
435
|
+
constexpr bool operator>=(const year_month& x, const year_month& y) noexcept;
|
|
436
|
+
|
|
437
|
+
constexpr year_month operator+(const year_month& ym, const months& dm) noexcept;
|
|
438
|
+
constexpr year_month operator+(const months& dm, const year_month& ym) noexcept;
|
|
439
|
+
constexpr year_month operator-(const year_month& ym, const months& dm) noexcept;
|
|
440
|
+
constexpr months operator-(const year_month& x, const year_month& y) noexcept;
|
|
441
|
+
constexpr year_month operator+(const year_month& ym, const years& dy) noexcept;
|
|
442
|
+
constexpr year_month operator+(const years& dy, const year_month& ym) noexcept;
|
|
443
|
+
constexpr year_month operator-(const year_month& ym, const years& dy) noexcept;
|
|
444
|
+
|
|
445
|
+
// 25.8.14, class year_month_day class // C++20
|
|
446
|
+
year_month_day;
|
|
447
|
+
|
|
448
|
+
constexpr bool operator==(const year_month_day& x, const year_month_day& y) noexcept;
|
|
449
|
+
constexpr bool operator!=(const year_month_day& x, const year_month_day& y) noexcept;
|
|
450
|
+
constexpr bool operator< (const year_month_day& x, const year_month_day& y) noexcept;
|
|
451
|
+
constexpr bool operator> (const year_month_day& x, const year_month_day& y) noexcept;
|
|
452
|
+
constexpr bool operator<=(const year_month_day& x, const year_month_day& y) noexcept;
|
|
453
|
+
constexpr bool operator>=(const year_month_day& x, const year_month_day& y) noexcept;
|
|
454
|
+
|
|
455
|
+
constexpr year_month_day operator+(const year_month_day& ymd, const months& dm) noexcept;
|
|
456
|
+
constexpr year_month_day operator+(const months& dm, const year_month_day& ymd) noexcept;
|
|
457
|
+
constexpr year_month_day operator+(const year_month_day& ymd, const years& dy) noexcept;
|
|
458
|
+
constexpr year_month_day operator+(const years& dy, const year_month_day& ymd) noexcept;
|
|
459
|
+
constexpr year_month_day operator-(const year_month_day& ymd, const months& dm) noexcept;
|
|
460
|
+
constexpr year_month_day operator-(const year_month_day& ymd, const years& dy) noexcept;
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
// 25.8.15, class year_month_day_last // C++20
|
|
464
|
+
class year_month_day_last;
|
|
465
|
+
|
|
466
|
+
constexpr bool operator==(const year_month_day_last& x,
|
|
467
|
+
const year_month_day_last& y) noexcept;
|
|
468
|
+
constexpr bool operator!=(const year_month_day_last& x,
|
|
469
|
+
const year_month_day_last& y) noexcept;
|
|
470
|
+
constexpr bool operator< (const year_month_day_last& x,
|
|
471
|
+
const year_month_day_last& y) noexcept;
|
|
472
|
+
constexpr bool operator> (const year_month_day_last& x,
|
|
473
|
+
const year_month_day_last& y) noexcept;
|
|
474
|
+
constexpr bool operator<=(const year_month_day_last& x,
|
|
475
|
+
const year_month_day_last& y) noexcept;
|
|
476
|
+
constexpr bool operator>=(const year_month_day_last& x,
|
|
477
|
+
const year_month_day_last& y) noexcept;
|
|
478
|
+
|
|
479
|
+
constexpr year_month_day_last
|
|
480
|
+
operator+(const year_month_day_last& ymdl, const months& dm) noexcept;
|
|
481
|
+
constexpr year_month_day_last
|
|
482
|
+
operator+(const months& dm, const year_month_day_last& ymdl) noexcept;
|
|
483
|
+
constexpr year_month_day_last
|
|
484
|
+
operator+(const year_month_day_last& ymdl, const years& dy) noexcept;
|
|
485
|
+
constexpr year_month_day_last
|
|
486
|
+
operator+(const years& dy, const year_month_day_last& ymdl) noexcept;
|
|
487
|
+
constexpr year_month_day_last
|
|
488
|
+
operator-(const year_month_day_last& ymdl, const months& dm) noexcept;
|
|
489
|
+
constexpr year_month_day_last
|
|
490
|
+
operator-(const year_month_day_last& ymdl, const years& dy) noexcept;
|
|
491
|
+
|
|
492
|
+
// 25.8.16, class year_month_weekday // C++20
|
|
493
|
+
class year_month_weekday;
|
|
494
|
+
|
|
495
|
+
constexpr bool operator==(const year_month_weekday& x,
|
|
496
|
+
const year_month_weekday& y) noexcept;
|
|
497
|
+
constexpr bool operator!=(const year_month_weekday& x,
|
|
498
|
+
const year_month_weekday& y) noexcept;
|
|
499
|
+
|
|
500
|
+
constexpr year_month_weekday
|
|
501
|
+
operator+(const year_month_weekday& ymwd, const months& dm) noexcept;
|
|
502
|
+
constexpr year_month_weekday
|
|
503
|
+
operator+(const months& dm, const year_month_weekday& ymwd) noexcept;
|
|
504
|
+
constexpr year_month_weekday
|
|
505
|
+
operator+(const year_month_weekday& ymwd, const years& dy) noexcept;
|
|
506
|
+
constexpr year_month_weekday
|
|
507
|
+
operator+(const years& dy, const year_month_weekday& ymwd) noexcept;
|
|
508
|
+
constexpr year_month_weekday
|
|
509
|
+
operator-(const year_month_weekday& ymwd, const months& dm) noexcept;
|
|
510
|
+
constexpr year_month_weekday
|
|
511
|
+
operator-(const year_month_weekday& ymwd, const years& dy) noexcept;
|
|
512
|
+
|
|
513
|
+
// 25.8.17, class year_month_weekday_last // C++20
|
|
514
|
+
class year_month_weekday_last;
|
|
515
|
+
|
|
516
|
+
constexpr bool operator==(const year_month_weekday_last& x,
|
|
517
|
+
const year_month_weekday_last& y) noexcept;
|
|
518
|
+
constexpr bool operator!=(const year_month_weekday_last& x,
|
|
519
|
+
const year_month_weekday_last& y) noexcept;
|
|
520
|
+
constexpr year_month_weekday_last
|
|
521
|
+
operator+(const year_month_weekday_last& ymwdl, const months& dm) noexcept;
|
|
522
|
+
constexpr year_month_weekday_last
|
|
523
|
+
operator+(const months& dm, const year_month_weekday_last& ymwdl) noexcept;
|
|
524
|
+
constexpr year_month_weekday_last
|
|
525
|
+
operator+(const year_month_weekday_last& ymwdl, const years& dy) noexcept;
|
|
526
|
+
constexpr year_month_weekday_last
|
|
527
|
+
operator+(const years& dy, const year_month_weekday_last& ymwdl) noexcept;
|
|
528
|
+
constexpr year_month_weekday_last
|
|
529
|
+
operator-(const year_month_weekday_last& ymwdl, const months& dm) noexcept;
|
|
530
|
+
constexpr year_month_weekday_last
|
|
531
|
+
operator-(const year_month_weekday_last& ymwdl, const years& dy) noexcept;
|
|
532
|
+
|
|
533
|
+
// 25.8.18, civil calendar conventional syntax operators // C++20
|
|
534
|
+
constexpr year_month
|
|
535
|
+
operator/(const year& y, const month& m) noexcept;
|
|
536
|
+
constexpr year_month
|
|
537
|
+
operator/(const year& y, int m) noexcept;
|
|
538
|
+
constexpr month_day
|
|
539
|
+
operator/(const month& m, const day& d) noexcept;
|
|
540
|
+
constexpr month_day
|
|
541
|
+
operator/(const month& m, int d) noexcept;
|
|
542
|
+
constexpr month_day
|
|
543
|
+
operator/(int m, const day& d) noexcept;
|
|
544
|
+
constexpr month_day
|
|
545
|
+
operator/(const day& d, const month& m) noexcept;
|
|
546
|
+
constexpr month_day
|
|
547
|
+
operator/(const day& d, int m) noexcept;
|
|
548
|
+
constexpr month_day_last
|
|
549
|
+
operator/(const month& m, last_spec) noexcept;
|
|
550
|
+
constexpr month_day_last
|
|
551
|
+
operator/(int m, last_spec) noexcept;
|
|
552
|
+
constexpr month_day_last
|
|
553
|
+
operator/(last_spec, const month& m) noexcept;
|
|
554
|
+
constexpr month_day_last
|
|
555
|
+
operator/(last_spec, int m) noexcept;
|
|
556
|
+
constexpr month_weekday
|
|
557
|
+
operator/(const month& m, const weekday_indexed& wdi) noexcept;
|
|
558
|
+
constexpr month_weekday
|
|
559
|
+
operator/(int m, const weekday_indexed& wdi) noexcept;
|
|
560
|
+
constexpr month_weekday
|
|
561
|
+
operator/(const weekday_indexed& wdi, const month& m) noexcept;
|
|
562
|
+
constexpr month_weekday
|
|
563
|
+
operator/(const weekday_indexed& wdi, int m) noexcept;
|
|
564
|
+
constexpr month_weekday_last
|
|
565
|
+
operator/(const month& m, const weekday_last& wdl) noexcept;
|
|
566
|
+
constexpr month_weekday_last
|
|
567
|
+
operator/(int m, const weekday_last& wdl) noexcept;
|
|
568
|
+
constexpr month_weekday_last
|
|
569
|
+
operator/(const weekday_last& wdl, const month& m) noexcept;
|
|
570
|
+
constexpr month_weekday_last
|
|
571
|
+
operator/(const weekday_last& wdl, int m) noexcept;
|
|
572
|
+
constexpr year_month_day
|
|
573
|
+
operator/(const year_month& ym, const day& d) noexcept;
|
|
574
|
+
constexpr year_month_day
|
|
575
|
+
operator/(const year_month& ym, int d) noexcept;
|
|
576
|
+
constexpr year_month_day
|
|
577
|
+
operator/(const year& y, const month_day& md) noexcept;
|
|
578
|
+
constexpr year_month_day
|
|
579
|
+
operator/(int y, const month_day& md) noexcept;
|
|
580
|
+
constexpr year_month_day
|
|
581
|
+
operator/(const month_day& md, const year& y) noexcept;
|
|
582
|
+
constexpr year_month_day
|
|
583
|
+
operator/(const month_day& md, int y) noexcept;
|
|
584
|
+
constexpr year_month_day_last
|
|
585
|
+
operator/(const year_month& ym, last_spec) noexcept;
|
|
586
|
+
constexpr year_month_day_last
|
|
587
|
+
operator/(const year& y, const month_day_last& mdl) noexcept;
|
|
588
|
+
constexpr year_month_day_last
|
|
589
|
+
operator/(int y, const month_day_last& mdl) noexcept;
|
|
590
|
+
constexpr year_month_day_last
|
|
591
|
+
operator/(const month_day_last& mdl, const year& y) noexcept;
|
|
592
|
+
constexpr year_month_day_last
|
|
593
|
+
operator/(const month_day_last& mdl, int y) noexcept;
|
|
594
|
+
constexpr year_month_weekday
|
|
595
|
+
operator/(const year_month& ym, const weekday_indexed& wdi) noexcept;
|
|
596
|
+
constexpr year_month_weekday
|
|
597
|
+
operator/(const year& y, const month_weekday& mwd) noexcept;
|
|
598
|
+
constexpr year_month_weekday
|
|
599
|
+
operator/(int y, const month_weekday& mwd) noexcept;
|
|
600
|
+
constexpr year_month_weekday
|
|
601
|
+
operator/(const month_weekday& mwd, const year& y) noexcept;
|
|
602
|
+
constexpr year_month_weekday
|
|
603
|
+
operator/(const month_weekday& mwd, int y) noexcept;
|
|
604
|
+
constexpr year_month_weekday_last
|
|
605
|
+
operator/(const year_month& ym, const weekday_last& wdl) noexcept;
|
|
606
|
+
constexpr year_month_weekday_last
|
|
607
|
+
operator/(const year& y, const month_weekday_last& mwdl) noexcept;
|
|
608
|
+
constexpr year_month_weekday_last
|
|
609
|
+
operator/(int y, const month_weekday_last& mwdl) noexcept;
|
|
610
|
+
constexpr year_month_weekday_last
|
|
611
|
+
operator/(const month_weekday_last& mwdl, const year& y) noexcept;
|
|
612
|
+
constexpr year_month_weekday_last
|
|
613
|
+
operator/(const month_weekday_last& mwdl, int y) noexcept;
|
|
614
|
+
|
|
615
|
+
// 26.9, class template hh_mm_ss
|
|
616
|
+
template <class Duration>
|
|
617
|
+
class hh_mm_ss
|
|
618
|
+
{
|
|
619
|
+
bool is_neg; // exposition only
|
|
620
|
+
chrono::hours h; // exposition only
|
|
621
|
+
chrono::minutes m; // exposition only
|
|
622
|
+
chrono::seconds s; // exposition only
|
|
623
|
+
precision ss; // exposition only
|
|
624
|
+
|
|
625
|
+
public:
|
|
626
|
+
static unsigned constexpr fractional_width = see below;
|
|
627
|
+
using precision = see below;
|
|
628
|
+
|
|
629
|
+
constexpr hh_mm_ss() noexcept : hh_mm_ss{Duration::zero()} {}
|
|
630
|
+
constexpr explicit hh_mm_ss(Duration d) noexcept;
|
|
631
|
+
|
|
632
|
+
constexpr bool is_negative() const noexcept;
|
|
633
|
+
constexpr chrono::hours hours() const noexcept;
|
|
634
|
+
constexpr chrono::minutes minutes() const noexcept;
|
|
635
|
+
constexpr chrono::seconds seconds() const noexcept;
|
|
636
|
+
constexpr precision subseconds() const noexcept;
|
|
637
|
+
|
|
638
|
+
constexpr explicit operator precision() const noexcept;
|
|
639
|
+
constexpr precision to_duration() const noexcept;
|
|
640
|
+
};
|
|
641
|
+
|
|
642
|
+
template <class charT, class traits, class Duration>
|
|
643
|
+
basic_ostream<charT, traits>&
|
|
644
|
+
operator<<(basic_ostream<charT, traits>& os, hh_mm_ss<Duration> const& hms);
|
|
645
|
+
|
|
646
|
+
// 26.10, 12/24 hour functions
|
|
647
|
+
constexpr bool is_am(hours const& h) noexcept;
|
|
648
|
+
constexpr bool is_pm(hours const& h) noexcept;
|
|
649
|
+
constexpr hours make12(const hours& h) noexcept;
|
|
650
|
+
constexpr hours make24(const hours& h, bool is_pm) noexcept;
|
|
651
|
+
|
|
652
|
+
|
|
653
|
+
// 25.10.2, time zone database // C++20
|
|
654
|
+
struct tzdb;
|
|
655
|
+
class tzdb_list;
|
|
656
|
+
|
|
657
|
+
// 25.10.2.3, time zone database access // C++20
|
|
658
|
+
const tzdb& get_tzdb();
|
|
659
|
+
tzdb_list& get_tzdb_list();
|
|
660
|
+
const time_zone* locate_zone(string_view tz_name);
|
|
661
|
+
const time_zone* current_zone();
|
|
662
|
+
|
|
663
|
+
// 25.10.2.4, remote time zone database support // C++20
|
|
664
|
+
const tzdb& reload_tzdb();
|
|
665
|
+
string remote_version();
|
|
666
|
+
|
|
667
|
+
// 25.10.3, exception classes // C++20
|
|
668
|
+
class nonexistent_local_time;
|
|
669
|
+
class ambiguous_local_time;
|
|
670
|
+
|
|
671
|
+
// 25.10.4, information classes // C++20
|
|
672
|
+
struct sys_info;
|
|
673
|
+
struct local_info;
|
|
674
|
+
|
|
675
|
+
// 25.10.5, class time_zone // C++20
|
|
676
|
+
enum class choose {earliest, latest};
|
|
677
|
+
class time_zone;
|
|
678
|
+
bool operator==(const time_zone& x, const time_zone& y) noexcept;
|
|
679
|
+
bool operator!=(const time_zone& x, const time_zone& y) noexcept;
|
|
680
|
+
bool operator<(const time_zone& x, const time_zone& y) noexcept;
|
|
681
|
+
bool operator>(const time_zone& x, const time_zone& y) noexcept;
|
|
682
|
+
bool operator<=(const time_zone& x, const time_zone& y) noexcept;
|
|
683
|
+
bool operator>=(const time_zone& x, const time_zone& y) noexcept;
|
|
684
|
+
|
|
685
|
+
// 25.10.6, class template zoned_traits // C++20
|
|
686
|
+
template<class T> struct zoned_traits;
|
|
687
|
+
|
|
688
|
+
// 25.10.7, class template zoned_time // C++20
|
|
689
|
+
template<class Duration, class TimeZonePtr = const time_zone*> class zoned_time;
|
|
690
|
+
using zoned_seconds = zoned_time<seconds>;
|
|
691
|
+
|
|
692
|
+
template<class Duration1, class Duration2, class TimeZonePtr>
|
|
693
|
+
bool operator==(const zoned_time<Duration1, TimeZonePtr>& x,
|
|
694
|
+
const zoned_time<Duration2, TimeZonePtr>& y);
|
|
695
|
+
template<class Duration1, class Duration2, class TimeZonePtr>
|
|
696
|
+
bool operator!=(const zoned_time<Duration1, TimeZonePtr>& x,
|
|
697
|
+
const zoned_time<Duration2, TimeZonePtr>& y);
|
|
698
|
+
|
|
699
|
+
// 25.10.8, leap second support // C++20
|
|
700
|
+
class leap;
|
|
701
|
+
|
|
702
|
+
bool operator==(const leap& x, const leap& y);
|
|
703
|
+
bool operator!=(const leap& x, const leap& y);
|
|
704
|
+
bool operator< (const leap& x, const leap& y);
|
|
705
|
+
bool operator> (const leap& x, const leap& y);
|
|
706
|
+
bool operator<=(const leap& x, const leap& y);
|
|
707
|
+
bool operator>=(const leap& x, const leap& y);
|
|
708
|
+
template<class Duration>
|
|
709
|
+
bool operator==(const leap& x, const sys_time<Duration>& y);
|
|
710
|
+
template<class Duration>
|
|
711
|
+
bool operator==(const sys_time<Duration>& x, const leap& y);
|
|
712
|
+
template<class Duration>
|
|
713
|
+
bool operator!=(const leap& x, const sys_time<Duration>& y);
|
|
714
|
+
template<class Duration>
|
|
715
|
+
bool operator!=(const sys_time<Duration>& x, const leap& y);
|
|
716
|
+
template<class Duration>
|
|
717
|
+
bool operator< (const leap& x, const sys_time<Duration>& y);
|
|
718
|
+
template<class Duration>
|
|
719
|
+
bool operator< (const sys_time<Duration>& x, const leap& y);
|
|
720
|
+
template<class Duration>
|
|
721
|
+
bool operator> (const leap& x, const sys_time<Duration>& y);
|
|
722
|
+
template<class Duration>
|
|
723
|
+
bool operator> (const sys_time<Duration>& x, const leap& y);
|
|
724
|
+
template<class Duration>
|
|
725
|
+
bool operator<=(const leap& x, const sys_time<Duration>& y);
|
|
726
|
+
template<class Duration>
|
|
727
|
+
bool operator<=(const sys_time<Duration>& x, const leap& y);
|
|
728
|
+
template<class Duration>
|
|
729
|
+
bool operator>=(const leap& x, const sys_time<Duration>& y);
|
|
730
|
+
template<class Duration>
|
|
731
|
+
bool operator>=(const sys_time<Duration>& x, const leap& y);
|
|
732
|
+
|
|
733
|
+
// 25.10.9, class link // C++20
|
|
734
|
+
class link;
|
|
735
|
+
bool operator==(const link& x, const link& y);
|
|
736
|
+
bool operator!=(const link& x, const link& y);
|
|
737
|
+
bool operator< (const link& x, const link& y);
|
|
738
|
+
bool operator> (const link& x, const link& y);
|
|
739
|
+
bool operator<=(const link& x, const link& y);
|
|
740
|
+
bool operator>=(const link& x, const link& y);
|
|
741
|
+
|
|
742
|
+
// 25.11, formatting // C++20
|
|
743
|
+
template<class charT, class Streamable>
|
|
744
|
+
basic_string<charT>
|
|
745
|
+
format(const charT* fmt, const Streamable& s);
|
|
746
|
+
|
|
747
|
+
template<class charT, class Streamable>
|
|
748
|
+
basic_string<charT>
|
|
749
|
+
format(const locale& loc, const charT* fmt, const Streamable& s);
|
|
750
|
+
|
|
751
|
+
template<class charT, class traits, class Alloc, class Streamable>
|
|
752
|
+
basic_string<charT, traits, Alloc>
|
|
753
|
+
format(const basic_string<charT, traits, Alloc>& fmt, const Streamable& s);
|
|
754
|
+
|
|
755
|
+
template<class charT, class traits, class Alloc, class Streamable>
|
|
756
|
+
basic_string<charT, traits, Alloc>
|
|
757
|
+
format(const locale& loc, const basic_string<charT, traits, Alloc>& fmt,
|
|
758
|
+
const Streamable& s);
|
|
759
|
+
|
|
760
|
+
// 25.12, parsing // C++20
|
|
761
|
+
template<class charT, class traits, class Alloc, class Parsable>
|
|
762
|
+
unspecified
|
|
763
|
+
parse(const basic_string<charT, traits, Alloc>& format, Parsable& tp);
|
|
764
|
+
|
|
765
|
+
template<class charT, class traits, class Alloc, class Parsable>
|
|
766
|
+
unspecified
|
|
767
|
+
parse(const basic_string<charT, traits, Alloc>& format, Parsable& tp,
|
|
768
|
+
basic_string<charT, traits, Alloc>& abbrev);
|
|
769
|
+
|
|
770
|
+
template<class charT, class traits, class Alloc, class Parsable>
|
|
771
|
+
unspecified
|
|
772
|
+
parse(const basic_string<charT, traits, Alloc>& format, Parsable& tp,
|
|
773
|
+
minutes& offset);
|
|
774
|
+
|
|
775
|
+
template<class charT, class traits, class Alloc, class Parsable>
|
|
776
|
+
unspecified
|
|
777
|
+
parse(const basic_string<charT, traits, Alloc>& format, Parsable& tp,
|
|
778
|
+
basic_string<charT, traits, Alloc>& abbrev, minutes& offset);
|
|
779
|
+
|
|
780
|
+
// calendrical constants
|
|
781
|
+
inline constexpr last_spec last{}; // C++20
|
|
782
|
+
inline constexpr chrono::weekday Sunday{0}; // C++20
|
|
783
|
+
inline constexpr chrono::weekday Monday{1}; // C++20
|
|
784
|
+
inline constexpr chrono::weekday Tuesday{2}; // C++20
|
|
785
|
+
inline constexpr chrono::weekday Wednesday{3}; // C++20
|
|
786
|
+
inline constexpr chrono::weekday Thursday{4}; // C++20
|
|
787
|
+
inline constexpr chrono::weekday Friday{5}; // C++20
|
|
788
|
+
inline constexpr chrono::weekday Saturday{6}; // C++20
|
|
789
|
+
|
|
790
|
+
inline constexpr chrono::month January{1}; // C++20
|
|
791
|
+
inline constexpr chrono::month February{2}; // C++20
|
|
792
|
+
inline constexpr chrono::month March{3}; // C++20
|
|
793
|
+
inline constexpr chrono::month April{4}; // C++20
|
|
794
|
+
inline constexpr chrono::month May{5}; // C++20
|
|
795
|
+
inline constexpr chrono::month June{6}; // C++20
|
|
796
|
+
inline constexpr chrono::month July{7}; // C++20
|
|
797
|
+
inline constexpr chrono::month August{8}; // C++20
|
|
798
|
+
inline constexpr chrono::month September{9}; // C++20
|
|
799
|
+
inline constexpr chrono::month October{10}; // C++20
|
|
800
|
+
inline constexpr chrono::month November{11}; // C++20
|
|
801
|
+
inline constexpr chrono::month December{12}; // C++20
|
|
802
|
+
} // chrono
|
|
803
|
+
|
|
804
|
+
inline namespace literals {
|
|
805
|
+
inline namespace chrono_literals {
|
|
806
|
+
constexpr chrono::hours operator ""h(unsigned long long); // C++14
|
|
807
|
+
constexpr chrono::duration<unspecified , ratio<3600,1>> operator ""h(long double); // C++14
|
|
808
|
+
constexpr chrono::minutes operator ""min(unsigned long long); // C++14
|
|
809
|
+
constexpr chrono::duration<unspecified , ratio<60,1>> operator ""min(long double); // C++14
|
|
810
|
+
constexpr chrono::seconds operator ""s(unsigned long long); // C++14
|
|
811
|
+
constexpr chrono::duration<unspecified > operator ""s(long double); // C++14
|
|
812
|
+
constexpr chrono::milliseconds operator ""ms(unsigned long long); // C++14
|
|
813
|
+
constexpr chrono::duration<unspecified , milli> operator ""ms(long double); // C++14
|
|
814
|
+
constexpr chrono::microseconds operator ""us(unsigned long long); // C++14
|
|
815
|
+
constexpr chrono::duration<unspecified , micro> operator ""us(long double); // C++14
|
|
816
|
+
constexpr chrono::nanoseconds operator ""ns(unsigned long long); // C++14
|
|
817
|
+
constexpr chrono::duration<unspecified , nano> operator ""ns(long double); // C++14
|
|
818
|
+
constexpr chrono::day operator ""d(unsigned long long d) noexcept; // C++20
|
|
819
|
+
constexpr chrono::year operator ""y(unsigned long long y) noexcept; // C++20
|
|
820
|
+
} // chrono_literals
|
|
821
|
+
} // literals
|
|
822
|
+
|
|
823
|
+
} // std
|
|
824
|
+
*/
|
|
825
|
+
|
|
826
|
+
#include <cuda/std/detail/__config>
|
|
827
|
+
|
|
828
|
+
#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
|
|
829
|
+
# pragma GCC system_header
|
|
830
|
+
#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
|
|
831
|
+
# pragma clang system_header
|
|
832
|
+
#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
|
|
833
|
+
# pragma system_header
|
|
834
|
+
#endif // no system header
|
|
835
|
+
|
|
836
|
+
#ifdef __cuda_std__
|
|
837
|
+
# if !_CCCL_COMPILER(NVRTC)
|
|
838
|
+
# include <chrono>
|
|
839
|
+
# endif // _CCCL_COMPILER(NVRTC)
|
|
840
|
+
#endif // __cuda_std__
|
|
841
|
+
|
|
842
|
+
#if _CCCL_CUDA_COMPILATION()
|
|
843
|
+
# include <cuda/__ptx/instructions/get_sreg.h>
|
|
844
|
+
#endif // _CCCL_CUDA_COMPILATION()
|
|
845
|
+
#include <cuda/std/__chrono/calendar.h>
|
|
846
|
+
#include <cuda/std/__chrono/day.h>
|
|
847
|
+
#include <cuda/std/__chrono/duration.h>
|
|
848
|
+
#include <cuda/std/__chrono/file_clock.h>
|
|
849
|
+
#include <cuda/std/__chrono/high_resolution_clock.h>
|
|
850
|
+
#include <cuda/std/__chrono/month.h>
|
|
851
|
+
#include <cuda/std/__chrono/steady_clock.h>
|
|
852
|
+
#include <cuda/std/__chrono/system_clock.h>
|
|
853
|
+
#include <cuda/std/__chrono/time_point.h>
|
|
854
|
+
#include <cuda/std/__chrono/year.h>
|
|
855
|
+
#include <cuda/std/__type_traits/common_type.h>
|
|
856
|
+
#include <cuda/std/__type_traits/enable_if.h>
|
|
857
|
+
#include <cuda/std/__type_traits/integral_constant.h>
|
|
858
|
+
#include <cuda/std/__type_traits/is_convertible.h>
|
|
859
|
+
#include <cuda/std/__type_traits/is_floating_point.h>
|
|
860
|
+
#include <cuda/std/ctime>
|
|
861
|
+
#include <cuda/std/limits>
|
|
862
|
+
#include <cuda/std/ratio>
|
|
863
|
+
|
|
864
|
+
// standard-mandated includes
|
|
865
|
+
// TODO: Fix CPOs in split H/D compilation or inform users of what may happen
|
|
866
|
+
// #include <cuda/std/concepts>
|
|
867
|
+
#include <cuda/std/version>
|
|
868
|
+
|
|
869
|
+
#include <cuda/std/__cccl/prologue.h>
|
|
870
|
+
|
|
871
|
+
// Silence NVCC warnings `long double` arising from chrono floating pointer
|
|
872
|
+
// user-defined literals which are defined in terms of `long double`.
|
|
873
|
+
|
|
874
|
+
// FIXME: There is currently no way to disable this diagnostic in a fine-grained
|
|
875
|
+
// fashion; if you include this header, the diagnostic will be suppressed
|
|
876
|
+
// throughout the translation unit. The alternative is loosing (conforming)
|
|
877
|
+
// chrono user-defined literals; this seems like the lesser of two evils, so...
|
|
878
|
+
_CCCL_BEGIN_NV_DIAG_SUPPRESS(cuda_demote_unsupported_floating_point)
|
|
879
|
+
|
|
880
|
+
#define _LIBCUDACXX_CHRONO_LITERAL_INTERNAL_T double
|
|
881
|
+
|
|
882
|
+
_CCCL_BEGIN_NAMESPACE_CUDA_STD
|
|
883
|
+
|
|
884
|
+
namespace chrono
|
|
885
|
+
{
|
|
886
|
+
|
|
887
|
+
class weekday_indexed;
|
|
888
|
+
class weekday_last;
|
|
889
|
+
|
|
890
|
+
class weekday
|
|
891
|
+
{
|
|
892
|
+
private:
|
|
893
|
+
unsigned char __wd;
|
|
894
|
+
|
|
895
|
+
public:
|
|
896
|
+
_CCCL_HIDE_FROM_ABI weekday() = default;
|
|
897
|
+
_CCCL_API explicit constexpr weekday(unsigned __val) noexcept
|
|
898
|
+
: __wd(static_cast<unsigned char>(__val == 7 ? 0 : __val))
|
|
899
|
+
{}
|
|
900
|
+
_CCCL_API constexpr weekday(const sys_days& __sysd) noexcept
|
|
901
|
+
: __wd(__weekday_from_days(__sysd.time_since_epoch().count()))
|
|
902
|
+
{}
|
|
903
|
+
_CCCL_API explicit constexpr weekday(const local_days& __locd) noexcept
|
|
904
|
+
: __wd(__weekday_from_days(__locd.time_since_epoch().count()))
|
|
905
|
+
{}
|
|
906
|
+
|
|
907
|
+
_CCCL_API constexpr weekday& operator++() noexcept
|
|
908
|
+
{
|
|
909
|
+
__wd = (__wd == 6 ? 0 : __wd + 1);
|
|
910
|
+
return *this;
|
|
911
|
+
}
|
|
912
|
+
_CCCL_API constexpr weekday operator++(int) noexcept
|
|
913
|
+
{
|
|
914
|
+
weekday __tmp = *this;
|
|
915
|
+
++(*this);
|
|
916
|
+
return __tmp;
|
|
917
|
+
}
|
|
918
|
+
_CCCL_API constexpr weekday& operator--() noexcept
|
|
919
|
+
{
|
|
920
|
+
__wd = (__wd == 0 ? 6 : __wd - 1);
|
|
921
|
+
return *this;
|
|
922
|
+
}
|
|
923
|
+
_CCCL_API constexpr weekday operator--(int) noexcept
|
|
924
|
+
{
|
|
925
|
+
weekday __tmp = *this;
|
|
926
|
+
--(*this);
|
|
927
|
+
return __tmp;
|
|
928
|
+
}
|
|
929
|
+
_CCCL_API constexpr weekday& operator+=(const days& __dd) noexcept;
|
|
930
|
+
_CCCL_API constexpr weekday& operator-=(const days& __dd) noexcept;
|
|
931
|
+
_CCCL_API constexpr unsigned c_encoding() const noexcept
|
|
932
|
+
{
|
|
933
|
+
return __wd;
|
|
934
|
+
}
|
|
935
|
+
_CCCL_API constexpr unsigned iso_encoding() const noexcept
|
|
936
|
+
{
|
|
937
|
+
return __wd == 0u ? 7 : __wd;
|
|
938
|
+
}
|
|
939
|
+
_CCCL_API constexpr bool ok() const noexcept
|
|
940
|
+
{
|
|
941
|
+
return __wd <= 6;
|
|
942
|
+
}
|
|
943
|
+
_CCCL_API constexpr weekday_indexed operator[](unsigned __index) const noexcept;
|
|
944
|
+
_CCCL_API constexpr weekday_last operator[](last_spec) const noexcept;
|
|
945
|
+
|
|
946
|
+
_CCCL_API static constexpr unsigned char __weekday_from_days(int __days) noexcept;
|
|
947
|
+
};
|
|
948
|
+
|
|
949
|
+
// https://howardhinnant.github.io/date_algorithms.html#weekday_from_days
|
|
950
|
+
_CCCL_API constexpr unsigned char weekday::__weekday_from_days(int __days) noexcept
|
|
951
|
+
{
|
|
952
|
+
return static_cast<unsigned char>(static_cast<unsigned>(__days >= -4 ? (__days + 4) % 7 : (__days + 5) % 7 + 6));
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
_CCCL_API constexpr bool operator==(const weekday& __lhs, const weekday& __rhs) noexcept
|
|
956
|
+
{
|
|
957
|
+
return __lhs.c_encoding() == __rhs.c_encoding();
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
_CCCL_API constexpr bool operator!=(const weekday& __lhs, const weekday& __rhs) noexcept
|
|
961
|
+
{
|
|
962
|
+
return !(__lhs == __rhs);
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
_CCCL_API constexpr bool operator<(const weekday& __lhs, const weekday& __rhs) noexcept
|
|
966
|
+
{
|
|
967
|
+
return __lhs.c_encoding() < __rhs.c_encoding();
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
_CCCL_API constexpr bool operator>(const weekday& __lhs, const weekday& __rhs) noexcept
|
|
971
|
+
{
|
|
972
|
+
return __rhs < __lhs;
|
|
973
|
+
}
|
|
974
|
+
|
|
975
|
+
_CCCL_API constexpr bool operator<=(const weekday& __lhs, const weekday& __rhs) noexcept
|
|
976
|
+
{
|
|
977
|
+
return !(__rhs < __lhs);
|
|
978
|
+
}
|
|
979
|
+
|
|
980
|
+
_CCCL_API constexpr bool operator>=(const weekday& __lhs, const weekday& __rhs) noexcept
|
|
981
|
+
{
|
|
982
|
+
return !(__lhs < __rhs);
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
_CCCL_API constexpr weekday operator+(const weekday& __lhs, const days& __rhs) noexcept
|
|
986
|
+
{
|
|
987
|
+
auto const __mu = static_cast<long long>(__lhs.c_encoding()) + __rhs.count();
|
|
988
|
+
auto const __yr = (__mu >= 0 ? __mu : __mu - 6) / 7;
|
|
989
|
+
return weekday{static_cast<unsigned>(__mu - __yr * 7)};
|
|
990
|
+
}
|
|
991
|
+
|
|
992
|
+
_CCCL_API constexpr weekday operator+(const days& __lhs, const weekday& __rhs) noexcept
|
|
993
|
+
{
|
|
994
|
+
return __rhs + __lhs;
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
_CCCL_API constexpr weekday operator-(const weekday& __lhs, const days& __rhs) noexcept
|
|
998
|
+
{
|
|
999
|
+
return __lhs + -__rhs;
|
|
1000
|
+
}
|
|
1001
|
+
|
|
1002
|
+
_CCCL_API constexpr days operator-(const weekday& __lhs, const weekday& __rhs) noexcept
|
|
1003
|
+
{
|
|
1004
|
+
// casts are required to work around nvcc bug 3145483
|
|
1005
|
+
const int __wdu = static_cast<int>(__lhs.c_encoding()) - static_cast<int>(__rhs.c_encoding());
|
|
1006
|
+
const int __wk = (__wdu >= 0 ? __wdu : __wdu - 6) / 7;
|
|
1007
|
+
return days{__wdu - __wk * 7};
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
_CCCL_API constexpr weekday& weekday::operator+=(const days& __dd) noexcept
|
|
1011
|
+
{
|
|
1012
|
+
*this = *this + __dd;
|
|
1013
|
+
return *this;
|
|
1014
|
+
}
|
|
1015
|
+
|
|
1016
|
+
_CCCL_API constexpr weekday& weekday::operator-=(const days& __dd) noexcept
|
|
1017
|
+
{
|
|
1018
|
+
*this = *this - __dd;
|
|
1019
|
+
return *this;
|
|
1020
|
+
}
|
|
1021
|
+
|
|
1022
|
+
class weekday_indexed
|
|
1023
|
+
{
|
|
1024
|
+
private:
|
|
1025
|
+
::cuda::std::chrono::weekday __wd;
|
|
1026
|
+
unsigned char __idx;
|
|
1027
|
+
|
|
1028
|
+
public:
|
|
1029
|
+
_CCCL_HIDE_FROM_ABI weekday_indexed() = default;
|
|
1030
|
+
_CCCL_API constexpr weekday_indexed(const ::cuda::std::chrono::weekday& __wdval, unsigned __idxval) noexcept
|
|
1031
|
+
: __wd{__wdval}
|
|
1032
|
+
, __idx(static_cast<unsigned char>(__idxval))
|
|
1033
|
+
{}
|
|
1034
|
+
_CCCL_API constexpr ::cuda::std::chrono::weekday weekday() const noexcept
|
|
1035
|
+
{
|
|
1036
|
+
return __wd;
|
|
1037
|
+
}
|
|
1038
|
+
_CCCL_API constexpr unsigned index() const noexcept
|
|
1039
|
+
{
|
|
1040
|
+
return __idx;
|
|
1041
|
+
}
|
|
1042
|
+
_CCCL_API constexpr bool ok() const noexcept
|
|
1043
|
+
{
|
|
1044
|
+
return __wd.ok() && __idx >= 1 && __idx <= 5;
|
|
1045
|
+
}
|
|
1046
|
+
};
|
|
1047
|
+
|
|
1048
|
+
_CCCL_API constexpr bool operator==(const weekday_indexed& __lhs, const weekday_indexed& __rhs) noexcept
|
|
1049
|
+
{
|
|
1050
|
+
return __lhs.weekday() == __rhs.weekday() && __lhs.index() == __rhs.index();
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
_CCCL_API constexpr bool operator!=(const weekday_indexed& __lhs, const weekday_indexed& __rhs) noexcept
|
|
1054
|
+
{
|
|
1055
|
+
return !(__lhs == __rhs);
|
|
1056
|
+
}
|
|
1057
|
+
|
|
1058
|
+
class weekday_last
|
|
1059
|
+
{
|
|
1060
|
+
private:
|
|
1061
|
+
::cuda::std::chrono::weekday __wd;
|
|
1062
|
+
|
|
1063
|
+
public:
|
|
1064
|
+
_CCCL_API explicit constexpr weekday_last(const ::cuda::std::chrono::weekday& __val) noexcept
|
|
1065
|
+
: __wd{__val}
|
|
1066
|
+
{}
|
|
1067
|
+
_CCCL_API constexpr ::cuda::std::chrono::weekday weekday() const noexcept
|
|
1068
|
+
{
|
|
1069
|
+
return __wd;
|
|
1070
|
+
}
|
|
1071
|
+
_CCCL_API constexpr bool ok() const noexcept
|
|
1072
|
+
{
|
|
1073
|
+
return __wd.ok();
|
|
1074
|
+
}
|
|
1075
|
+
};
|
|
1076
|
+
|
|
1077
|
+
_CCCL_API constexpr bool operator==(const weekday_last& __lhs, const weekday_last& __rhs) noexcept
|
|
1078
|
+
{
|
|
1079
|
+
return __lhs.weekday() == __rhs.weekday();
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
_CCCL_API constexpr bool operator!=(const weekday_last& __lhs, const weekday_last& __rhs) noexcept
|
|
1083
|
+
{
|
|
1084
|
+
return !(__lhs == __rhs);
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1087
|
+
_CCCL_API constexpr weekday_indexed weekday::operator[](unsigned __index) const noexcept
|
|
1088
|
+
{
|
|
1089
|
+
return weekday_indexed{*this, __index};
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
_CCCL_API constexpr weekday_last weekday::operator[](last_spec) const noexcept
|
|
1093
|
+
{
|
|
1094
|
+
return weekday_last{*this};
|
|
1095
|
+
}
|
|
1096
|
+
|
|
1097
|
+
inline constexpr weekday Sunday{0};
|
|
1098
|
+
inline constexpr weekday Monday{1};
|
|
1099
|
+
inline constexpr weekday Tuesday{2};
|
|
1100
|
+
inline constexpr weekday Wednesday{3};
|
|
1101
|
+
inline constexpr weekday Thursday{4};
|
|
1102
|
+
inline constexpr weekday Friday{5};
|
|
1103
|
+
inline constexpr weekday Saturday{6};
|
|
1104
|
+
|
|
1105
|
+
class month_day
|
|
1106
|
+
{
|
|
1107
|
+
private:
|
|
1108
|
+
chrono::month __m;
|
|
1109
|
+
chrono::day __d;
|
|
1110
|
+
|
|
1111
|
+
public:
|
|
1112
|
+
_CCCL_HIDE_FROM_ABI month_day() = default;
|
|
1113
|
+
_CCCL_API constexpr month_day(const chrono::month& __mval, const chrono::day& __dval) noexcept
|
|
1114
|
+
: __m{__mval}
|
|
1115
|
+
, __d{__dval}
|
|
1116
|
+
{}
|
|
1117
|
+
_CCCL_API constexpr chrono::month month() const noexcept
|
|
1118
|
+
{
|
|
1119
|
+
return __m;
|
|
1120
|
+
}
|
|
1121
|
+
_CCCL_API constexpr chrono::day day() const noexcept
|
|
1122
|
+
{
|
|
1123
|
+
return __d;
|
|
1124
|
+
}
|
|
1125
|
+
_CCCL_API constexpr bool ok() const noexcept;
|
|
1126
|
+
};
|
|
1127
|
+
|
|
1128
|
+
_CCCL_API constexpr bool month_day::ok() const noexcept
|
|
1129
|
+
{
|
|
1130
|
+
if (!__m.ok())
|
|
1131
|
+
{
|
|
1132
|
+
return false;
|
|
1133
|
+
}
|
|
1134
|
+
const unsigned __dval = static_cast<unsigned>(__d);
|
|
1135
|
+
if (__dval < 1 || __dval > 31)
|
|
1136
|
+
{
|
|
1137
|
+
return false;
|
|
1138
|
+
}
|
|
1139
|
+
if (__dval <= 29)
|
|
1140
|
+
{
|
|
1141
|
+
return true;
|
|
1142
|
+
}
|
|
1143
|
+
// Now we've got either 30 or 31
|
|
1144
|
+
const unsigned __mval = static_cast<unsigned>(__m);
|
|
1145
|
+
if (__mval == 2)
|
|
1146
|
+
{
|
|
1147
|
+
return false;
|
|
1148
|
+
}
|
|
1149
|
+
if (__mval == 4 || __mval == 6 || __mval == 9 || __mval == 11)
|
|
1150
|
+
{
|
|
1151
|
+
return __dval == 30;
|
|
1152
|
+
}
|
|
1153
|
+
return true;
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1156
|
+
_CCCL_API constexpr bool operator==(const month_day& __lhs, const month_day& __rhs) noexcept
|
|
1157
|
+
{
|
|
1158
|
+
return __lhs.month() == __rhs.month() && __lhs.day() == __rhs.day();
|
|
1159
|
+
}
|
|
1160
|
+
|
|
1161
|
+
_CCCL_API constexpr bool operator!=(const month_day& __lhs, const month_day& __rhs) noexcept
|
|
1162
|
+
{
|
|
1163
|
+
return !(__lhs == __rhs);
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
_CCCL_API constexpr month_day operator/(const month& __lhs, const day& __rhs) noexcept
|
|
1167
|
+
{
|
|
1168
|
+
return month_day{__lhs, __rhs};
|
|
1169
|
+
}
|
|
1170
|
+
|
|
1171
|
+
_CCCL_API constexpr month_day operator/(const day& __lhs, const month& __rhs) noexcept
|
|
1172
|
+
{
|
|
1173
|
+
return __rhs / __lhs;
|
|
1174
|
+
}
|
|
1175
|
+
|
|
1176
|
+
_CCCL_API constexpr month_day operator/(const month& __lhs, int __rhs) noexcept
|
|
1177
|
+
{
|
|
1178
|
+
return __lhs / day(__rhs);
|
|
1179
|
+
}
|
|
1180
|
+
|
|
1181
|
+
_CCCL_API constexpr month_day operator/(int __lhs, const day& __rhs) noexcept
|
|
1182
|
+
{
|
|
1183
|
+
return month(__lhs) / __rhs;
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
_CCCL_API constexpr month_day operator/(const day& __lhs, int __rhs) noexcept
|
|
1187
|
+
{
|
|
1188
|
+
return month(__rhs) / __lhs;
|
|
1189
|
+
}
|
|
1190
|
+
|
|
1191
|
+
_CCCL_API constexpr bool operator<(const month_day& __lhs, const month_day& __rhs) noexcept
|
|
1192
|
+
{
|
|
1193
|
+
return __lhs.month() != __rhs.month() ? __lhs.month() < __rhs.month() : __lhs.day() < __rhs.day();
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1196
|
+
_CCCL_API constexpr bool operator>(const month_day& __lhs, const month_day& __rhs) noexcept
|
|
1197
|
+
{
|
|
1198
|
+
return __rhs < __lhs;
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
_CCCL_API constexpr bool operator<=(const month_day& __lhs, const month_day& __rhs) noexcept
|
|
1202
|
+
{
|
|
1203
|
+
return !(__rhs < __lhs);
|
|
1204
|
+
}
|
|
1205
|
+
|
|
1206
|
+
_CCCL_API constexpr bool operator>=(const month_day& __lhs, const month_day& __rhs) noexcept
|
|
1207
|
+
{
|
|
1208
|
+
return !(__lhs < __rhs);
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
class month_day_last
|
|
1212
|
+
{
|
|
1213
|
+
private:
|
|
1214
|
+
chrono::month __m;
|
|
1215
|
+
|
|
1216
|
+
public:
|
|
1217
|
+
_CCCL_API explicit constexpr month_day_last(const chrono::month& __val) noexcept
|
|
1218
|
+
: __m{__val}
|
|
1219
|
+
{}
|
|
1220
|
+
_CCCL_API constexpr chrono::month month() const noexcept
|
|
1221
|
+
{
|
|
1222
|
+
return __m;
|
|
1223
|
+
}
|
|
1224
|
+
_CCCL_API constexpr bool ok() const noexcept
|
|
1225
|
+
{
|
|
1226
|
+
return __m.ok();
|
|
1227
|
+
}
|
|
1228
|
+
};
|
|
1229
|
+
|
|
1230
|
+
_CCCL_API constexpr bool operator==(const month_day_last& __lhs, const month_day_last& __rhs) noexcept
|
|
1231
|
+
{
|
|
1232
|
+
return __lhs.month() == __rhs.month();
|
|
1233
|
+
}
|
|
1234
|
+
|
|
1235
|
+
_CCCL_API constexpr bool operator!=(const month_day_last& __lhs, const month_day_last& __rhs) noexcept
|
|
1236
|
+
{
|
|
1237
|
+
return !(__lhs == __rhs);
|
|
1238
|
+
}
|
|
1239
|
+
|
|
1240
|
+
_CCCL_API constexpr bool operator<(const month_day_last& __lhs, const month_day_last& __rhs) noexcept
|
|
1241
|
+
{
|
|
1242
|
+
return __lhs.month() < __rhs.month();
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1245
|
+
_CCCL_API constexpr bool operator>(const month_day_last& __lhs, const month_day_last& __rhs) noexcept
|
|
1246
|
+
{
|
|
1247
|
+
return __rhs < __lhs;
|
|
1248
|
+
}
|
|
1249
|
+
|
|
1250
|
+
_CCCL_API constexpr bool operator<=(const month_day_last& __lhs, const month_day_last& __rhs) noexcept
|
|
1251
|
+
{
|
|
1252
|
+
return !(__rhs < __lhs);
|
|
1253
|
+
}
|
|
1254
|
+
|
|
1255
|
+
_CCCL_API constexpr bool operator>=(const month_day_last& __lhs, const month_day_last& __rhs) noexcept
|
|
1256
|
+
{
|
|
1257
|
+
return !(__lhs < __rhs);
|
|
1258
|
+
}
|
|
1259
|
+
|
|
1260
|
+
_CCCL_API constexpr month_day_last operator/(const month& __lhs, last_spec) noexcept
|
|
1261
|
+
{
|
|
1262
|
+
return month_day_last{__lhs};
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
_CCCL_API constexpr month_day_last operator/(last_spec, const month& __rhs) noexcept
|
|
1266
|
+
{
|
|
1267
|
+
return month_day_last{__rhs};
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1270
|
+
_CCCL_API constexpr month_day_last operator/(int __lhs, last_spec) noexcept
|
|
1271
|
+
{
|
|
1272
|
+
return month_day_last{month(__lhs)};
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
_CCCL_API constexpr month_day_last operator/(last_spec, int __rhs) noexcept
|
|
1276
|
+
{
|
|
1277
|
+
return month_day_last{month(__rhs)};
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1280
|
+
class month_weekday
|
|
1281
|
+
{
|
|
1282
|
+
private:
|
|
1283
|
+
chrono::month __m;
|
|
1284
|
+
chrono::weekday_indexed __wdi;
|
|
1285
|
+
|
|
1286
|
+
public:
|
|
1287
|
+
_CCCL_HIDE_FROM_ABI month_weekday() = default;
|
|
1288
|
+
_CCCL_API constexpr month_weekday(const chrono::month& __mval, const chrono::weekday_indexed& __wdival) noexcept
|
|
1289
|
+
: __m{__mval}
|
|
1290
|
+
, __wdi{__wdival}
|
|
1291
|
+
{}
|
|
1292
|
+
_CCCL_API constexpr chrono::month month() const noexcept
|
|
1293
|
+
{
|
|
1294
|
+
return __m;
|
|
1295
|
+
}
|
|
1296
|
+
_CCCL_API constexpr chrono::weekday_indexed weekday_indexed() const noexcept
|
|
1297
|
+
{
|
|
1298
|
+
return __wdi;
|
|
1299
|
+
}
|
|
1300
|
+
_CCCL_API constexpr bool ok() const noexcept
|
|
1301
|
+
{
|
|
1302
|
+
return __m.ok() && __wdi.ok();
|
|
1303
|
+
}
|
|
1304
|
+
};
|
|
1305
|
+
|
|
1306
|
+
_CCCL_API constexpr bool operator==(const month_weekday& __lhs, const month_weekday& __rhs) noexcept
|
|
1307
|
+
{
|
|
1308
|
+
return __lhs.month() == __rhs.month() && __lhs.weekday_indexed() == __rhs.weekday_indexed();
|
|
1309
|
+
}
|
|
1310
|
+
|
|
1311
|
+
_CCCL_API constexpr bool operator!=(const month_weekday& __lhs, const month_weekday& __rhs) noexcept
|
|
1312
|
+
{
|
|
1313
|
+
return !(__lhs == __rhs);
|
|
1314
|
+
}
|
|
1315
|
+
|
|
1316
|
+
_CCCL_API constexpr month_weekday operator/(const month& __lhs, const weekday_indexed& __rhs) noexcept
|
|
1317
|
+
{
|
|
1318
|
+
return month_weekday{__lhs, __rhs};
|
|
1319
|
+
}
|
|
1320
|
+
|
|
1321
|
+
_CCCL_API constexpr month_weekday operator/(int __lhs, const weekday_indexed& __rhs) noexcept
|
|
1322
|
+
{
|
|
1323
|
+
return month_weekday{month(__lhs), __rhs};
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1326
|
+
_CCCL_API constexpr month_weekday operator/(const weekday_indexed& __lhs, const month& __rhs) noexcept
|
|
1327
|
+
{
|
|
1328
|
+
return month_weekday{__rhs, __lhs};
|
|
1329
|
+
}
|
|
1330
|
+
|
|
1331
|
+
_CCCL_API constexpr month_weekday operator/(const weekday_indexed& __lhs, int __rhs) noexcept
|
|
1332
|
+
{
|
|
1333
|
+
return month_weekday{month(__rhs), __lhs};
|
|
1334
|
+
}
|
|
1335
|
+
|
|
1336
|
+
class month_weekday_last
|
|
1337
|
+
{
|
|
1338
|
+
chrono::month __m;
|
|
1339
|
+
chrono::weekday_last __wdl;
|
|
1340
|
+
|
|
1341
|
+
public:
|
|
1342
|
+
_CCCL_API constexpr month_weekday_last(const chrono::month& __mval, const chrono::weekday_last& __wdlval) noexcept
|
|
1343
|
+
: __m{__mval}
|
|
1344
|
+
, __wdl{__wdlval}
|
|
1345
|
+
{}
|
|
1346
|
+
_CCCL_API constexpr chrono::month month() const noexcept
|
|
1347
|
+
{
|
|
1348
|
+
return __m;
|
|
1349
|
+
}
|
|
1350
|
+
_CCCL_API constexpr chrono::weekday_last weekday_last() const noexcept
|
|
1351
|
+
{
|
|
1352
|
+
return __wdl;
|
|
1353
|
+
}
|
|
1354
|
+
_CCCL_API constexpr bool ok() const noexcept
|
|
1355
|
+
{
|
|
1356
|
+
return __m.ok() && __wdl.ok();
|
|
1357
|
+
}
|
|
1358
|
+
};
|
|
1359
|
+
|
|
1360
|
+
_CCCL_API constexpr bool operator==(const month_weekday_last& __lhs, const month_weekday_last& __rhs) noexcept
|
|
1361
|
+
{
|
|
1362
|
+
return __lhs.month() == __rhs.month() && __lhs.weekday_last() == __rhs.weekday_last();
|
|
1363
|
+
}
|
|
1364
|
+
|
|
1365
|
+
_CCCL_API constexpr bool operator!=(const month_weekday_last& __lhs, const month_weekday_last& __rhs) noexcept
|
|
1366
|
+
{
|
|
1367
|
+
return !(__lhs == __rhs);
|
|
1368
|
+
}
|
|
1369
|
+
|
|
1370
|
+
_CCCL_API constexpr month_weekday_last operator/(const month& __lhs, const weekday_last& __rhs) noexcept
|
|
1371
|
+
{
|
|
1372
|
+
return month_weekday_last{__lhs, __rhs};
|
|
1373
|
+
}
|
|
1374
|
+
|
|
1375
|
+
_CCCL_API constexpr month_weekday_last operator/(int __lhs, const weekday_last& __rhs) noexcept
|
|
1376
|
+
{
|
|
1377
|
+
return month_weekday_last{month(__lhs), __rhs};
|
|
1378
|
+
}
|
|
1379
|
+
|
|
1380
|
+
_CCCL_API constexpr month_weekday_last operator/(const weekday_last& __lhs, const month& __rhs) noexcept
|
|
1381
|
+
{
|
|
1382
|
+
return month_weekday_last{__rhs, __lhs};
|
|
1383
|
+
}
|
|
1384
|
+
|
|
1385
|
+
_CCCL_API constexpr month_weekday_last operator/(const weekday_last& __lhs, int __rhs) noexcept
|
|
1386
|
+
{
|
|
1387
|
+
return month_weekday_last{month(__rhs), __lhs};
|
|
1388
|
+
}
|
|
1389
|
+
|
|
1390
|
+
class year_month
|
|
1391
|
+
{
|
|
1392
|
+
chrono::year __y;
|
|
1393
|
+
chrono::month __m;
|
|
1394
|
+
|
|
1395
|
+
public:
|
|
1396
|
+
_CCCL_HIDE_FROM_ABI year_month() = default;
|
|
1397
|
+
_CCCL_API constexpr year_month(const chrono::year& __yval, const chrono::month& __mval) noexcept
|
|
1398
|
+
: __y{__yval}
|
|
1399
|
+
, __m{__mval}
|
|
1400
|
+
{}
|
|
1401
|
+
_CCCL_API constexpr chrono::year year() const noexcept
|
|
1402
|
+
{
|
|
1403
|
+
return __y;
|
|
1404
|
+
}
|
|
1405
|
+
_CCCL_API constexpr chrono::month month() const noexcept
|
|
1406
|
+
{
|
|
1407
|
+
return __m;
|
|
1408
|
+
}
|
|
1409
|
+
_CCCL_API constexpr year_month& operator+=(const months& __dm) noexcept
|
|
1410
|
+
{
|
|
1411
|
+
this->__m += __dm;
|
|
1412
|
+
return *this;
|
|
1413
|
+
}
|
|
1414
|
+
_CCCL_API constexpr year_month& operator-=(const months& __dm) noexcept
|
|
1415
|
+
{
|
|
1416
|
+
this->__m -= __dm;
|
|
1417
|
+
return *this;
|
|
1418
|
+
}
|
|
1419
|
+
_CCCL_API constexpr year_month& operator+=(const years& __dy) noexcept
|
|
1420
|
+
{
|
|
1421
|
+
this->__y += __dy;
|
|
1422
|
+
return *this;
|
|
1423
|
+
}
|
|
1424
|
+
_CCCL_API constexpr year_month& operator-=(const years& __dy) noexcept
|
|
1425
|
+
{
|
|
1426
|
+
this->__y -= __dy;
|
|
1427
|
+
return *this;
|
|
1428
|
+
}
|
|
1429
|
+
_CCCL_API constexpr bool ok() const noexcept
|
|
1430
|
+
{
|
|
1431
|
+
return __y.ok() && __m.ok();
|
|
1432
|
+
}
|
|
1433
|
+
};
|
|
1434
|
+
|
|
1435
|
+
_CCCL_API constexpr year_month operator/(const year& __y, const month& __m) noexcept
|
|
1436
|
+
{
|
|
1437
|
+
return year_month{__y, __m};
|
|
1438
|
+
}
|
|
1439
|
+
|
|
1440
|
+
_CCCL_API constexpr year_month operator/(const year& __y, int __m) noexcept
|
|
1441
|
+
{
|
|
1442
|
+
return year_month{__y, month(__m)};
|
|
1443
|
+
}
|
|
1444
|
+
|
|
1445
|
+
_CCCL_API constexpr bool operator==(const year_month& __lhs, const year_month& __rhs) noexcept
|
|
1446
|
+
{
|
|
1447
|
+
return __lhs.year() == __rhs.year() && __lhs.month() == __rhs.month();
|
|
1448
|
+
}
|
|
1449
|
+
|
|
1450
|
+
_CCCL_API constexpr bool operator!=(const year_month& __lhs, const year_month& __rhs) noexcept
|
|
1451
|
+
{
|
|
1452
|
+
return !(__lhs == __rhs);
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1455
|
+
_CCCL_API constexpr bool operator<(const year_month& __lhs, const year_month& __rhs) noexcept
|
|
1456
|
+
{
|
|
1457
|
+
return __lhs.year() != __rhs.year() ? __lhs.year() < __rhs.year() : __lhs.month() < __rhs.month();
|
|
1458
|
+
}
|
|
1459
|
+
|
|
1460
|
+
_CCCL_API constexpr bool operator>(const year_month& __lhs, const year_month& __rhs) noexcept
|
|
1461
|
+
{
|
|
1462
|
+
return __rhs < __lhs;
|
|
1463
|
+
}
|
|
1464
|
+
|
|
1465
|
+
_CCCL_API constexpr bool operator<=(const year_month& __lhs, const year_month& __rhs) noexcept
|
|
1466
|
+
{
|
|
1467
|
+
return !(__rhs < __lhs);
|
|
1468
|
+
}
|
|
1469
|
+
|
|
1470
|
+
_CCCL_API constexpr bool operator>=(const year_month& __lhs, const year_month& __rhs) noexcept
|
|
1471
|
+
{
|
|
1472
|
+
return !(__lhs < __rhs);
|
|
1473
|
+
}
|
|
1474
|
+
|
|
1475
|
+
_CCCL_API constexpr year_month operator+(const year_month& __lhs, const months& __rhs) noexcept
|
|
1476
|
+
{
|
|
1477
|
+
int __dmi = static_cast<int>(static_cast<unsigned>(__lhs.month())) - 1 + __rhs.count();
|
|
1478
|
+
const int __dy = (__dmi >= 0 ? __dmi : __dmi - 11) / 12;
|
|
1479
|
+
__dmi = __dmi - __dy * 12 + 1;
|
|
1480
|
+
return (__lhs.year() + years(__dy)) / month(static_cast<unsigned>(__dmi));
|
|
1481
|
+
}
|
|
1482
|
+
|
|
1483
|
+
_CCCL_API constexpr year_month operator+(const months& __lhs, const year_month& __rhs) noexcept
|
|
1484
|
+
{
|
|
1485
|
+
return __rhs + __lhs;
|
|
1486
|
+
}
|
|
1487
|
+
|
|
1488
|
+
_CCCL_API constexpr year_month operator+(const year_month& __lhs, const years& __rhs) noexcept
|
|
1489
|
+
{
|
|
1490
|
+
return (__lhs.year() + __rhs) / __lhs.month();
|
|
1491
|
+
}
|
|
1492
|
+
|
|
1493
|
+
_CCCL_API constexpr year_month operator+(const years& __lhs, const year_month& __rhs) noexcept
|
|
1494
|
+
{
|
|
1495
|
+
return __rhs + __lhs;
|
|
1496
|
+
}
|
|
1497
|
+
|
|
1498
|
+
_CCCL_API constexpr months operator-(const year_month& __lhs, const year_month& __rhs) noexcept
|
|
1499
|
+
{
|
|
1500
|
+
return (__lhs.year() - __rhs.year())
|
|
1501
|
+
+ months(static_cast<unsigned>(__lhs.month()) - static_cast<unsigned>(__rhs.month()));
|
|
1502
|
+
}
|
|
1503
|
+
|
|
1504
|
+
_CCCL_API constexpr year_month operator-(const year_month& __lhs, const months& __rhs) noexcept
|
|
1505
|
+
{
|
|
1506
|
+
return __lhs + -__rhs;
|
|
1507
|
+
}
|
|
1508
|
+
|
|
1509
|
+
_CCCL_API constexpr year_month operator-(const year_month& __lhs, const years& __rhs) noexcept
|
|
1510
|
+
{
|
|
1511
|
+
return __lhs + -__rhs;
|
|
1512
|
+
}
|
|
1513
|
+
|
|
1514
|
+
class year_month_day_last;
|
|
1515
|
+
|
|
1516
|
+
class year_month_day
|
|
1517
|
+
{
|
|
1518
|
+
private:
|
|
1519
|
+
chrono::year __y;
|
|
1520
|
+
chrono::month __m;
|
|
1521
|
+
chrono::day __d;
|
|
1522
|
+
|
|
1523
|
+
public:
|
|
1524
|
+
_CCCL_HIDE_FROM_ABI year_month_day() = default;
|
|
1525
|
+
_CCCL_API constexpr year_month_day(
|
|
1526
|
+
const chrono::year& __yval, const chrono::month& __mval, const chrono::day& __dval) noexcept
|
|
1527
|
+
: __y{__yval}
|
|
1528
|
+
, __m{__mval}
|
|
1529
|
+
, __d{__dval}
|
|
1530
|
+
{}
|
|
1531
|
+
_CCCL_API constexpr year_month_day(const year_month_day_last& __ymdl) noexcept;
|
|
1532
|
+
_CCCL_API constexpr year_month_day(const sys_days& __sysd) noexcept
|
|
1533
|
+
: year_month_day(__from_days(__sysd.time_since_epoch()))
|
|
1534
|
+
{}
|
|
1535
|
+
_CCCL_API explicit constexpr year_month_day(const local_days& __locd) noexcept
|
|
1536
|
+
: year_month_day(__from_days(__locd.time_since_epoch()))
|
|
1537
|
+
{}
|
|
1538
|
+
|
|
1539
|
+
_CCCL_API constexpr year_month_day& operator+=(const months& __dm) noexcept;
|
|
1540
|
+
_CCCL_API constexpr year_month_day& operator-=(const months& __dm) noexcept;
|
|
1541
|
+
_CCCL_API constexpr year_month_day& operator+=(const years& __dy) noexcept;
|
|
1542
|
+
_CCCL_API constexpr year_month_day& operator-=(const years& __dy) noexcept;
|
|
1543
|
+
|
|
1544
|
+
_CCCL_API constexpr chrono::year year() const noexcept
|
|
1545
|
+
{
|
|
1546
|
+
return __y;
|
|
1547
|
+
}
|
|
1548
|
+
_CCCL_API constexpr chrono::month month() const noexcept
|
|
1549
|
+
{
|
|
1550
|
+
return __m;
|
|
1551
|
+
}
|
|
1552
|
+
_CCCL_API constexpr chrono::day day() const noexcept
|
|
1553
|
+
{
|
|
1554
|
+
return __d;
|
|
1555
|
+
}
|
|
1556
|
+
_CCCL_API constexpr operator sys_days() const noexcept
|
|
1557
|
+
{
|
|
1558
|
+
return sys_days{__to_days()};
|
|
1559
|
+
}
|
|
1560
|
+
_CCCL_API explicit constexpr operator local_days() const noexcept
|
|
1561
|
+
{
|
|
1562
|
+
return local_days{__to_days()};
|
|
1563
|
+
}
|
|
1564
|
+
|
|
1565
|
+
_CCCL_API constexpr bool ok() const noexcept;
|
|
1566
|
+
|
|
1567
|
+
_CCCL_API static constexpr year_month_day __from_days(days __d) noexcept;
|
|
1568
|
+
_CCCL_API constexpr days __to_days() const noexcept;
|
|
1569
|
+
};
|
|
1570
|
+
|
|
1571
|
+
// https://howardhinnant.github.io/date_algorithms.html#civil_from_days
|
|
1572
|
+
_CCCL_API constexpr year_month_day year_month_day::__from_days(days __d) noexcept
|
|
1573
|
+
{
|
|
1574
|
+
static_assert(std::numeric_limits<unsigned>::digits >= 18, "");
|
|
1575
|
+
static_assert(std::numeric_limits<int>::digits >= 20, "");
|
|
1576
|
+
const int __z = __d.count() + 719468;
|
|
1577
|
+
const int __era = (__z >= 0 ? __z : __z - 146096) / 146097;
|
|
1578
|
+
const unsigned __doe = static_cast<unsigned>(__z - __era * 146097); // [0, 146096]
|
|
1579
|
+
const unsigned __yoe = (__doe - __doe / 1460 + __doe / 36524 - __doe / 146096) / 365; // [0, 399]
|
|
1580
|
+
const int __yr = static_cast<int>(__yoe) + __era * 400;
|
|
1581
|
+
const unsigned __doy = __doe - (365 * __yoe + __yoe / 4 - __yoe / 100); // [0, 365]
|
|
1582
|
+
const unsigned __mp = (5 * __doy + 2) / 153; // [0, 11]
|
|
1583
|
+
const unsigned __dy = __doy - (153 * __mp + 2) / 5 + 1; // [1, 31]
|
|
1584
|
+
const unsigned __mth = __mp + static_cast<unsigned>(__mp < 10 ? 3 : -9); // [1, 12]
|
|
1585
|
+
return year_month_day{chrono::year{__yr + (__mth <= 2)}, chrono::month{__mth}, chrono::day{__dy}};
|
|
1586
|
+
}
|
|
1587
|
+
|
|
1588
|
+
// https://howardhinnant.github.io/date_algorithms.html#days_from_civil
|
|
1589
|
+
_CCCL_API constexpr days year_month_day::__to_days() const noexcept
|
|
1590
|
+
{
|
|
1591
|
+
static_assert(std::numeric_limits<unsigned>::digits >= 18, "");
|
|
1592
|
+
static_assert(std::numeric_limits<int>::digits >= 20, "");
|
|
1593
|
+
|
|
1594
|
+
// nvcc doesn't allow ODR using constexpr globals. Therefore,
|
|
1595
|
+
// make a temporary initialized from the global
|
|
1596
|
+
auto constexpr __Feb = February;
|
|
1597
|
+
const int __yr = static_cast<int>(__y) - (__m <= __Feb);
|
|
1598
|
+
const unsigned __mth = static_cast<unsigned>(__m);
|
|
1599
|
+
const unsigned __dy = static_cast<unsigned>(__d);
|
|
1600
|
+
|
|
1601
|
+
const int __era = (__yr >= 0 ? __yr : __yr - 399) / 400;
|
|
1602
|
+
const unsigned __yoe = static_cast<unsigned>(__yr - __era * 400); // [0, 399]
|
|
1603
|
+
const unsigned __doy =
|
|
1604
|
+
static_cast<unsigned>((153 * (__mth + static_cast<unsigned>(__mth > 2 ? -3 : 9)) + 2) / 5 + __dy - 1); // [0, 365]
|
|
1605
|
+
const unsigned __doe = __yoe * 365 + __yoe / 4 - __yoe / 100 + __doy; // [0, 146096]
|
|
1606
|
+
return days{__era * 146097 + static_cast<int>(__doe) - 719468};
|
|
1607
|
+
}
|
|
1608
|
+
|
|
1609
|
+
_CCCL_API constexpr bool operator==(const year_month_day& __lhs, const year_month_day& __rhs) noexcept
|
|
1610
|
+
{
|
|
1611
|
+
return __lhs.year() == __rhs.year() && __lhs.month() == __rhs.month() && __lhs.day() == __rhs.day();
|
|
1612
|
+
}
|
|
1613
|
+
|
|
1614
|
+
_CCCL_API constexpr bool operator!=(const year_month_day& __lhs, const year_month_day& __rhs) noexcept
|
|
1615
|
+
{
|
|
1616
|
+
return !(__lhs == __rhs);
|
|
1617
|
+
}
|
|
1618
|
+
|
|
1619
|
+
_CCCL_API constexpr bool operator<(const year_month_day& __lhs, const year_month_day& __rhs) noexcept
|
|
1620
|
+
{
|
|
1621
|
+
if (__lhs.year() < __rhs.year())
|
|
1622
|
+
{
|
|
1623
|
+
return true;
|
|
1624
|
+
}
|
|
1625
|
+
if (__lhs.year() > __rhs.year())
|
|
1626
|
+
{
|
|
1627
|
+
return false;
|
|
1628
|
+
}
|
|
1629
|
+
if (__lhs.month() < __rhs.month())
|
|
1630
|
+
{
|
|
1631
|
+
return true;
|
|
1632
|
+
}
|
|
1633
|
+
if (__lhs.month() > __rhs.month())
|
|
1634
|
+
{
|
|
1635
|
+
return false;
|
|
1636
|
+
}
|
|
1637
|
+
return __lhs.day() < __rhs.day();
|
|
1638
|
+
}
|
|
1639
|
+
|
|
1640
|
+
_CCCL_API constexpr bool operator>(const year_month_day& __lhs, const year_month_day& __rhs) noexcept
|
|
1641
|
+
{
|
|
1642
|
+
return __rhs < __lhs;
|
|
1643
|
+
}
|
|
1644
|
+
|
|
1645
|
+
_CCCL_API constexpr bool operator<=(const year_month_day& __lhs, const year_month_day& __rhs) noexcept
|
|
1646
|
+
{
|
|
1647
|
+
return !(__rhs < __lhs);
|
|
1648
|
+
}
|
|
1649
|
+
|
|
1650
|
+
_CCCL_API constexpr bool operator>=(const year_month_day& __lhs, const year_month_day& __rhs) noexcept
|
|
1651
|
+
{
|
|
1652
|
+
return !(__lhs < __rhs);
|
|
1653
|
+
}
|
|
1654
|
+
|
|
1655
|
+
_CCCL_API constexpr year_month_day operator/(const year_month& __lhs, const day& __rhs) noexcept
|
|
1656
|
+
{
|
|
1657
|
+
return year_month_day{__lhs.year(), __lhs.month(), __rhs};
|
|
1658
|
+
}
|
|
1659
|
+
|
|
1660
|
+
_CCCL_API constexpr year_month_day operator/(const year_month& __lhs, int __rhs) noexcept
|
|
1661
|
+
{
|
|
1662
|
+
return __lhs / day(__rhs);
|
|
1663
|
+
}
|
|
1664
|
+
|
|
1665
|
+
_CCCL_API constexpr year_month_day operator/(const year& __lhs, const month_day& __rhs) noexcept
|
|
1666
|
+
{
|
|
1667
|
+
return __lhs / __rhs.month() / __rhs.day();
|
|
1668
|
+
}
|
|
1669
|
+
|
|
1670
|
+
_CCCL_API constexpr year_month_day operator/(int __lhs, const month_day& __rhs) noexcept
|
|
1671
|
+
{
|
|
1672
|
+
return year(__lhs) / __rhs;
|
|
1673
|
+
}
|
|
1674
|
+
|
|
1675
|
+
_CCCL_API constexpr year_month_day operator/(const month_day& __lhs, const year& __rhs) noexcept
|
|
1676
|
+
{
|
|
1677
|
+
return __rhs / __lhs;
|
|
1678
|
+
}
|
|
1679
|
+
|
|
1680
|
+
_CCCL_API constexpr year_month_day operator/(const month_day& __lhs, int __rhs) noexcept
|
|
1681
|
+
{
|
|
1682
|
+
return year(__rhs) / __lhs;
|
|
1683
|
+
}
|
|
1684
|
+
|
|
1685
|
+
_CCCL_API constexpr year_month_day operator+(const year_month_day& __lhs, const months& __rhs) noexcept
|
|
1686
|
+
{
|
|
1687
|
+
return (__lhs.year() / __lhs.month() + __rhs) / __lhs.day();
|
|
1688
|
+
}
|
|
1689
|
+
|
|
1690
|
+
_CCCL_API constexpr year_month_day operator+(const months& __lhs, const year_month_day& __rhs) noexcept
|
|
1691
|
+
{
|
|
1692
|
+
return __rhs + __lhs;
|
|
1693
|
+
}
|
|
1694
|
+
|
|
1695
|
+
_CCCL_API constexpr year_month_day operator-(const year_month_day& __lhs, const months& __rhs) noexcept
|
|
1696
|
+
{
|
|
1697
|
+
return __lhs + -__rhs;
|
|
1698
|
+
}
|
|
1699
|
+
|
|
1700
|
+
_CCCL_API constexpr year_month_day operator+(const year_month_day& __lhs, const years& __rhs) noexcept
|
|
1701
|
+
{
|
|
1702
|
+
return (__lhs.year() + __rhs) / __lhs.month() / __lhs.day();
|
|
1703
|
+
}
|
|
1704
|
+
|
|
1705
|
+
_CCCL_API constexpr year_month_day operator+(const years& __lhs, const year_month_day& __rhs) noexcept
|
|
1706
|
+
{
|
|
1707
|
+
return __rhs + __lhs;
|
|
1708
|
+
}
|
|
1709
|
+
|
|
1710
|
+
_CCCL_API constexpr year_month_day operator-(const year_month_day& __lhs, const years& __rhs) noexcept
|
|
1711
|
+
{
|
|
1712
|
+
return __lhs + -__rhs;
|
|
1713
|
+
}
|
|
1714
|
+
|
|
1715
|
+
_CCCL_API constexpr year_month_day& year_month_day::operator+=(const months& __dm) noexcept
|
|
1716
|
+
{
|
|
1717
|
+
*this = *this + __dm;
|
|
1718
|
+
return *this;
|
|
1719
|
+
}
|
|
1720
|
+
_CCCL_API constexpr year_month_day& year_month_day::operator-=(const months& __dm) noexcept
|
|
1721
|
+
{
|
|
1722
|
+
*this = *this - __dm;
|
|
1723
|
+
return *this;
|
|
1724
|
+
}
|
|
1725
|
+
_CCCL_API constexpr year_month_day& year_month_day::operator+=(const years& __dy) noexcept
|
|
1726
|
+
{
|
|
1727
|
+
*this = *this + __dy;
|
|
1728
|
+
return *this;
|
|
1729
|
+
}
|
|
1730
|
+
_CCCL_API constexpr year_month_day& year_month_day::operator-=(const years& __dy) noexcept
|
|
1731
|
+
{
|
|
1732
|
+
*this = *this - __dy;
|
|
1733
|
+
return *this;
|
|
1734
|
+
}
|
|
1735
|
+
|
|
1736
|
+
class year_month_day_last
|
|
1737
|
+
{
|
|
1738
|
+
private:
|
|
1739
|
+
chrono::year __y;
|
|
1740
|
+
chrono::month_day_last __mdl;
|
|
1741
|
+
|
|
1742
|
+
public:
|
|
1743
|
+
_CCCL_API constexpr year_month_day_last(const year& __yval, const month_day_last& __mdlval) noexcept
|
|
1744
|
+
: __y{__yval}
|
|
1745
|
+
, __mdl{__mdlval}
|
|
1746
|
+
{}
|
|
1747
|
+
|
|
1748
|
+
_CCCL_API constexpr year_month_day_last& operator+=(const months& __m) noexcept;
|
|
1749
|
+
_CCCL_API constexpr year_month_day_last& operator-=(const months& __m) noexcept;
|
|
1750
|
+
_CCCL_API constexpr year_month_day_last& operator+=(const years& __y) noexcept;
|
|
1751
|
+
_CCCL_API constexpr year_month_day_last& operator-=(const years& __y) noexcept;
|
|
1752
|
+
|
|
1753
|
+
_CCCL_API constexpr chrono::year year() const noexcept
|
|
1754
|
+
{
|
|
1755
|
+
return __y;
|
|
1756
|
+
}
|
|
1757
|
+
_CCCL_API constexpr chrono::month month() const noexcept
|
|
1758
|
+
{
|
|
1759
|
+
return __mdl.month();
|
|
1760
|
+
}
|
|
1761
|
+
_CCCL_API constexpr chrono::month_day_last month_day_last() const noexcept
|
|
1762
|
+
{
|
|
1763
|
+
return __mdl;
|
|
1764
|
+
}
|
|
1765
|
+
_CCCL_API constexpr chrono::day day() const noexcept;
|
|
1766
|
+
_CCCL_API constexpr operator sys_days() const noexcept
|
|
1767
|
+
{
|
|
1768
|
+
return sys_days{year() / month() / day()};
|
|
1769
|
+
}
|
|
1770
|
+
_CCCL_API explicit constexpr operator local_days() const noexcept
|
|
1771
|
+
{
|
|
1772
|
+
return local_days{year() / month() / day()};
|
|
1773
|
+
}
|
|
1774
|
+
_CCCL_API constexpr bool ok() const noexcept
|
|
1775
|
+
{
|
|
1776
|
+
return __y.ok() && __mdl.ok();
|
|
1777
|
+
}
|
|
1778
|
+
};
|
|
1779
|
+
|
|
1780
|
+
_CCCL_API constexpr chrono::day year_month_day_last::day() const noexcept
|
|
1781
|
+
{
|
|
1782
|
+
constexpr chrono::day __d[] = {
|
|
1783
|
+
chrono::day(31),
|
|
1784
|
+
chrono::day(28),
|
|
1785
|
+
chrono::day(31),
|
|
1786
|
+
chrono::day(30),
|
|
1787
|
+
chrono::day(31),
|
|
1788
|
+
chrono::day(30),
|
|
1789
|
+
chrono::day(31),
|
|
1790
|
+
chrono::day(31),
|
|
1791
|
+
chrono::day(30),
|
|
1792
|
+
chrono::day(31),
|
|
1793
|
+
chrono::day(30),
|
|
1794
|
+
chrono::day(31)};
|
|
1795
|
+
|
|
1796
|
+
// nvcc doesn't allow ODR using constexpr globals. Therefore,
|
|
1797
|
+
// make a temporary initialized from the global
|
|
1798
|
+
auto constexpr __Feb = February;
|
|
1799
|
+
return month() != __Feb || !__y.is_leap() ? __d[static_cast<unsigned>(month()) - 1] : chrono::day{29};
|
|
1800
|
+
}
|
|
1801
|
+
|
|
1802
|
+
_CCCL_API constexpr bool operator==(const year_month_day_last& __lhs, const year_month_day_last& __rhs) noexcept
|
|
1803
|
+
{
|
|
1804
|
+
return __lhs.year() == __rhs.year() && __lhs.month_day_last() == __rhs.month_day_last();
|
|
1805
|
+
}
|
|
1806
|
+
|
|
1807
|
+
_CCCL_API constexpr bool operator!=(const year_month_day_last& __lhs, const year_month_day_last& __rhs) noexcept
|
|
1808
|
+
{
|
|
1809
|
+
return !(__lhs == __rhs);
|
|
1810
|
+
}
|
|
1811
|
+
|
|
1812
|
+
_CCCL_API constexpr bool operator<(const year_month_day_last& __lhs, const year_month_day_last& __rhs) noexcept
|
|
1813
|
+
{
|
|
1814
|
+
if (__lhs.year() < __rhs.year())
|
|
1815
|
+
{
|
|
1816
|
+
return true;
|
|
1817
|
+
}
|
|
1818
|
+
if (__lhs.year() > __rhs.year())
|
|
1819
|
+
{
|
|
1820
|
+
return false;
|
|
1821
|
+
}
|
|
1822
|
+
return __lhs.month_day_last() < __rhs.month_day_last();
|
|
1823
|
+
}
|
|
1824
|
+
|
|
1825
|
+
_CCCL_API constexpr bool operator>(const year_month_day_last& __lhs, const year_month_day_last& __rhs) noexcept
|
|
1826
|
+
{
|
|
1827
|
+
return __rhs < __lhs;
|
|
1828
|
+
}
|
|
1829
|
+
|
|
1830
|
+
_CCCL_API constexpr bool operator<=(const year_month_day_last& __lhs, const year_month_day_last& __rhs) noexcept
|
|
1831
|
+
{
|
|
1832
|
+
return !(__rhs < __lhs);
|
|
1833
|
+
}
|
|
1834
|
+
|
|
1835
|
+
_CCCL_API constexpr bool operator>=(const year_month_day_last& __lhs, const year_month_day_last& __rhs) noexcept
|
|
1836
|
+
{
|
|
1837
|
+
return !(__lhs < __rhs);
|
|
1838
|
+
}
|
|
1839
|
+
|
|
1840
|
+
_CCCL_API constexpr year_month_day_last operator/(const year_month& __lhs, last_spec) noexcept
|
|
1841
|
+
{
|
|
1842
|
+
return year_month_day_last{__lhs.year(), month_day_last{__lhs.month()}};
|
|
1843
|
+
}
|
|
1844
|
+
|
|
1845
|
+
_CCCL_API constexpr year_month_day_last operator/(const year& __lhs, const month_day_last& __rhs) noexcept
|
|
1846
|
+
{
|
|
1847
|
+
return year_month_day_last{__lhs, __rhs};
|
|
1848
|
+
}
|
|
1849
|
+
|
|
1850
|
+
_CCCL_API constexpr year_month_day_last operator/(int __lhs, const month_day_last& __rhs) noexcept
|
|
1851
|
+
{
|
|
1852
|
+
return year_month_day_last{year{__lhs}, __rhs};
|
|
1853
|
+
}
|
|
1854
|
+
|
|
1855
|
+
_CCCL_API constexpr year_month_day_last operator/(const month_day_last& __lhs, const year& __rhs) noexcept
|
|
1856
|
+
{
|
|
1857
|
+
return __rhs / __lhs;
|
|
1858
|
+
}
|
|
1859
|
+
|
|
1860
|
+
_CCCL_API constexpr year_month_day_last operator/(const month_day_last& __lhs, int __rhs) noexcept
|
|
1861
|
+
{
|
|
1862
|
+
return year{__rhs} / __lhs;
|
|
1863
|
+
}
|
|
1864
|
+
|
|
1865
|
+
_CCCL_API constexpr year_month_day_last operator+(const year_month_day_last& __lhs, const months& __rhs) noexcept
|
|
1866
|
+
{
|
|
1867
|
+
return (__lhs.year() / __lhs.month() + __rhs) / last;
|
|
1868
|
+
}
|
|
1869
|
+
|
|
1870
|
+
_CCCL_API constexpr year_month_day_last operator+(const months& __lhs, const year_month_day_last& __rhs) noexcept
|
|
1871
|
+
{
|
|
1872
|
+
return __rhs + __lhs;
|
|
1873
|
+
}
|
|
1874
|
+
|
|
1875
|
+
_CCCL_API constexpr year_month_day_last operator-(const year_month_day_last& __lhs, const months& __rhs) noexcept
|
|
1876
|
+
{
|
|
1877
|
+
return __lhs + (-__rhs);
|
|
1878
|
+
}
|
|
1879
|
+
|
|
1880
|
+
_CCCL_API constexpr year_month_day_last operator+(const year_month_day_last& __lhs, const years& __rhs) noexcept
|
|
1881
|
+
{
|
|
1882
|
+
return year_month_day_last{__lhs.year() + __rhs, __lhs.month_day_last()};
|
|
1883
|
+
}
|
|
1884
|
+
|
|
1885
|
+
_CCCL_API constexpr year_month_day_last operator+(const years& __lhs, const year_month_day_last& __rhs) noexcept
|
|
1886
|
+
{
|
|
1887
|
+
return __rhs + __lhs;
|
|
1888
|
+
}
|
|
1889
|
+
|
|
1890
|
+
_CCCL_API constexpr year_month_day_last operator-(const year_month_day_last& __lhs, const years& __rhs) noexcept
|
|
1891
|
+
{
|
|
1892
|
+
return __lhs + (-__rhs);
|
|
1893
|
+
}
|
|
1894
|
+
|
|
1895
|
+
_CCCL_API constexpr year_month_day_last& year_month_day_last::operator+=(const months& __dm) noexcept
|
|
1896
|
+
{
|
|
1897
|
+
*this = *this + __dm;
|
|
1898
|
+
return *this;
|
|
1899
|
+
}
|
|
1900
|
+
_CCCL_API constexpr year_month_day_last& year_month_day_last::operator-=(const months& __dm) noexcept
|
|
1901
|
+
{
|
|
1902
|
+
*this = *this - __dm;
|
|
1903
|
+
return *this;
|
|
1904
|
+
}
|
|
1905
|
+
_CCCL_API constexpr year_month_day_last& year_month_day_last::operator+=(const years& __dy) noexcept
|
|
1906
|
+
{
|
|
1907
|
+
*this = *this + __dy;
|
|
1908
|
+
return *this;
|
|
1909
|
+
}
|
|
1910
|
+
_CCCL_API constexpr year_month_day_last& year_month_day_last::operator-=(const years& __dy) noexcept
|
|
1911
|
+
{
|
|
1912
|
+
*this = *this - __dy;
|
|
1913
|
+
return *this;
|
|
1914
|
+
}
|
|
1915
|
+
|
|
1916
|
+
_CCCL_API constexpr year_month_day::year_month_day(const year_month_day_last& __ymdl) noexcept
|
|
1917
|
+
: __y{__ymdl.year()}
|
|
1918
|
+
, __m{__ymdl.month()}
|
|
1919
|
+
, __d{__ymdl.day()}
|
|
1920
|
+
{}
|
|
1921
|
+
|
|
1922
|
+
_CCCL_API constexpr bool year_month_day::ok() const noexcept
|
|
1923
|
+
{
|
|
1924
|
+
if (!__y.ok() || !__m.ok())
|
|
1925
|
+
{
|
|
1926
|
+
return false;
|
|
1927
|
+
}
|
|
1928
|
+
return chrono::day{1} <= __d && __d <= (__y / __m / last).day();
|
|
1929
|
+
}
|
|
1930
|
+
|
|
1931
|
+
class year_month_weekday
|
|
1932
|
+
{
|
|
1933
|
+
chrono::year __y;
|
|
1934
|
+
chrono::month __m;
|
|
1935
|
+
chrono::weekday_indexed __wdi;
|
|
1936
|
+
|
|
1937
|
+
public:
|
|
1938
|
+
_CCCL_HIDE_FROM_ABI year_month_weekday() = default;
|
|
1939
|
+
_CCCL_API constexpr year_month_weekday(
|
|
1940
|
+
const chrono::year& __yval, const chrono::month& __mval, const chrono::weekday_indexed& __wdival) noexcept
|
|
1941
|
+
: __y{__yval}
|
|
1942
|
+
, __m{__mval}
|
|
1943
|
+
, __wdi{__wdival}
|
|
1944
|
+
{}
|
|
1945
|
+
_CCCL_API constexpr year_month_weekday(const sys_days& __sysd) noexcept
|
|
1946
|
+
: year_month_weekday(__from_days(__sysd.time_since_epoch()))
|
|
1947
|
+
{}
|
|
1948
|
+
_CCCL_API explicit constexpr year_month_weekday(const local_days& __locd) noexcept
|
|
1949
|
+
: year_month_weekday(__from_days(__locd.time_since_epoch()))
|
|
1950
|
+
{}
|
|
1951
|
+
_CCCL_API constexpr year_month_weekday& operator+=(const months& m) noexcept;
|
|
1952
|
+
_CCCL_API constexpr year_month_weekday& operator-=(const months& m) noexcept;
|
|
1953
|
+
_CCCL_API constexpr year_month_weekday& operator+=(const years& y) noexcept;
|
|
1954
|
+
_CCCL_API constexpr year_month_weekday& operator-=(const years& y) noexcept;
|
|
1955
|
+
|
|
1956
|
+
_CCCL_API constexpr chrono::year year() const noexcept
|
|
1957
|
+
{
|
|
1958
|
+
return __y;
|
|
1959
|
+
}
|
|
1960
|
+
_CCCL_API constexpr chrono::month month() const noexcept
|
|
1961
|
+
{
|
|
1962
|
+
return __m;
|
|
1963
|
+
}
|
|
1964
|
+
_CCCL_API constexpr chrono::weekday weekday() const noexcept
|
|
1965
|
+
{
|
|
1966
|
+
return __wdi.weekday();
|
|
1967
|
+
}
|
|
1968
|
+
_CCCL_API constexpr unsigned index() const noexcept
|
|
1969
|
+
{
|
|
1970
|
+
return __wdi.index();
|
|
1971
|
+
}
|
|
1972
|
+
_CCCL_API constexpr chrono::weekday_indexed weekday_indexed() const noexcept
|
|
1973
|
+
{
|
|
1974
|
+
return __wdi;
|
|
1975
|
+
}
|
|
1976
|
+
|
|
1977
|
+
_CCCL_API constexpr operator sys_days() const noexcept
|
|
1978
|
+
{
|
|
1979
|
+
return sys_days{__to_days()};
|
|
1980
|
+
}
|
|
1981
|
+
_CCCL_API explicit constexpr operator local_days() const noexcept
|
|
1982
|
+
{
|
|
1983
|
+
return local_days{__to_days()};
|
|
1984
|
+
}
|
|
1985
|
+
_CCCL_API constexpr bool ok() const noexcept
|
|
1986
|
+
{
|
|
1987
|
+
if (!__y.ok() || !__m.ok() || !__wdi.ok())
|
|
1988
|
+
{
|
|
1989
|
+
return false;
|
|
1990
|
+
}
|
|
1991
|
+
// TODO: make sure it's a valid date
|
|
1992
|
+
return true;
|
|
1993
|
+
}
|
|
1994
|
+
|
|
1995
|
+
_CCCL_API static constexpr year_month_weekday __from_days(days __d) noexcept;
|
|
1996
|
+
_CCCL_API constexpr days __to_days() const noexcept;
|
|
1997
|
+
};
|
|
1998
|
+
|
|
1999
|
+
_CCCL_API constexpr year_month_weekday year_month_weekday::__from_days(days __d) noexcept
|
|
2000
|
+
{
|
|
2001
|
+
const sys_days __sysd{__d};
|
|
2002
|
+
const chrono::weekday __wd = chrono::weekday(__sysd);
|
|
2003
|
+
const year_month_day __ymd = year_month_day(__sysd);
|
|
2004
|
+
return year_month_weekday{__ymd.year(), __ymd.month(), __wd[(static_cast<unsigned>(__ymd.day()) - 1) / 7 + 1]};
|
|
2005
|
+
}
|
|
2006
|
+
|
|
2007
|
+
_CCCL_API constexpr days year_month_weekday::__to_days() const noexcept
|
|
2008
|
+
{
|
|
2009
|
+
const sys_days __sysd = sys_days(__y / __m / 1);
|
|
2010
|
+
return (__sysd + (__wdi.weekday() - chrono::weekday(__sysd) + days{(__wdi.index() - 1) * 7})).time_since_epoch();
|
|
2011
|
+
}
|
|
2012
|
+
|
|
2013
|
+
_CCCL_API constexpr bool operator==(const year_month_weekday& __lhs, const year_month_weekday& __rhs) noexcept
|
|
2014
|
+
{
|
|
2015
|
+
return __lhs.year() == __rhs.year() && __lhs.month() == __rhs.month()
|
|
2016
|
+
&& __lhs.weekday_indexed() == __rhs.weekday_indexed();
|
|
2017
|
+
}
|
|
2018
|
+
|
|
2019
|
+
_CCCL_API constexpr bool operator!=(const year_month_weekday& __lhs, const year_month_weekday& __rhs) noexcept
|
|
2020
|
+
{
|
|
2021
|
+
return !(__lhs == __rhs);
|
|
2022
|
+
}
|
|
2023
|
+
|
|
2024
|
+
_CCCL_API constexpr year_month_weekday operator/(const year_month& __lhs, const weekday_indexed& __rhs) noexcept
|
|
2025
|
+
{
|
|
2026
|
+
return year_month_weekday{__lhs.year(), __lhs.month(), __rhs};
|
|
2027
|
+
}
|
|
2028
|
+
|
|
2029
|
+
_CCCL_API constexpr year_month_weekday operator/(const year& __lhs, const month_weekday& __rhs) noexcept
|
|
2030
|
+
{
|
|
2031
|
+
return year_month_weekday{__lhs, __rhs.month(), __rhs.weekday_indexed()};
|
|
2032
|
+
}
|
|
2033
|
+
|
|
2034
|
+
_CCCL_API constexpr year_month_weekday operator/(int __lhs, const month_weekday& __rhs) noexcept
|
|
2035
|
+
{
|
|
2036
|
+
return year(__lhs) / __rhs;
|
|
2037
|
+
}
|
|
2038
|
+
|
|
2039
|
+
_CCCL_API constexpr year_month_weekday operator/(const month_weekday& __lhs, const year& __rhs) noexcept
|
|
2040
|
+
{
|
|
2041
|
+
return __rhs / __lhs;
|
|
2042
|
+
}
|
|
2043
|
+
|
|
2044
|
+
_CCCL_API constexpr year_month_weekday operator/(const month_weekday& __lhs, int __rhs) noexcept
|
|
2045
|
+
{
|
|
2046
|
+
return year(__rhs) / __lhs;
|
|
2047
|
+
}
|
|
2048
|
+
|
|
2049
|
+
_CCCL_API constexpr year_month_weekday operator+(const year_month_weekday& __lhs, const months& __rhs) noexcept
|
|
2050
|
+
{
|
|
2051
|
+
return (__lhs.year() / __lhs.month() + __rhs) / __lhs.weekday_indexed();
|
|
2052
|
+
}
|
|
2053
|
+
|
|
2054
|
+
_CCCL_API constexpr year_month_weekday operator+(const months& __lhs, const year_month_weekday& __rhs) noexcept
|
|
2055
|
+
{
|
|
2056
|
+
return __rhs + __lhs;
|
|
2057
|
+
}
|
|
2058
|
+
|
|
2059
|
+
_CCCL_API constexpr year_month_weekday operator-(const year_month_weekday& __lhs, const months& __rhs) noexcept
|
|
2060
|
+
{
|
|
2061
|
+
return __lhs + (-__rhs);
|
|
2062
|
+
}
|
|
2063
|
+
|
|
2064
|
+
_CCCL_API constexpr year_month_weekday operator+(const year_month_weekday& __lhs, const years& __rhs) noexcept
|
|
2065
|
+
{
|
|
2066
|
+
return year_month_weekday{__lhs.year() + __rhs, __lhs.month(), __lhs.weekday_indexed()};
|
|
2067
|
+
}
|
|
2068
|
+
|
|
2069
|
+
_CCCL_API constexpr year_month_weekday operator+(const years& __lhs, const year_month_weekday& __rhs) noexcept
|
|
2070
|
+
{
|
|
2071
|
+
return __rhs + __lhs;
|
|
2072
|
+
}
|
|
2073
|
+
|
|
2074
|
+
_CCCL_API constexpr year_month_weekday operator-(const year_month_weekday& __lhs, const years& __rhs) noexcept
|
|
2075
|
+
{
|
|
2076
|
+
return __lhs + (-__rhs);
|
|
2077
|
+
}
|
|
2078
|
+
|
|
2079
|
+
_CCCL_API constexpr year_month_weekday& year_month_weekday::operator+=(const months& __dm) noexcept
|
|
2080
|
+
{
|
|
2081
|
+
*this = *this + __dm;
|
|
2082
|
+
return *this;
|
|
2083
|
+
}
|
|
2084
|
+
_CCCL_API constexpr year_month_weekday& year_month_weekday::operator-=(const months& __dm) noexcept
|
|
2085
|
+
{
|
|
2086
|
+
*this = *this - __dm;
|
|
2087
|
+
return *this;
|
|
2088
|
+
}
|
|
2089
|
+
_CCCL_API constexpr year_month_weekday& year_month_weekday::operator+=(const years& __dy) noexcept
|
|
2090
|
+
{
|
|
2091
|
+
*this = *this + __dy;
|
|
2092
|
+
return *this;
|
|
2093
|
+
}
|
|
2094
|
+
_CCCL_API constexpr year_month_weekday& year_month_weekday::operator-=(const years& __dy) noexcept
|
|
2095
|
+
{
|
|
2096
|
+
*this = *this - __dy;
|
|
2097
|
+
return *this;
|
|
2098
|
+
}
|
|
2099
|
+
|
|
2100
|
+
class year_month_weekday_last
|
|
2101
|
+
{
|
|
2102
|
+
private:
|
|
2103
|
+
chrono::year __y;
|
|
2104
|
+
chrono::month __m;
|
|
2105
|
+
chrono::weekday_last __wdl;
|
|
2106
|
+
|
|
2107
|
+
public:
|
|
2108
|
+
_CCCL_API constexpr year_month_weekday_last(
|
|
2109
|
+
const chrono::year& __yval, const chrono::month& __mval, const chrono::weekday_last& __wdlval) noexcept
|
|
2110
|
+
: __y{__yval}
|
|
2111
|
+
, __m{__mval}
|
|
2112
|
+
, __wdl{__wdlval}
|
|
2113
|
+
{}
|
|
2114
|
+
_CCCL_API constexpr year_month_weekday_last& operator+=(const months& __dm) noexcept;
|
|
2115
|
+
_CCCL_API constexpr year_month_weekday_last& operator-=(const months& __dm) noexcept;
|
|
2116
|
+
_CCCL_API constexpr year_month_weekday_last& operator+=(const years& __dy) noexcept;
|
|
2117
|
+
_CCCL_API constexpr year_month_weekday_last& operator-=(const years& __dy) noexcept;
|
|
2118
|
+
|
|
2119
|
+
_CCCL_API constexpr chrono::year year() const noexcept
|
|
2120
|
+
{
|
|
2121
|
+
return __y;
|
|
2122
|
+
}
|
|
2123
|
+
_CCCL_API constexpr chrono::month month() const noexcept
|
|
2124
|
+
{
|
|
2125
|
+
return __m;
|
|
2126
|
+
}
|
|
2127
|
+
_CCCL_API constexpr chrono::weekday weekday() const noexcept
|
|
2128
|
+
{
|
|
2129
|
+
return __wdl.weekday();
|
|
2130
|
+
}
|
|
2131
|
+
_CCCL_API constexpr chrono::weekday_last weekday_last() const noexcept
|
|
2132
|
+
{
|
|
2133
|
+
return __wdl;
|
|
2134
|
+
}
|
|
2135
|
+
_CCCL_API constexpr operator sys_days() const noexcept
|
|
2136
|
+
{
|
|
2137
|
+
return sys_days{__to_days()};
|
|
2138
|
+
}
|
|
2139
|
+
_CCCL_API explicit constexpr operator local_days() const noexcept
|
|
2140
|
+
{
|
|
2141
|
+
return local_days{__to_days()};
|
|
2142
|
+
}
|
|
2143
|
+
_CCCL_API constexpr bool ok() const noexcept
|
|
2144
|
+
{
|
|
2145
|
+
return __y.ok() && __m.ok() && __wdl.ok();
|
|
2146
|
+
}
|
|
2147
|
+
|
|
2148
|
+
_CCCL_API constexpr days __to_days() const noexcept;
|
|
2149
|
+
};
|
|
2150
|
+
|
|
2151
|
+
_CCCL_API constexpr days year_month_weekday_last::__to_days() const noexcept
|
|
2152
|
+
{
|
|
2153
|
+
const sys_days __last = sys_days{__y / __m / last};
|
|
2154
|
+
return (__last - (chrono::weekday{__last} - __wdl.weekday())).time_since_epoch();
|
|
2155
|
+
}
|
|
2156
|
+
|
|
2157
|
+
_CCCL_API constexpr bool operator==(const year_month_weekday_last& __lhs, const year_month_weekday_last& __rhs) noexcept
|
|
2158
|
+
{
|
|
2159
|
+
return __lhs.year() == __rhs.year() && __lhs.month() == __rhs.month() && __lhs.weekday_last() == __rhs.weekday_last();
|
|
2160
|
+
}
|
|
2161
|
+
|
|
2162
|
+
_CCCL_API constexpr bool operator!=(const year_month_weekday_last& __lhs, const year_month_weekday_last& __rhs) noexcept
|
|
2163
|
+
{
|
|
2164
|
+
return !(__lhs == __rhs);
|
|
2165
|
+
}
|
|
2166
|
+
|
|
2167
|
+
_CCCL_API constexpr year_month_weekday_last operator/(const year_month& __lhs, const weekday_last& __rhs) noexcept
|
|
2168
|
+
{
|
|
2169
|
+
return year_month_weekday_last{__lhs.year(), __lhs.month(), __rhs};
|
|
2170
|
+
}
|
|
2171
|
+
|
|
2172
|
+
_CCCL_API constexpr year_month_weekday_last operator/(const year& __lhs, const month_weekday_last& __rhs) noexcept
|
|
2173
|
+
{
|
|
2174
|
+
return year_month_weekday_last{__lhs, __rhs.month(), __rhs.weekday_last()};
|
|
2175
|
+
}
|
|
2176
|
+
|
|
2177
|
+
_CCCL_API constexpr year_month_weekday_last operator/(int __lhs, const month_weekday_last& __rhs) noexcept
|
|
2178
|
+
{
|
|
2179
|
+
return year(__lhs) / __rhs;
|
|
2180
|
+
}
|
|
2181
|
+
|
|
2182
|
+
_CCCL_API constexpr year_month_weekday_last operator/(const month_weekday_last& __lhs, const year& __rhs) noexcept
|
|
2183
|
+
{
|
|
2184
|
+
return __rhs / __lhs;
|
|
2185
|
+
}
|
|
2186
|
+
|
|
2187
|
+
_CCCL_API constexpr year_month_weekday_last operator/(const month_weekday_last& __lhs, int __rhs) noexcept
|
|
2188
|
+
{
|
|
2189
|
+
return year(__rhs) / __lhs;
|
|
2190
|
+
}
|
|
2191
|
+
|
|
2192
|
+
_CCCL_API constexpr year_month_weekday_last operator+(const year_month_weekday_last& __lhs, const months& __rhs) noexcept
|
|
2193
|
+
{
|
|
2194
|
+
return (__lhs.year() / __lhs.month() + __rhs) / __lhs.weekday_last();
|
|
2195
|
+
}
|
|
2196
|
+
|
|
2197
|
+
_CCCL_API constexpr year_month_weekday_last operator+(const months& __lhs, const year_month_weekday_last& __rhs) noexcept
|
|
2198
|
+
{
|
|
2199
|
+
return __rhs + __lhs;
|
|
2200
|
+
}
|
|
2201
|
+
|
|
2202
|
+
_CCCL_API constexpr year_month_weekday_last operator-(const year_month_weekday_last& __lhs, const months& __rhs) noexcept
|
|
2203
|
+
{
|
|
2204
|
+
return __lhs + (-__rhs);
|
|
2205
|
+
}
|
|
2206
|
+
|
|
2207
|
+
_CCCL_API constexpr year_month_weekday_last operator+(const year_month_weekday_last& __lhs, const years& __rhs) noexcept
|
|
2208
|
+
{
|
|
2209
|
+
return year_month_weekday_last{__lhs.year() + __rhs, __lhs.month(), __lhs.weekday_last()};
|
|
2210
|
+
}
|
|
2211
|
+
|
|
2212
|
+
_CCCL_API constexpr year_month_weekday_last operator+(const years& __lhs, const year_month_weekday_last& __rhs) noexcept
|
|
2213
|
+
{
|
|
2214
|
+
return __rhs + __lhs;
|
|
2215
|
+
}
|
|
2216
|
+
|
|
2217
|
+
_CCCL_API constexpr year_month_weekday_last operator-(const year_month_weekday_last& __lhs, const years& __rhs) noexcept
|
|
2218
|
+
{
|
|
2219
|
+
return __lhs + (-__rhs);
|
|
2220
|
+
}
|
|
2221
|
+
|
|
2222
|
+
_CCCL_API constexpr year_month_weekday_last& year_month_weekday_last::operator+=(const months& __dm) noexcept
|
|
2223
|
+
{
|
|
2224
|
+
*this = *this + __dm;
|
|
2225
|
+
return *this;
|
|
2226
|
+
}
|
|
2227
|
+
_CCCL_API constexpr year_month_weekday_last& year_month_weekday_last::operator-=(const months& __dm) noexcept
|
|
2228
|
+
{
|
|
2229
|
+
*this = *this - __dm;
|
|
2230
|
+
return *this;
|
|
2231
|
+
}
|
|
2232
|
+
_CCCL_API constexpr year_month_weekday_last& year_month_weekday_last::operator+=(const years& __dy) noexcept
|
|
2233
|
+
{
|
|
2234
|
+
*this = *this + __dy;
|
|
2235
|
+
return *this;
|
|
2236
|
+
}
|
|
2237
|
+
_CCCL_API constexpr year_month_weekday_last& year_month_weekday_last::operator-=(const years& __dy) noexcept
|
|
2238
|
+
{
|
|
2239
|
+
*this = *this - __dy;
|
|
2240
|
+
return *this;
|
|
2241
|
+
}
|
|
2242
|
+
|
|
2243
|
+
[[nodiscard]] _CCCL_API constexpr unsigned __hh_mm_ss_width(uint64_t __n, uint64_t __d = 10, unsigned __w = 0)
|
|
2244
|
+
{
|
|
2245
|
+
if (__n >= 2 && __d != 0 && __w < 19)
|
|
2246
|
+
{
|
|
2247
|
+
return 1 + __hh_mm_ss_width(__n, __d % __n * 10, __w + 1);
|
|
2248
|
+
}
|
|
2249
|
+
return 0;
|
|
2250
|
+
}
|
|
2251
|
+
|
|
2252
|
+
template <class _Duration>
|
|
2253
|
+
class hh_mm_ss
|
|
2254
|
+
{
|
|
2255
|
+
private:
|
|
2256
|
+
static_assert(__is_cuda_std_duration_v<_Duration>, "template parameter of hh_mm_ss must be a std::chrono::duration");
|
|
2257
|
+
using __CommonType = typename common_type<_Duration, chrono::seconds>::type;
|
|
2258
|
+
|
|
2259
|
+
_CCCL_API static constexpr uint64_t __pow10(unsigned __exp)
|
|
2260
|
+
{
|
|
2261
|
+
uint64_t __ret = 1;
|
|
2262
|
+
for (unsigned __i = 0; __i < __exp; ++__i)
|
|
2263
|
+
{
|
|
2264
|
+
__ret *= 10U;
|
|
2265
|
+
}
|
|
2266
|
+
return __ret;
|
|
2267
|
+
}
|
|
2268
|
+
|
|
2269
|
+
public:
|
|
2270
|
+
static unsigned constexpr fractional_width =
|
|
2271
|
+
__hh_mm_ss_width(__CommonType::period::den) < 19 ? __hh_mm_ss_width(__CommonType::period::den) : 6u;
|
|
2272
|
+
using precision = duration<typename __CommonType::rep, ratio<1, __pow10(fractional_width)>>;
|
|
2273
|
+
|
|
2274
|
+
_CCCL_API constexpr hh_mm_ss() noexcept
|
|
2275
|
+
: hh_mm_ss{_Duration::zero()}
|
|
2276
|
+
{}
|
|
2277
|
+
|
|
2278
|
+
_CCCL_API constexpr explicit hh_mm_ss(_Duration __d) noexcept
|
|
2279
|
+
: __is_neg(__d < _Duration(0))
|
|
2280
|
+
, __h(duration_cast<chrono::hours>(abs(__d)))
|
|
2281
|
+
, __m(duration_cast<chrono::minutes>(abs(__d) - hours()))
|
|
2282
|
+
, __s(duration_cast<chrono::seconds>(abs(__d) - hours() - minutes()))
|
|
2283
|
+
, __f(duration_cast<precision>(abs(__d) - hours() - minutes() - seconds()))
|
|
2284
|
+
{}
|
|
2285
|
+
|
|
2286
|
+
_CCCL_API constexpr bool is_negative() const noexcept
|
|
2287
|
+
{
|
|
2288
|
+
return __is_neg;
|
|
2289
|
+
}
|
|
2290
|
+
_CCCL_API constexpr chrono::hours hours() const noexcept
|
|
2291
|
+
{
|
|
2292
|
+
return __h;
|
|
2293
|
+
}
|
|
2294
|
+
_CCCL_API constexpr chrono::minutes minutes() const noexcept
|
|
2295
|
+
{
|
|
2296
|
+
return __m;
|
|
2297
|
+
}
|
|
2298
|
+
_CCCL_API constexpr chrono::seconds seconds() const noexcept
|
|
2299
|
+
{
|
|
2300
|
+
return __s;
|
|
2301
|
+
}
|
|
2302
|
+
_CCCL_API constexpr precision subseconds() const noexcept
|
|
2303
|
+
{
|
|
2304
|
+
return __f;
|
|
2305
|
+
}
|
|
2306
|
+
|
|
2307
|
+
_CCCL_API constexpr precision to_duration() const noexcept
|
|
2308
|
+
{
|
|
2309
|
+
auto __dur = __h + __m + __s + __f;
|
|
2310
|
+
return __is_neg ? -__dur : __dur;
|
|
2311
|
+
}
|
|
2312
|
+
|
|
2313
|
+
_CCCL_API constexpr explicit operator precision() const noexcept
|
|
2314
|
+
{
|
|
2315
|
+
return to_duration();
|
|
2316
|
+
}
|
|
2317
|
+
|
|
2318
|
+
private:
|
|
2319
|
+
bool __is_neg;
|
|
2320
|
+
chrono::hours __h;
|
|
2321
|
+
chrono::minutes __m;
|
|
2322
|
+
chrono::seconds __s;
|
|
2323
|
+
precision __f;
|
|
2324
|
+
};
|
|
2325
|
+
|
|
2326
|
+
_CCCL_API constexpr bool is_am(const hours& __h) noexcept
|
|
2327
|
+
{
|
|
2328
|
+
return __h >= hours(0) && __h < hours(12);
|
|
2329
|
+
}
|
|
2330
|
+
_CCCL_API constexpr bool is_pm(const hours& __h) noexcept
|
|
2331
|
+
{
|
|
2332
|
+
return __h >= hours(12) && __h < hours(24);
|
|
2333
|
+
}
|
|
2334
|
+
|
|
2335
|
+
_CCCL_API constexpr hours make12(const hours& __h) noexcept
|
|
2336
|
+
{
|
|
2337
|
+
if (__h == hours(0))
|
|
2338
|
+
{
|
|
2339
|
+
return hours(12);
|
|
2340
|
+
}
|
|
2341
|
+
else if (__h <= hours(12))
|
|
2342
|
+
{
|
|
2343
|
+
return __h;
|
|
2344
|
+
}
|
|
2345
|
+
else
|
|
2346
|
+
{
|
|
2347
|
+
return __h - hours(12);
|
|
2348
|
+
}
|
|
2349
|
+
}
|
|
2350
|
+
|
|
2351
|
+
_CCCL_API constexpr hours make24(const hours& __h, bool __is_pm) noexcept
|
|
2352
|
+
{
|
|
2353
|
+
if (__is_pm)
|
|
2354
|
+
{
|
|
2355
|
+
return __h == hours(12) ? __h : __h + hours(12);
|
|
2356
|
+
}
|
|
2357
|
+
else
|
|
2358
|
+
{
|
|
2359
|
+
return __h == hours(12) ? hours(0) : __h;
|
|
2360
|
+
}
|
|
2361
|
+
}
|
|
2362
|
+
|
|
2363
|
+
} // namespace chrono
|
|
2364
|
+
|
|
2365
|
+
// GCC 5 and 6 warn (and then error) on us using the standard reserved UDL names,
|
|
2366
|
+
// but have no way of disabling that. Use the system_header pragma on those GCC versions
|
|
2367
|
+
// for the remainder of this file, even if it has been requested to disable the pragma
|
|
2368
|
+
// earlier.
|
|
2369
|
+
#if _CCCL_COMPILER(GCC, >=, 5) && _CCCL_COMPILER(GCC, <, 7)
|
|
2370
|
+
# pragma GCC system_header
|
|
2371
|
+
#endif
|
|
2372
|
+
|
|
2373
|
+
_CCCL_DIAG_PUSH
|
|
2374
|
+
_CCCL_DIAG_SUPPRESS_GCC("-Wliteral-suffix")
|
|
2375
|
+
_CCCL_DIAG_SUPPRESS_CLANG("-Wuser-defined-literals")
|
|
2376
|
+
_CCCL_DIAG_SUPPRESS_NVHPC(lit_suffix_no_underscore)
|
|
2377
|
+
_CCCL_DIAG_SUPPRESS_MSVC(4455) // literal suffix identifiers that do not start with an underscore are reserved
|
|
2378
|
+
_CCCL_BEGIN_NV_DIAG_SUPPRESS(2506) // a user-provided literal suffix must begin with "_"
|
|
2379
|
+
|
|
2380
|
+
// Suffixes for duration literals [time.duration.literals]
|
|
2381
|
+
inline namespace literals
|
|
2382
|
+
{
|
|
2383
|
+
inline namespace chrono_literals
|
|
2384
|
+
{
|
|
2385
|
+
|
|
2386
|
+
_CCCL_API constexpr chrono::hours operator""h(unsigned long long __h)
|
|
2387
|
+
{
|
|
2388
|
+
return chrono::hours(static_cast<chrono::hours::rep>(__h));
|
|
2389
|
+
}
|
|
2390
|
+
|
|
2391
|
+
_CCCL_API constexpr chrono::duration<_LIBCUDACXX_CHRONO_LITERAL_INTERNAL_T, ratio<3600, 1>> operator""h(long double __h)
|
|
2392
|
+
{
|
|
2393
|
+
return chrono::duration<_LIBCUDACXX_CHRONO_LITERAL_INTERNAL_T, ratio<3600, 1>>(__h);
|
|
2394
|
+
}
|
|
2395
|
+
|
|
2396
|
+
_CCCL_API constexpr chrono::minutes operator""min(unsigned long long __m)
|
|
2397
|
+
{
|
|
2398
|
+
return chrono::minutes(static_cast<chrono::minutes::rep>(__m));
|
|
2399
|
+
}
|
|
2400
|
+
|
|
2401
|
+
_CCCL_API constexpr chrono::duration<_LIBCUDACXX_CHRONO_LITERAL_INTERNAL_T, ratio<60, 1>> operator""min(long double __m)
|
|
2402
|
+
{
|
|
2403
|
+
return chrono::duration<_LIBCUDACXX_CHRONO_LITERAL_INTERNAL_T, ratio<60, 1>>(__m);
|
|
2404
|
+
}
|
|
2405
|
+
|
|
2406
|
+
_CCCL_API constexpr chrono::seconds operator""s(unsigned long long __s)
|
|
2407
|
+
{
|
|
2408
|
+
return chrono::seconds(static_cast<chrono::seconds::rep>(__s));
|
|
2409
|
+
}
|
|
2410
|
+
|
|
2411
|
+
_CCCL_API constexpr chrono::duration<_LIBCUDACXX_CHRONO_LITERAL_INTERNAL_T> operator""s(long double __s)
|
|
2412
|
+
{
|
|
2413
|
+
return chrono::duration<_LIBCUDACXX_CHRONO_LITERAL_INTERNAL_T>(__s);
|
|
2414
|
+
}
|
|
2415
|
+
|
|
2416
|
+
_CCCL_API constexpr chrono::milliseconds operator""ms(unsigned long long __ms)
|
|
2417
|
+
{
|
|
2418
|
+
return chrono::milliseconds(static_cast<chrono::milliseconds::rep>(__ms));
|
|
2419
|
+
}
|
|
2420
|
+
|
|
2421
|
+
_CCCL_API constexpr chrono::duration<_LIBCUDACXX_CHRONO_LITERAL_INTERNAL_T, milli> operator""ms(long double __ms)
|
|
2422
|
+
{
|
|
2423
|
+
return chrono::duration<_LIBCUDACXX_CHRONO_LITERAL_INTERNAL_T, milli>(__ms);
|
|
2424
|
+
}
|
|
2425
|
+
|
|
2426
|
+
_CCCL_API constexpr chrono::microseconds operator""us(unsigned long long __us)
|
|
2427
|
+
{
|
|
2428
|
+
return chrono::microseconds(static_cast<chrono::microseconds::rep>(__us));
|
|
2429
|
+
}
|
|
2430
|
+
|
|
2431
|
+
_CCCL_API constexpr chrono::duration<_LIBCUDACXX_CHRONO_LITERAL_INTERNAL_T, micro> operator""us(long double __us)
|
|
2432
|
+
{
|
|
2433
|
+
return chrono::duration<_LIBCUDACXX_CHRONO_LITERAL_INTERNAL_T, micro>(__us);
|
|
2434
|
+
}
|
|
2435
|
+
|
|
2436
|
+
_CCCL_API constexpr chrono::nanoseconds operator""ns(unsigned long long __ns)
|
|
2437
|
+
{
|
|
2438
|
+
return chrono::nanoseconds(static_cast<chrono::nanoseconds::rep>(__ns));
|
|
2439
|
+
}
|
|
2440
|
+
|
|
2441
|
+
_CCCL_API constexpr chrono::duration<_LIBCUDACXX_CHRONO_LITERAL_INTERNAL_T, nano> operator""ns(long double __ns)
|
|
2442
|
+
{
|
|
2443
|
+
return chrono::duration<_LIBCUDACXX_CHRONO_LITERAL_INTERNAL_T, nano>(__ns);
|
|
2444
|
+
}
|
|
2445
|
+
|
|
2446
|
+
#if _LIBCUDACXX_HAS_CXX20_CHRONO_LITERALS()
|
|
2447
|
+
_CCCL_API constexpr chrono::day operator""d(unsigned long long __d) noexcept
|
|
2448
|
+
{
|
|
2449
|
+
return chrono::day(static_cast<unsigned>(__d));
|
|
2450
|
+
}
|
|
2451
|
+
|
|
2452
|
+
_CCCL_API constexpr chrono::year operator""y(unsigned long long __y) noexcept
|
|
2453
|
+
{
|
|
2454
|
+
return chrono::year(static_cast<int>(__y));
|
|
2455
|
+
}
|
|
2456
|
+
#endif // _LIBCUDACXX_HAS_CXX20_CHRONO_LITERALS()
|
|
2457
|
+
} // namespace chrono_literals
|
|
2458
|
+
} // namespace literals
|
|
2459
|
+
|
|
2460
|
+
_CCCL_END_NV_DIAG_SUPPRESS()
|
|
2461
|
+
_CCCL_DIAG_POP
|
|
2462
|
+
|
|
2463
|
+
namespace chrono
|
|
2464
|
+
{ // hoist the literals into namespace std::chrono
|
|
2465
|
+
using namespace literals::chrono_literals;
|
|
2466
|
+
}
|
|
2467
|
+
|
|
2468
|
+
_CCCL_END_NAMESPACE_CUDA_STD
|
|
2469
|
+
|
|
2470
|
+
#ifndef __cuda_std__
|
|
2471
|
+
|
|
2472
|
+
_CCCL_BEGIN_NAMESPACE_FILESYSTEM
|
|
2473
|
+
struct _FilesystemClock
|
|
2474
|
+
{
|
|
2475
|
+
# if _CCCL_HAS_INT128()
|
|
2476
|
+
using rep = __int128_t;
|
|
2477
|
+
using period = nano;
|
|
2478
|
+
# else // ^^^ _CCCL_HAS_INT128() ^^^ / vvv !_CCCL_HAS_INT128() vvv
|
|
2479
|
+
using rep = long long;
|
|
2480
|
+
using period = nano;
|
|
2481
|
+
# endif // !_CCCL_HAS_INT128()
|
|
2482
|
+
|
|
2483
|
+
using duration = chrono::duration<rep, period>;
|
|
2484
|
+
using time_point = chrono::time_point<_FilesystemClock>;
|
|
2485
|
+
|
|
2486
|
+
_CCCL_VISIBILITY_DEFAULT static constexpr const bool is_steady = false;
|
|
2487
|
+
|
|
2488
|
+
_CCCL_API inline static time_point now() noexcept;
|
|
2489
|
+
|
|
2490
|
+
_CCCL_API inline static time_t to_time_t(const time_point& __t) noexcept
|
|
2491
|
+
{
|
|
2492
|
+
using __secs = chrono::duration<rep>;
|
|
2493
|
+
return time_t(chrono::duration_cast<__secs>(__t.time_since_epoch()).count());
|
|
2494
|
+
}
|
|
2495
|
+
|
|
2496
|
+
_CCCL_API inline static time_point from_time_t(time_t __t) noexcept
|
|
2497
|
+
{
|
|
2498
|
+
using __secs = chrono::duration<rep>;
|
|
2499
|
+
return time_point(__secs(__t));
|
|
2500
|
+
}
|
|
2501
|
+
};
|
|
2502
|
+
_CCCL_END_NAMESPACE_FILESYSTEM
|
|
2503
|
+
#endif // __cuda_std__
|
|
2504
|
+
|
|
2505
|
+
_CCCL_END_NV_DIAG_SUPPRESS()
|
|
2506
|
+
|
|
2507
|
+
#include <cuda/std/__cccl/epilogue.h>
|
|
2508
|
+
|
|
2509
|
+
#endif // _LIBCUDACXX_CHRONO
|