The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .clang-format
├── .git-blame-ignore-revs
├── .github
    ├── ISSUE_TEMPLATE
    │   └── config.yml
    └── workflows
    │   ├── deploy-documentation-github-pages.yml
    │   ├── mirror-main-branch-to-master-branch.yml
    │   └── xrefcheck-validate-markdown-links.yml
├── .gitignore
├── .gitmodules
├── CHANGELOG.md
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── LICENSE
├── Makefile
├── README.md
├── ci
    ├── axis
    │   ├── cpu.yml
    │   └── gpu.yml
    ├── common
    │   ├── build.bash
    │   ├── determine_build_parallelism.bash
    │   ├── memmon.py
    │   └── memmon_config
    │   │   └── procps
    │   │       └── toprc
    ├── cpu
    │   └── build.bash
    ├── gpu
    │   └── build.bash
    └── local
    │   └── build.bash
├── cmake
    ├── AppendOptionIfAvailable.cmake
    ├── DetectSupportedStandards.cmake
    ├── PrintCTestRunTimes.cmake
    ├── PrintNinjaBuildTimes.cmake
    ├── ThrustAddSubdir.cmake
    ├── ThrustBuildCompilerTargets.cmake
    ├── ThrustBuildTargetList.cmake
    ├── ThrustCompilerHacks.cmake
    ├── ThrustCudaConfig.cmake
    ├── ThrustFindThrust.cmake
    ├── ThrustHeaderTesting.cmake
    ├── ThrustInstallRules.cmake
    ├── ThrustMultiConfig.cmake
    ├── ThrustRunExample.cmake
    ├── ThrustRunTest.cmake
    ├── ThrustUtilities.cmake
    ├── detect_compute_archs.cu
    ├── filecheck_smoke_test
    ├── header_test.in
    └── wrap_source_file.cpp.in
├── docs
    ├── doxybook
    │   ├── config.json
    │   └── templates
    │   │   ├── class_members.tmpl
    │   │   ├── class_members_details.tmpl
    │   │   ├── details.tmpl
    │   │   ├── frontmatter.tmpl
    │   │   ├── index.tmpl
    │   │   ├── index_classes.tmpl
    │   │   ├── index_examples.tmpl
    │   │   ├── index_files.tmpl
    │   │   ├── index_groups.tmpl
    │   │   ├── index_namespaces.tmpl
    │   │   ├── index_pages.tmpl
    │   │   ├── kind_class.tmpl
    │   │   ├── kind_example.tmpl
    │   │   ├── kind_file.tmpl
    │   │   ├── kind_group.tmpl
    │   │   ├── kind_nonclass.tmpl
    │   │   ├── kind_page.tmpl
    │   │   ├── member_details.tmpl
    │   │   ├── name.tmpl
    │   │   ├── name_qualified.tmpl
    │   │   ├── name_unqualified.tmpl
    │   │   ├── namespace_members.tmpl
    │   │   ├── nonclass_members.tmpl
    │   │   ├── nonclass_members_details.tmpl
    │   │   ├── synopsis_brief.tmpl
    │   │   ├── synopsis_class.tmpl
    │   │   ├── synopsis_friend_class.tmpl
    │   │   ├── synopsis_friend_function.tmpl
    │   │   ├── synopsis_function.tmpl
    │   │   ├── synopsis_function_parameters.tmpl
    │   │   ├── synopsis_function_trailing_specifiers.tmpl
    │   │   ├── synopsis_function_type_and_leading_specifiers.tmpl
    │   │   ├── synopsis_indent.tmpl
    │   │   ├── synopsis_inherited_from.tmpl
    │   │   ├── synopsis_inherited_from_comment.tmpl
    │   │   ├── synopsis_initializer.tmpl
    │   │   ├── synopsis_initializer_abbreviated.tmpl
    │   │   ├── synopsis_kind.tmpl
    │   │   ├── synopsis_kind_abbreviated.tmpl
    │   │   ├── synopsis_leading_line_break.tmpl
    │   │   ├── synopsis_macro.tmpl
    │   │   ├── synopsis_member_namespace_abbreviated.tmpl
    │   │   ├── synopsis_namespace_abbreviated.tmpl
    │   │   ├── synopsis_template_parameters.tmpl
    │   │   ├── synopsis_type.tmpl
    │   │   ├── synopsis_type_and_leading_specifiers.tmpl
    │   │   ├── synopsis_variable.tmpl
    │   │   ├── table_header_brief.tmpl
    │   │   ├── table_header_enum.tmpl
    │   │   ├── table_row_brief.tmpl
    │   │   ├── table_row_enum.tmpl
    │   │   ├── title_kind.tmpl
    │   │   ├── title_leading.tmpl
    │   │   ├── title_member.tmpl
    │   │   ├── title_nonmember.tmpl
    │   │   └── title_trailing.tmpl
    ├── doxygen
    │   └── config.dox
    ├── generate_markdown.bash
    ├── github_pages
    │   ├── Gemfile
    │   ├── _config.yml
    │   ├── _sass
    │   │   └── color_schemes
    │   │   │   └── nvidia.scss
    │   ├── api.md
    │   ├── assets
    │   │   └── images
    │   │   │   └── nvidia_logo.png
    │   ├── contributing.md
    │   ├── contributing
    │   │   ├── release_process.md
    │   │   └── submitting_a_pr.md
    │   ├── favicon.ico
    │   ├── releases.md
    │   ├── releases
    │   │   └── versioning.md
    │   ├── setup.md
    │   └── setup
    │   │   ├── cmake_options.md
    │   │   └── requirements.md
    └── serve_docs_locally.bash
├── examples
    ├── CMakeLists.txt
    ├── README.md
    ├── arbitrary_transformation.cu
    ├── basic_vector.cu
    ├── bounding_box.cu
    ├── bucket_sort2d.cu
    ├── cmake
    │   ├── CMakeLists.txt
    │   └── add_subdir
    │   │   ├── CMakeLists.txt
    │   │   ├── dummy.cpp
    │   │   └── dummy.cu
    ├── constant_iterator.cu
    ├── counting_iterator.cu
    ├── cpp_integration
    │   ├── README
    │   ├── device.cu
    │   ├── device.h
    │   └── host.cpp
    ├── cuda
    │   ├── CMakeLists.txt
    │   ├── async_reduce.cu
    │   ├── custom_temporary_allocation.cu
    │   ├── explicit_cuda_stream.cu
    │   ├── global_device_vector.cu
    │   ├── range_view.cu
    │   ├── unwrap_pointer.cu
    │   └── wrap_pointer.cu
    ├── device_ptr.cu
    ├── discrete_voronoi.cu
    ├── dot_products_with_zip.cu
    ├── expand.cu
    ├── fill_copy_sequence.cu
    ├── histogram.cu
    ├── include
    │   └── timer.h
    ├── lambda.cu
    ├── lexicographical_sort.cu
    ├── max_abs_diff.cu
    ├── minimal_custom_backend.cu
    ├── minmax.cu
    ├── mode.cu
    ├── monte_carlo.cu
    ├── monte_carlo_disjoint_sequences.cu
    ├── mr_basic.cu
    ├── norm.cu
    ├── padded_grid_reduction.cu
    ├── permutation_iterator.cu
    ├── raw_reference_cast.cu
    ├── remove_points2d.cu
    ├── repeated_range.cu
    ├── run_length_decoding.cu
    ├── run_length_encoding.cu
    ├── saxpy.cu
    ├── scan_by_key.cu
    ├── scan_matrix_by_rows.cu
    ├── set_operations.cu
    ├── simple_moving_average.cu
    ├── sort.cu
    ├── sorting_aos_vs_soa.cu
    ├── sparse_vector.cu
    ├── stream_compaction.cu
    ├── strided_range.cu
    ├── sum.cu
    ├── sum_rows.cu
    ├── summary_statistics.cu
    ├── summed_area_table.cu
    ├── tiled_range.cu
    ├── transform_input_output_iterator.cu
    ├── transform_iterator.cu
    ├── transform_output_iterator.cu
    ├── uninitialized_vector.cu
    ├── version.cu
    ├── weld_vertices.cu
    └── word_count.cu
├── generate_mk.py
├── internal
    ├── benchmark
    │   ├── CMakeLists.txt
    │   ├── README.txt
    │   ├── bench.cu
    │   ├── bench.mk
    │   ├── combine_benchmark_results.py
    │   ├── compare_benchmark_results.py
    │   ├── random.h
    │   ├── tbb_algos.h
    │   └── timer.h
    ├── build
    │   ├── common_build.mk
    │   ├── common_compiler.mk
    │   ├── common_detect.mk
    │   ├── generic_example.mk
    │   ├── generic_test.mk
    │   ├── testframework.mk
    │   ├── warningstester.mk
    │   └── warningstester_create_uber_header.py
    ├── racecheck.sh
    ├── rename_cub_namespace.sh
    ├── reverse_rename_cub_namespace.sh
    ├── scripts
    │   ├── eris_perf.py
    │   ├── refresh_from_github2.sh
    │   ├── tounix
    │   └── wiki2tex.py
    └── test
    │   ├── dvstest.lst
    │   ├── thrust.example.arbitrary_transformation.filecheck
    │   ├── thrust.example.basic_vector.filecheck
    │   ├── thrust.example.bounding_box.filecheck
    │   ├── thrust.example.bucket_sort2d.filecheck
    │   ├── thrust.example.constant_iterator.filecheck
    │   ├── thrust.example.counting_iterator.filecheck
    │   ├── thrust.example.cuda.async_reduce.filecheck
    │   ├── thrust.example.cuda.custom_temporary_allocation.filecheck
    │   ├── thrust.example.cuda.explicit_cuda_stream.filecheck
    │   ├── thrust.example.cuda.fallback_allocator.filecheck
    │   ├── thrust.example.cuda.global_device_vector.filecheck
    │   ├── thrust.example.cuda.range_view.filecheck
    │   ├── thrust.example.cuda.unwrap_pointer.filecheck
    │   ├── thrust.example.cuda.wrap_pointer.filecheck
    │   ├── thrust.example.device_ptr.filecheck
    │   ├── thrust.example.discrete_voronoi.filecheck
    │   ├── thrust.example.dot_products_with_zip.filecheck
    │   ├── thrust.example.expand.filecheck
    │   ├── thrust.example.fill_copy_sequence.filecheck
    │   ├── thrust.example.histogram.filecheck
    │   ├── thrust.example.lambda.filecheck
    │   ├── thrust.example.lexicographical_sort.filecheck
    │   ├── thrust.example.max_abs_diff.filecheck
    │   ├── thrust.example.minimal_custom_backend.filecheck
    │   ├── thrust.example.minmax.filecheck
    │   ├── thrust.example.mode.filecheck
    │   ├── thrust.example.monte_carlo.filecheck
    │   ├── thrust.example.monte_carlo_disjoint_sequences.filecheck
    │   ├── thrust.example.mr_basic.filecheck
    │   ├── thrust.example.norm.filecheck
    │   ├── thrust.example.padded_grid_reduction.filecheck
    │   ├── thrust.example.permutation_iterator.filecheck
    │   ├── thrust.example.raw_reference_cast.filecheck
    │   ├── thrust.example.remove_points2d.filecheck
    │   ├── thrust.example.repeated_range.filecheck
    │   ├── thrust.example.run_length_decoding.filecheck
    │   ├── thrust.example.run_length_encoding.filecheck
    │   ├── thrust.example.saxpy.filecheck
    │   ├── thrust.example.scan_by_key.filecheck
    │   ├── thrust.example.scan_matrix_by_rows.filecheck
    │   ├── thrust.example.set_operations.filecheck
    │   ├── thrust.example.simple_moving_average.filecheck
    │   ├── thrust.example.sort.filecheck
    │   ├── thrust.example.sorting_aos_vs_soa.filecheck
    │   ├── thrust.example.sparse_vector.filecheck
    │   ├── thrust.example.stream_compaction.filecheck
    │   ├── thrust.example.strided_range.filecheck
    │   ├── thrust.example.sum.filecheck
    │   ├── thrust.example.sum_rows.filecheck
    │   ├── thrust.example.summary_statistics.filecheck
    │   ├── thrust.example.summed_area_table.filecheck
    │   ├── thrust.example.tiled_range.filecheck
    │   ├── thrust.example.transform_input_output_iterator.filecheck
    │   ├── thrust.example.transform_iterator.filecheck
    │   ├── thrust.example.transform_output_iterator.filecheck
    │   ├── thrust.example.uninitialized_vector.filecheck
    │   ├── thrust.example.version.filecheck
    │   ├── thrust.example.weld_vertices.filecheck
    │   ├── thrust.example.word_count.filecheck
    │   ├── thrust.smoke.filecheck
    │   ├── thrust_nightly.pl
    │   ├── unittest.lst
    │   ├── unittest_omp.lst
    │   └── warningstester.cu
├── scripts
    └── gdb-pretty-printers.py
├── testing
    ├── CMakeLists.txt
    ├── adjacent_difference.cu
    ├── advance.cu
    ├── alignment.cu
    ├── allocator.cu
    ├── allocator_aware_policies.cu
    ├── async
    │   ├── CMakeLists.txt
    │   ├── exclusive_scan
    │   │   ├── counting_iterator.cu
    │   │   ├── discard_output.cu
    │   │   ├── large_indices.cu
    │   │   ├── large_types.cu
    │   │   ├── mixed_types.cu
    │   │   ├── mixin.h
    │   │   ├── simple.cu
    │   │   ├── stateful_operator.cu
    │   │   └── using_vs_adl.cu
    │   ├── inclusive_scan
    │   │   ├── counting_iterator.cu
    │   │   ├── discard_output.cu
    │   │   ├── large_indices.cu
    │   │   ├── large_types.cu
    │   │   ├── mixed_types.cu
    │   │   ├── mixin.h
    │   │   ├── simple.cu
    │   │   ├── stateful_operator.cu
    │   │   └── using_vs_adl.cu
    │   ├── mixin.h
    │   └── test_policy_overloads.h
    ├── async_copy.cu
    ├── async_for_each.cu
    ├── async_reduce.cmake
    ├── async_reduce.cu
    ├── async_reduce_into.cu
    ├── async_sort.cu
    ├── async_transform.cu
    ├── binary_search.cu
    ├── binary_search_descending.cu
    ├── binary_search_vector.cu
    ├── binary_search_vector_descending.cu
    ├── caching_allocator.cu
    ├── cmake
    │   ├── CMakeLists.txt
    │   ├── check_source_files.cmake
    │   └── test_install
    │   │   └── CMakeLists.txt
    ├── complex.cu
    ├── complex_transform.cu
    ├── constant_iterator.cu
    ├── copy.cu
    ├── copy_n.cu
    ├── count.cu
    ├── counting_iterator.cu
    ├── cpp
    │   ├── CMakeLists.txt
    │   └── adjacent_difference.cu
    ├── cstdint.cu
    ├── cuda
    │   ├── CMakeLists.txt
    │   ├── adjacent_difference.cu
    │   ├── adjacent_difference.mk
    │   ├── binary_search.cu
    │   ├── binary_search.mk
    │   ├── complex.cu
    │   ├── complex.mk
    │   ├── copy.cu
    │   ├── copy.mk
    │   ├── copy_if.cu
    │   ├── copy_if.mk
    │   ├── count.cu
    │   ├── count.mk
    │   ├── cudart.cu
    │   ├── cudart.mk
    │   ├── device_side_universal_vector.cu
    │   ├── equal.cu
    │   ├── equal.mk
    │   ├── fill.cu
    │   ├── fill.mk
    │   ├── find.cu
    │   ├── find.mk
    │   ├── for_each.cu
    │   ├── for_each.mk
    │   ├── gather.cu
    │   ├── gather.mk
    │   ├── generate.cu
    │   ├── generate.mk
    │   ├── inner_product.cu
    │   ├── inner_product.mk
    │   ├── is_partitioned.cu
    │   ├── is_partitioned.mk
    │   ├── is_sorted.cu
    │   ├── is_sorted.mk
    │   ├── is_sorted_until.cu
    │   ├── is_sorted_until.mk
    │   ├── logical.cu
    │   ├── logical.mk
    │   ├── managed_memory_pointer.mk
    │   ├── max_element.cu
    │   ├── max_element.mk
    │   ├── memory.cu
    │   ├── memory.mk
    │   ├── merge.cu
    │   ├── merge.mk
    │   ├── merge_by_key.cu
    │   ├── merge_by_key.mk
    │   ├── merge_sort.cu
    │   ├── merge_sort.mk
    │   ├── min_element.cu
    │   ├── min_element.mk
    │   ├── minmax_element.cu
    │   ├── minmax_element.mk
    │   ├── mismatch.cu
    │   ├── mismatch.mk
    │   ├── pair_sort.cu
    │   ├── pair_sort.mk
    │   ├── pair_sort_by_key.cu
    │   ├── pair_sort_by_key.mk
    │   ├── partition.cu
    │   ├── partition.mk
    │   ├── partition_point.cu
    │   ├── partition_point.mk
    │   ├── reduce.cu
    │   ├── reduce.mk
    │   ├── reduce_by_key.cu
    │   ├── reduce_by_key.mk
    │   ├── remove.cu
    │   ├── remove.mk
    │   ├── replace.cu
    │   ├── replace.mk
    │   ├── reverse.cu
    │   ├── reverse.mk
    │   ├── scan.cu
    │   ├── scan.mk
    │   ├── scan_by_key.cu
    │   ├── scan_by_key.mk
    │   ├── scatter.cu
    │   ├── scatter.mk
    │   ├── sequence.cu
    │   ├── sequence.mk
    │   ├── set_difference.cu
    │   ├── set_difference.mk
    │   ├── set_difference_by_key.cu
    │   ├── set_difference_by_key.mk
    │   ├── set_intersection.cu
    │   ├── set_intersection.mk
    │   ├── set_intersection_by_key.cu
    │   ├── set_intersection_by_key.mk
    │   ├── set_symmetric_difference.cu
    │   ├── set_symmetric_difference.mk
    │   ├── set_symmetric_difference_by_key.cu
    │   ├── set_symmetric_difference_by_key.mk
    │   ├── set_union.cu
    │   ├── set_union.mk
    │   ├── set_union_by_key.cu
    │   ├── set_union_by_key.mk
    │   ├── sort.cu
    │   ├── sort.mk
    │   ├── sort_by_key.cu
    │   ├── sort_by_key.mk
    │   ├── stream_legacy.cu
    │   ├── stream_per_thread.cmake
    │   ├── stream_per_thread.cu
    │   ├── stream_per_thread.mk
    │   ├── swap_ranges.cu
    │   ├── swap_ranges.mk
    │   ├── tabulate.cu
    │   ├── tabulate.mk
    │   ├── transform.cu
    │   ├── transform.mk
    │   ├── transform_reduce.cu
    │   ├── transform_reduce.mk
    │   ├── transform_scan.cu
    │   ├── transform_scan.mk
    │   ├── uninitialized_copy.cu
    │   ├── uninitialized_copy.mk
    │   ├── uninitialized_fill.cu
    │   ├── uninitialized_fill.mk
    │   ├── unique.cu
    │   ├── unique.mk
    │   ├── unique_by_key.cu
    │   └── unique_by_key.mk
    ├── decompose.cu
    ├── dependencies_aware_policies.cu
    ├── dereference.cu
    ├── device_delete.cu
    ├── device_ptr.cu
    ├── device_reference.cu
    ├── discard_iterator.cu
    ├── distance.cu
    ├── docs
    │   └── doxybook_test.h
    ├── equal.cu
    ├── event.cu
    ├── fill.cu
    ├── find.cu
    ├── fix_clang_nvcc_11.5.h
    ├── for_each.cu
    ├── functional.cu
    ├── functional_arithmetic.cu
    ├── functional_bitwise.cu
    ├── functional_logical.cu
    ├── functional_placeholders_arithmetic.cu
    ├── functional_placeholders_bitwise.cu
    ├── functional_placeholders_compound_assignment.cu
    ├── functional_placeholders_logical.cu
    ├── functional_placeholders_miscellaneous.cu
    ├── functional_placeholders_relational.cu
    ├── future.cu
    ├── gather.cu
    ├── generate.cu
    ├── generate_const_iterators.cu
    ├── inner_product.cu
    ├── is_contiguous_iterator.cu
    ├── is_operator_function_object.cu
    ├── is_partitioned.cu
    ├── is_sorted.cu
    ├── is_sorted_until.cu
    ├── logical.cu
    ├── max_element.cu
    ├── memory.cu
    ├── merge.cu
    ├── merge_by_key.cu
    ├── merge_key_value.cu
    ├── metaprogamming.cu
    ├── min_and_max.cu
    ├── min_element.cu
    ├── minmax_element.cu
    ├── mismatch.cu
    ├── mr_disjoint_pool.cu
    ├── mr_new.cu
    ├── mr_pool.cu
    ├── mr_pool_options.cu
    ├── namespace_wrapped.cu
    ├── omp
    │   ├── CMakeLists.txt
    │   ├── nvcc_independence.cpp
    │   └── reduce_intervals.cu
    ├── out_of_memory_recovery.cu
    ├── pair.cu
    ├── pair_reduce.cu
    ├── pair_scan.cu
    ├── pair_scan_by_key.cu
    ├── pair_sort.cu
    ├── pair_sort_by_key.cu
    ├── pair_transform.cu
    ├── partition.cu
    ├── partition_point.cu
    ├── permutation_iterator.cu
    ├── preprocessor.cu
    ├── random.cu
    ├── reduce.cu
    ├── reduce_by_key.cu
    ├── reduce_large.cu
    ├── regression
    │   ├── CMakeLists.txt
    │   ├── gh_911__merge_by_key_wrong_element_type_default_comparator.cu
    │   ├── gh_919_nvbug_2318871__zip_iterator_with_complex.cu
    │   ├── gh_928_nvbug_2341455__reduce_with_complex.cu
    │   ├── nvbug_1632709__reduce_large_input_sizes.cu
    │   ├── nvbug_1940974__merge_with_constant_iterator.cu
    │   ├── nvbug_1965743__unnecessary_static_on_get_occ_device_properties.cu
    │   ├── nvbug_1990211__scan_requires_assignability_from_zero.cu
    │   ├── nvbug_1990211__scan_requires_assignability_from_zero.fixed0.cu
    │   └── nvbug_1990211__scan_requires_assignability_from_zero.fixed1.cu
    ├── remove.cu
    ├── replace.cu
    ├── reverse.cu
    ├── reverse_iterator.cu
    ├── scan.cu
    ├── scan_by_key.exclusive.cu
    ├── scan_by_key.inclusive.cu
    ├── scatter.cu
    ├── sequence.cu
    ├── set_difference.cu
    ├── set_difference_by_key.cu
    ├── set_difference_by_key_descending.cu
    ├── set_difference_descending.cu
    ├── set_difference_key_value.cu
    ├── set_intersection.cu
    ├── set_intersection_by_key.cu
    ├── set_intersection_by_key_descending.cu
    ├── set_intersection_descending.cu
    ├── set_intersection_key_value.cu
    ├── set_symmetric_difference.cu
    ├── set_symmetric_difference_by_key.cu
    ├── set_symmetric_difference_by_key_descending.cu
    ├── set_symmetric_difference_descending.cu
    ├── set_union.cu
    ├── set_union_by_key.cu
    ├── set_union_by_key_descending.cu
    ├── set_union_descending.cu
    ├── set_union_key_value.cu
    ├── shuffle.cu
    ├── sort.cu
    ├── sort_by_key.cu
    ├── sort_by_key_variable_bits.cu
    ├── sort_permutation_iterator.cu
    ├── sort_variable_bits.cu
    ├── stable_sort.cu
    ├── stable_sort_by_key.cu
    ├── stable_sort_by_key_large_keys.cu
    ├── stable_sort_by_key_large_keys_and_values.cu
    ├── stable_sort_by_key_large_values.cu
    ├── stable_sort_large.cu
    ├── swap_ranges.cu
    ├── tabulate.cu
    ├── transform.cu
    ├── transform_input_output_iterator.cu
    ├── transform_iterator.cu
    ├── transform_output_iterator.cu
    ├── transform_output_iterator_reduce_by_key.cu
    ├── transform_reduce.cu
    ├── transform_scan.cu
    ├── trivial_sequence.cu
    ├── tuple.cu
    ├── tuple_algorithms.cu
    ├── tuple_reduce.cu
    ├── tuple_scan.cu
    ├── tuple_sort.cu
    ├── tuple_transform.cu
    ├── type_traits.cu
    ├── uninitialized_copy.cu
    ├── uninitialized_fill.cu
    ├── unique.cu
    ├── unique_by_key.cu
    ├── unittest
    │   ├── CMakeLists.txt
    │   ├── assertions.h
    │   ├── cuda
    │   │   ├── testframework.cu
    │   │   └── testframework.h
    │   ├── exceptions.h
    │   ├── meta.h
    │   ├── random.h
    │   ├── runtime_static_assert.h
    │   ├── special_types.h
    │   ├── system.h
    │   ├── testframework.cu
    │   ├── testframework.h
    │   ├── unittest.h
    │   ├── util.h
    │   └── util_async.h
    ├── unittest_static_assert.cmake
    ├── unittest_static_assert.cu
    ├── unittest_tester.cu
    ├── universal_memory.cu
    ├── vector.cu
    ├── vector_allocators.cu
    ├── vector_insert.cu
    ├── vector_manipulation.cu
    ├── zip_function.cu
    ├── zip_iterator.cu
    ├── zip_iterator_reduce.cu
    ├── zip_iterator_reduce_by_key.cu
    ├── zip_iterator_scan.cu
    ├── zip_iterator_sort.cu
    └── zip_iterator_sort_by_key.cu
└── thrust
    ├── addressof.h
    ├── adjacent_difference.h
    ├── advance.h
    ├── allocate_unique.h
    ├── async
        ├── copy.h
        ├── for_each.h
        ├── reduce.h
        ├── scan.h
        ├── sort.h
        └── transform.h
    ├── binary_search.h
    ├── cmake
        ├── FindTBB.cmake
        ├── README.md
        ├── thrust-config-version.cmake
        ├── thrust-config.cmake
        ├── thrust-header-search.cmake
        └── thrust-header-search.cmake.in
    ├── complex.h
    ├── copy.h
    ├── count.h
    ├── detail
        ├── adjacent_difference.inl
        ├── advance.inl
        ├── algorithm_wrapper.h
        ├── alignment.h
        ├── allocator
        │   ├── allocator_traits.h
        │   ├── allocator_traits.inl
        │   ├── copy_construct_range.h
        │   ├── copy_construct_range.inl
        │   ├── default_construct_range.h
        │   ├── default_construct_range.inl
        │   ├── destroy_range.h
        │   ├── destroy_range.inl
        │   ├── fill_construct_range.h
        │   ├── fill_construct_range.inl
        │   ├── malloc_allocator.h
        │   ├── malloc_allocator.inl
        │   ├── no_throw_allocator.h
        │   ├── tagged_allocator.h
        │   ├── tagged_allocator.inl
        │   ├── temporary_allocator.h
        │   └── temporary_allocator.inl
        ├── allocator_aware_execution_policy.h
        ├── binary_search.inl
        ├── caching_allocator.h
        ├── complex
        │   ├── arithmetic.h
        │   ├── c99math.h
        │   ├── catrig.h
        │   ├── catrigf.h
        │   ├── ccosh.h
        │   ├── ccoshf.h
        │   ├── cexp.h
        │   ├── cexpf.h
        │   ├── clog.h
        │   ├── clogf.h
        │   ├── complex.inl
        │   ├── cpow.h
        │   ├── cproj.h
        │   ├── csinh.h
        │   ├── csinhf.h
        │   ├── csqrt.h
        │   ├── csqrtf.h
        │   ├── ctanh.h
        │   ├── ctanhf.h
        │   ├── math_private.h
        │   └── stream.h
        ├── config.h
        ├── config
        │   ├── compiler.h
        │   ├── compiler_fence.h
        │   ├── config.h
        │   ├── cpp_compatibility.h
        │   ├── cpp_dialect.h
        │   ├── debug.h
        │   ├── deprecated.h
        │   ├── device_system.h
        │   ├── exec_check_disable.h
        │   ├── forceinline.h
        │   ├── global_workarounds.h
        │   ├── host_device.h
        │   ├── host_system.h
        │   ├── memory_resource.h
        │   ├── namespace.h
        │   └── simple_defines.h
        ├── contiguous_storage.h
        ├── contiguous_storage.inl
        ├── copy.h
        ├── copy.inl
        ├── copy_if.h
        ├── copy_if.inl
        ├── count.h
        ├── count.inl
        ├── cpp11_required.h
        ├── cpp14_required.h
        ├── cstdint.h
        ├── dependencies_aware_execution_policy.h
        ├── device_delete.inl
        ├── device_free.inl
        ├── device_malloc.inl
        ├── device_new.inl
        ├── device_ptr.inl
        ├── distance.inl
        ├── equal.inl
        ├── event_error.h
        ├── execute_with_allocator.h
        ├── execute_with_allocator_fwd.h
        ├── execute_with_dependencies.h
        ├── execution_policy.h
        ├── extrema.inl
        ├── fill.inl
        ├── find.inl
        ├── for_each.inl
        ├── function.h
        ├── functional.inl
        ├── functional
        │   ├── actor.h
        │   ├── actor.inl
        │   ├── argument.h
        │   ├── composite.h
        │   ├── operators.h
        │   ├── operators
        │   │   ├── arithmetic_operators.h
        │   │   ├── assignment_operator.h
        │   │   ├── bitwise_operators.h
        │   │   ├── compound_assignment_operators.h
        │   │   ├── logical_operators.h
        │   │   ├── operator_adaptors.h
        │   │   └── relational_operators.h
        │   ├── placeholder.h
        │   └── value.h
        ├── gather.inl
        ├── generate.inl
        ├── get_iterator_value.h
        ├── inner_product.inl
        ├── integer_math.h
        ├── integer_traits.h
        ├── internal_functional.h
        ├── logical.inl
        ├── malloc_and_free.h
        ├── memory_algorithms.h
        ├── memory_wrapper.h
        ├── merge.inl
        ├── minmax.h
        ├── mismatch.inl
        ├── modern_gcc_required.h
        ├── mpl
        │   └── math.h
        ├── numeric_traits.h
        ├── numeric_wrapper.h
        ├── overlapped_copy.h
        ├── pair.inl
        ├── partition.inl
        ├── pointer.h
        ├── pointer.inl
        ├── preprocessor.h
        ├── range
        │   ├── head_flags.h
        │   └── tail_flags.h
        ├── raw_pointer_cast.h
        ├── raw_reference_cast.h
        ├── reduce.inl
        ├── reference.h
        ├── reference_forward_declaration.h
        ├── remove.inl
        ├── replace.inl
        ├── reverse.inl
        ├── scan.inl
        ├── scatter.inl
        ├── select_system.h
        ├── seq.h
        ├── sequence.inl
        ├── set_operations.inl
        ├── shuffle.inl
        ├── sort.inl
        ├── static_assert.h
        ├── static_map.h
        ├── swap.h
        ├── swap.inl
        ├── swap_ranges.inl
        ├── tabulate.inl
        ├── temporary_array.h
        ├── temporary_array.inl
        ├── temporary_buffer.h
        ├── transform.inl
        ├── transform_reduce.inl
        ├── transform_scan.inl
        ├── trivial_sequence.h
        ├── tuple.inl
        ├── tuple_algorithms.h
        ├── tuple_meta_transform.h
        ├── tuple_transform.h
        ├── type_deduction.h
        ├── type_traits.h
        ├── type_traits
        │   ├── function_traits.h
        │   ├── has_member_function.h
        │   ├── has_nested_type.h
        │   ├── has_trivial_assign.h
        │   ├── is_call_possible.h
        │   ├── is_metafunction_defined.h
        │   ├── iterator
        │   │   ├── is_discard_iterator.h
        │   │   └── is_output_iterator.h
        │   ├── minimum_type.h
        │   ├── pointer_traits.h
        │   └── result_of_adaptable_function.h
        ├── uninitialized_copy.inl
        ├── uninitialized_fill.inl
        ├── unique.inl
        ├── use_default.h
        ├── util
        │   └── align.h
        ├── vector_base.h
        └── vector_base.inl
    ├── device_allocator.h
    ├── device_delete.h
    ├── device_free.h
    ├── device_make_unique.h
    ├── device_malloc.h
    ├── device_malloc_allocator.h
    ├── device_new.h
    ├── device_new_allocator.h
    ├── device_ptr.h
    ├── device_reference.h
    ├── device_vector.h
    ├── distance.h
    ├── equal.h
    ├── event.h
    ├── execution_policy.h
    ├── extrema.h
    ├── fill.h
    ├── find.h
    ├── for_each.h
    ├── functional.h
    ├── future.h
    ├── gather.h
    ├── generate.h
    ├── host_vector.h
    ├── inner_product.h
    ├── iterator
        ├── constant_iterator.h
        ├── counting_iterator.h
        ├── detail
        │   ├── any_assign.h
        │   ├── any_system_tag.h
        │   ├── constant_iterator_base.h
        │   ├── counting_iterator.inl
        │   ├── device_system_tag.h
        │   ├── discard_iterator_base.h
        │   ├── distance_from_result.h
        │   ├── host_system_tag.h
        │   ├── is_iterator_category.h
        │   ├── iterator_adaptor_base.h
        │   ├── iterator_category_to_system.h
        │   ├── iterator_category_to_traversal.h
        │   ├── iterator_category_with_system_and_traversal.h
        │   ├── iterator_facade_category.h
        │   ├── iterator_traits.inl
        │   ├── iterator_traversal_tags.h
        │   ├── join_iterator.h
        │   ├── minimum_category.h
        │   ├── minimum_system.h
        │   ├── normal_iterator.h
        │   ├── permutation_iterator_base.h
        │   ├── retag.h
        │   ├── reverse_iterator.inl
        │   ├── reverse_iterator_base.h
        │   ├── tagged_iterator.h
        │   ├── transform_input_output_iterator.inl
        │   ├── transform_iterator.inl
        │   ├── transform_output_iterator.inl
        │   ├── tuple_of_iterator_references.h
        │   ├── universal_categories.h
        │   ├── zip_iterator.inl
        │   └── zip_iterator_base.h
        ├── discard_iterator.h
        ├── iterator_adaptor.h
        ├── iterator_categories.h
        ├── iterator_facade.h
        ├── iterator_traits.h
        ├── permutation_iterator.h
        ├── retag.h
        ├── reverse_iterator.h
        ├── transform_input_output_iterator.h
        ├── transform_iterator.h
        ├── transform_output_iterator.h
        └── zip_iterator.h
    ├── limits.h
    ├── logical.h
    ├── memory.h
    ├── merge.h
    ├── mismatch.h
    ├── mr
        ├── allocator.h
        ├── device_memory_resource.h
        ├── disjoint_pool.h
        ├── disjoint_sync_pool.h
        ├── disjoint_tls_pool.h
        ├── fancy_pointer_resource.h
        ├── host_memory_resource.h
        ├── memory_resource.h
        ├── new.h
        ├── polymorphic_adaptor.h
        ├── pool.h
        ├── pool_options.h
        ├── sync_pool.h
        ├── tls_pool.h
        ├── universal_memory_resource.h
        └── validator.h
    ├── optional.h
    ├── pair.h
    ├── partition.h
    ├── per_device_resource.h
    ├── random.h
    ├── random
        ├── detail
        │   ├── discard_block_engine.inl
        │   ├── linear_congruential_engine.inl
        │   ├── linear_congruential_engine_discard.h
        │   ├── linear_feedback_shift_engine.inl
        │   ├── linear_feedback_shift_engine_wordmask.h
        │   ├── mod.h
        │   ├── normal_distribution.inl
        │   ├── normal_distribution_base.h
        │   ├── random_core_access.h
        │   ├── subtract_with_carry_engine.inl
        │   ├── uniform_int_distribution.inl
        │   ├── uniform_real_distribution.inl
        │   ├── xor_combine_engine.inl
        │   └── xor_combine_engine_max.h
        ├── discard_block_engine.h
        ├── linear_congruential_engine.h
        ├── linear_feedback_shift_engine.h
        ├── normal_distribution.h
        ├── subtract_with_carry_engine.h
        ├── uniform_int_distribution.h
        ├── uniform_real_distribution.h
        └── xor_combine_engine.h
    ├── reduce.h
    ├── remove.h
    ├── replace.h
    ├── reverse.h
    ├── scan.h
    ├── scatter.h
    ├── sequence.h
    ├── set_operations.h
    ├── shuffle.h
    ├── sort.h
    ├── swap.h
    ├── system
        ├── cpp
        │   ├── detail
        │   │   ├── adjacent_difference.h
        │   │   ├── assign_value.h
        │   │   ├── binary_search.h
        │   │   ├── copy.h
        │   │   ├── copy_if.h
        │   │   ├── count.h
        │   │   ├── equal.h
        │   │   ├── execution_policy.h
        │   │   ├── extrema.h
        │   │   ├── fill.h
        │   │   ├── find.h
        │   │   ├── for_each.h
        │   │   ├── gather.h
        │   │   ├── generate.h
        │   │   ├── get_value.h
        │   │   ├── inner_product.h
        │   │   ├── iter_swap.h
        │   │   ├── logical.h
        │   │   ├── malloc_and_free.h
        │   │   ├── memory.inl
        │   │   ├── merge.h
        │   │   ├── mismatch.h
        │   │   ├── par.h
        │   │   ├── partition.h
        │   │   ├── per_device_resource.h
        │   │   ├── reduce.h
        │   │   ├── reduce_by_key.h
        │   │   ├── remove.h
        │   │   ├── replace.h
        │   │   ├── reverse.h
        │   │   ├── scan.h
        │   │   ├── scan_by_key.h
        │   │   ├── scatter.h
        │   │   ├── sequence.h
        │   │   ├── set_operations.h
        │   │   ├── sort.h
        │   │   ├── swap_ranges.h
        │   │   ├── tabulate.h
        │   │   ├── temporary_buffer.h
        │   │   ├── transform.h
        │   │   ├── transform_reduce.h
        │   │   ├── transform_scan.h
        │   │   ├── uninitialized_copy.h
        │   │   ├── uninitialized_fill.h
        │   │   ├── unique.h
        │   │   ├── unique_by_key.h
        │   │   └── vector.inl
        │   ├── execution_policy.h
        │   ├── memory.h
        │   ├── memory_resource.h
        │   ├── pointer.h
        │   └── vector.h
        ├── cuda
        │   ├── config.h
        │   ├── detail
        │   │   ├── adjacent_difference.h
        │   │   ├── assign_value.h
        │   │   ├── async
        │   │   │   ├── copy.h
        │   │   │   ├── customization.h
        │   │   │   ├── exclusive_scan.h
        │   │   │   ├── for_each.h
        │   │   │   ├── inclusive_scan.h
        │   │   │   ├── reduce.h
        │   │   │   ├── scan.h
        │   │   │   ├── sort.h
        │   │   │   └── transform.h
        │   │   ├── binary_search.h
        │   │   ├── cdp_dispatch.h
        │   │   ├── copy.h
        │   │   ├── copy_if.h
        │   │   ├── core
        │   │   │   ├── agent_launcher.h
        │   │   │   ├── alignment.h
        │   │   │   ├── triple_chevron_launch.h
        │   │   │   └── util.h
        │   │   ├── count.h
        │   │   ├── cross_system.h
        │   │   ├── dispatch.h
        │   │   ├── equal.h
        │   │   ├── error.inl
        │   │   ├── execution_policy.h
        │   │   ├── extrema.h
        │   │   ├── fill.h
        │   │   ├── find.h
        │   │   ├── for_each.h
        │   │   ├── future.inl
        │   │   ├── gather.h
        │   │   ├── generate.h
        │   │   ├── get_value.h
        │   │   ├── guarded_cuda_runtime_api.h
        │   │   ├── guarded_driver_types.h
        │   │   ├── inner_product.h
        │   │   ├── internal
        │   │   │   ├── copy_cross_system.h
        │   │   │   └── copy_device_to_device.h
        │   │   ├── iter_swap.h
        │   │   ├── logical.h
        │   │   ├── make_unsigned_special.h
        │   │   ├── malloc_and_free.h
        │   │   ├── memory.inl
        │   │   ├── merge.h
        │   │   ├── mismatch.h
        │   │   ├── par.h
        │   │   ├── par_to_seq.h
        │   │   ├── parallel_for.h
        │   │   ├── partition.h
        │   │   ├── per_device_resource.h
        │   │   ├── reduce.h
        │   │   ├── reduce_by_key.h
        │   │   ├── remove.h
        │   │   ├── replace.h
        │   │   ├── reverse.h
        │   │   ├── scan.h
        │   │   ├── scan_by_key.h
        │   │   ├── scatter.h
        │   │   ├── sequence.h
        │   │   ├── set_operations.h
        │   │   ├── sort.h
        │   │   ├── swap_ranges.h
        │   │   ├── tabulate.h
        │   │   ├── temporary_buffer.h
        │   │   ├── terminate.h
        │   │   ├── transform.h
        │   │   ├── transform_reduce.h
        │   │   ├── transform_scan.h
        │   │   ├── uninitialized_copy.h
        │   │   ├── uninitialized_fill.h
        │   │   ├── unique.h
        │   │   ├── unique_by_key.h
        │   │   └── util.h
        │   ├── error.h
        │   ├── execution_policy.h
        │   ├── future.h
        │   ├── memory.h
        │   ├── memory_resource.h
        │   ├── pointer.h
        │   └── vector.h
        ├── detail
        │   ├── adl
        │   │   ├── adjacent_difference.h
        │   │   ├── assign_value.h
        │   │   ├── async
        │   │   │   ├── copy.h
        │   │   │   ├── for_each.h
        │   │   │   ├── reduce.h
        │   │   │   ├── scan.h
        │   │   │   ├── sort.h
        │   │   │   └── transform.h
        │   │   ├── binary_search.h
        │   │   ├── copy.h
        │   │   ├── copy_if.h
        │   │   ├── count.h
        │   │   ├── equal.h
        │   │   ├── extrema.h
        │   │   ├── fill.h
        │   │   ├── find.h
        │   │   ├── for_each.h
        │   │   ├── gather.h
        │   │   ├── generate.h
        │   │   ├── get_value.h
        │   │   ├── inner_product.h
        │   │   ├── iter_swap.h
        │   │   ├── logical.h
        │   │   ├── malloc_and_free.h
        │   │   ├── merge.h
        │   │   ├── mismatch.h
        │   │   ├── partition.h
        │   │   ├── per_device_resource.h
        │   │   ├── reduce.h
        │   │   ├── reduce_by_key.h
        │   │   ├── remove.h
        │   │   ├── replace.h
        │   │   ├── reverse.h
        │   │   ├── scan.h
        │   │   ├── scan_by_key.h
        │   │   ├── scatter.h
        │   │   ├── sequence.h
        │   │   ├── set_operations.h
        │   │   ├── sort.h
        │   │   ├── swap_ranges.h
        │   │   ├── tabulate.h
        │   │   ├── temporary_buffer.h
        │   │   ├── transform.h
        │   │   ├── transform_reduce.h
        │   │   ├── transform_scan.h
        │   │   ├── uninitialized_copy.h
        │   │   ├── uninitialized_fill.h
        │   │   ├── unique.h
        │   │   └── unique_by_key.h
        │   ├── bad_alloc.h
        │   ├── errno.h
        │   ├── error_category.inl
        │   ├── error_code.inl
        │   ├── error_condition.inl
        │   ├── generic
        │   │   ├── adjacent_difference.h
        │   │   ├── adjacent_difference.inl
        │   │   ├── advance.h
        │   │   ├── advance.inl
        │   │   ├── binary_search.h
        │   │   ├── binary_search.inl
        │   │   ├── copy.h
        │   │   ├── copy.inl
        │   │   ├── copy_if.h
        │   │   ├── copy_if.inl
        │   │   ├── count.h
        │   │   ├── count.inl
        │   │   ├── distance.h
        │   │   ├── distance.inl
        │   │   ├── equal.h
        │   │   ├── equal.inl
        │   │   ├── extrema.h
        │   │   ├── extrema.inl
        │   │   ├── fill.h
        │   │   ├── find.h
        │   │   ├── find.inl
        │   │   ├── for_each.h
        │   │   ├── gather.h
        │   │   ├── gather.inl
        │   │   ├── generate.h
        │   │   ├── generate.inl
        │   │   ├── inner_product.h
        │   │   ├── inner_product.inl
        │   │   ├── logical.h
        │   │   ├── memory.h
        │   │   ├── memory.inl
        │   │   ├── merge.h
        │   │   ├── merge.inl
        │   │   ├── mismatch.h
        │   │   ├── mismatch.inl
        │   │   ├── partition.h
        │   │   ├── partition.inl
        │   │   ├── per_device_resource.h
        │   │   ├── reduce.h
        │   │   ├── reduce.inl
        │   │   ├── reduce_by_key.h
        │   │   ├── reduce_by_key.inl
        │   │   ├── remove.h
        │   │   ├── remove.inl
        │   │   ├── replace.h
        │   │   ├── replace.inl
        │   │   ├── reverse.h
        │   │   ├── reverse.inl
        │   │   ├── scalar
        │   │   │   ├── binary_search.h
        │   │   │   └── binary_search.inl
        │   │   ├── scan.h
        │   │   ├── scan.inl
        │   │   ├── scan_by_key.h
        │   │   ├── scan_by_key.inl
        │   │   ├── scatter.h
        │   │   ├── scatter.inl
        │   │   ├── select_system.h
        │   │   ├── select_system.inl
        │   │   ├── select_system_exists.h
        │   │   ├── sequence.h
        │   │   ├── sequence.inl
        │   │   ├── set_operations.h
        │   │   ├── set_operations.inl
        │   │   ├── shuffle.h
        │   │   ├── shuffle.inl
        │   │   ├── sort.h
        │   │   ├── sort.inl
        │   │   ├── swap_ranges.h
        │   │   ├── swap_ranges.inl
        │   │   ├── tabulate.h
        │   │   ├── tabulate.inl
        │   │   ├── tag.h
        │   │   ├── temporary_buffer.h
        │   │   ├── temporary_buffer.inl
        │   │   ├── transform.h
        │   │   ├── transform.inl
        │   │   ├── transform_reduce.h
        │   │   ├── transform_reduce.inl
        │   │   ├── transform_scan.h
        │   │   ├── transform_scan.inl
        │   │   ├── uninitialized_copy.h
        │   │   ├── uninitialized_copy.inl
        │   │   ├── uninitialized_fill.h
        │   │   ├── uninitialized_fill.inl
        │   │   ├── unique.h
        │   │   ├── unique.inl
        │   │   ├── unique_by_key.h
        │   │   └── unique_by_key.inl
        │   ├── internal
        │   │   └── decompose.h
        │   ├── sequential
        │   │   ├── adjacent_difference.h
        │   │   ├── assign_value.h
        │   │   ├── binary_search.h
        │   │   ├── copy.h
        │   │   ├── copy.inl
        │   │   ├── copy_backward.h
        │   │   ├── copy_if.h
        │   │   ├── count.h
        │   │   ├── equal.h
        │   │   ├── execution_policy.h
        │   │   ├── extrema.h
        │   │   ├── fill.h
        │   │   ├── find.h
        │   │   ├── for_each.h
        │   │   ├── gather.h
        │   │   ├── general_copy.h
        │   │   ├── generate.h
        │   │   ├── get_value.h
        │   │   ├── inner_product.h
        │   │   ├── insertion_sort.h
        │   │   ├── iter_swap.h
        │   │   ├── logical.h
        │   │   ├── malloc_and_free.h
        │   │   ├── merge.h
        │   │   ├── merge.inl
        │   │   ├── mismatch.h
        │   │   ├── partition.h
        │   │   ├── per_device_resource.h
        │   │   ├── reduce.h
        │   │   ├── reduce_by_key.h
        │   │   ├── remove.h
        │   │   ├── replace.h
        │   │   ├── reverse.h
        │   │   ├── scan.h
        │   │   ├── scan_by_key.h
        │   │   ├── scatter.h
        │   │   ├── sequence.h
        │   │   ├── set_operations.h
        │   │   ├── sort.h
        │   │   ├── sort.inl
        │   │   ├── stable_merge_sort.h
        │   │   ├── stable_merge_sort.inl
        │   │   ├── stable_primitive_sort.h
        │   │   ├── stable_primitive_sort.inl
        │   │   ├── stable_radix_sort.h
        │   │   ├── stable_radix_sort.inl
        │   │   ├── swap_ranges.h
        │   │   ├── tabulate.h
        │   │   ├── temporary_buffer.h
        │   │   ├── transform.h
        │   │   ├── transform_reduce.h
        │   │   ├── transform_scan.h
        │   │   ├── trivial_copy.h
        │   │   ├── uninitialized_copy.h
        │   │   ├── uninitialized_fill.h
        │   │   ├── unique.h
        │   │   └── unique_by_key.h
        │   └── system_error.inl
        ├── error_code.h
        ├── omp
        │   ├── detail
        │   │   ├── adjacent_difference.h
        │   │   ├── assign_value.h
        │   │   ├── binary_search.h
        │   │   ├── copy.h
        │   │   ├── copy.inl
        │   │   ├── copy_if.h
        │   │   ├── copy_if.inl
        │   │   ├── count.h
        │   │   ├── default_decomposition.h
        │   │   ├── default_decomposition.inl
        │   │   ├── equal.h
        │   │   ├── execution_policy.h
        │   │   ├── extrema.h
        │   │   ├── fill.h
        │   │   ├── find.h
        │   │   ├── for_each.h
        │   │   ├── for_each.inl
        │   │   ├── gather.h
        │   │   ├── generate.h
        │   │   ├── get_value.h
        │   │   ├── inner_product.h
        │   │   ├── iter_swap.h
        │   │   ├── logical.h
        │   │   ├── malloc_and_free.h
        │   │   ├── memory.inl
        │   │   ├── merge.h
        │   │   ├── mismatch.h
        │   │   ├── par.h
        │   │   ├── partition.h
        │   │   ├── partition.inl
        │   │   ├── per_device_resource.h
        │   │   ├── pragma_omp.h
        │   │   ├── reduce.h
        │   │   ├── reduce.inl
        │   │   ├── reduce_by_key.h
        │   │   ├── reduce_by_key.inl
        │   │   ├── reduce_intervals.h
        │   │   ├── reduce_intervals.inl
        │   │   ├── remove.h
        │   │   ├── remove.inl
        │   │   ├── replace.h
        │   │   ├── reverse.h
        │   │   ├── scan.h
        │   │   ├── scan_by_key.h
        │   │   ├── scatter.h
        │   │   ├── sequence.h
        │   │   ├── set_operations.h
        │   │   ├── sort.h
        │   │   ├── sort.inl
        │   │   ├── swap_ranges.h
        │   │   ├── tabulate.h
        │   │   ├── temporary_buffer.h
        │   │   ├── transform.h
        │   │   ├── transform_reduce.h
        │   │   ├── transform_scan.h
        │   │   ├── uninitialized_copy.h
        │   │   ├── uninitialized_fill.h
        │   │   ├── unique.h
        │   │   ├── unique.inl
        │   │   ├── unique_by_key.h
        │   │   └── unique_by_key.inl
        │   ├── execution_policy.h
        │   ├── memory.h
        │   ├── memory_resource.h
        │   ├── pointer.h
        │   └── vector.h
        ├── system_error.h
        └── tbb
        │   ├── detail
        │       ├── adjacent_difference.h
        │       ├── assign_value.h
        │       ├── binary_search.h
        │       ├── copy.h
        │       ├── copy.inl
        │       ├── copy_if.h
        │       ├── copy_if.inl
        │       ├── count.h
        │       ├── equal.h
        │       ├── execution_policy.h
        │       ├── extrema.h
        │       ├── fill.h
        │       ├── find.h
        │       ├── for_each.h
        │       ├── for_each.inl
        │       ├── gather.h
        │       ├── generate.h
        │       ├── get_value.h
        │       ├── inner_product.h
        │       ├── iter_swap.h
        │       ├── logical.h
        │       ├── malloc_and_free.h
        │       ├── memory.inl
        │       ├── merge.h
        │       ├── merge.inl
        │       ├── mismatch.h
        │       ├── par.h
        │       ├── partition.h
        │       ├── partition.inl
        │       ├── per_device_resource.h
        │       ├── reduce.h
        │       ├── reduce.inl
        │       ├── reduce_by_key.h
        │       ├── reduce_by_key.inl
        │       ├── reduce_intervals.h
        │       ├── remove.h
        │       ├── remove.inl
        │       ├── replace.h
        │       ├── reverse.h
        │       ├── scan.h
        │       ├── scan.inl
        │       ├── scan_by_key.h
        │       ├── scatter.h
        │       ├── sequence.h
        │       ├── set_operations.h
        │       ├── sort.h
        │       ├── sort.inl
        │       ├── swap_ranges.h
        │       ├── tabulate.h
        │       ├── temporary_buffer.h
        │       ├── transform.h
        │       ├── transform_reduce.h
        │       ├── transform_scan.h
        │       ├── uninitialized_copy.h
        │       ├── uninitialized_fill.h
        │       ├── unique.h
        │       ├── unique.inl
        │       ├── unique_by_key.h
        │       └── unique_by_key.inl
        │   ├── execution_policy.h
        │   ├── memory.h
        │   ├── memory_resource.h
        │   ├── pointer.h
        │   └── vector.h
    ├── system_error.h
    ├── tabulate.h
    ├── transform.h
    ├── transform_reduce.h
    ├── transform_scan.h
    ├── tuple.h
    ├── type_traits
        ├── integer_sequence.h
        ├── is_contiguous_iterator.h
        ├── is_execution_policy.h
        ├── is_operator_less_or_greater_function_object.h
        ├── is_operator_plus_function_object.h
        ├── is_trivially_relocatable.h
        ├── logical_metafunctions.h
        ├── remove_cvref.h
        └── void_t.h
    ├── uninitialized_copy.h
    ├── uninitialized_fill.h
    ├── unique.h
    ├── universal_allocator.h
    ├── universal_ptr.h
    ├── universal_vector.h
    ├── version.h
    └── zip_function.h


/.git-blame-ignore-revs:
--------------------------------------------------------------------------------
 1 | # Exclude these commits from git-blame and similar tools.
 2 | #
 3 | # To use this file, run the following command from the repo root:
 4 | #
 5 | # ```
 6 | # $ git config blame.ignoreRevsFile .git-blame-ignore-revs
 7 | # ```
 8 | #
 9 | # Include a brief comment with each commit added, for example:
10 | #
11 | # ```
12 | # d92d9f8baac5ec48a8f8718dd69f415a45efe372 # Initial clang-format
13 | # ```
14 | #
15 | # Only add commits that are pure formatting changes (e.g.
16 | # clang-format version changes, etc).
17 | 


--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 |   - name: Open Issue in CCCL Repository
4 |     url: https://github.com/NVIDIA/cccl/issues/new/choose
5 |     about:  This repository has moved! Please see the new home for Thrust. 
6 | 


--------------------------------------------------------------------------------
/.github/workflows/deploy-documentation-github-pages.yml:
--------------------------------------------------------------------------------
 1 | name: Deploy Documentation GitHub Pages
 2 | 
 3 | on:
 4 |   push:
 5 |     branches:
 6 |       - "main"
 7 | 
 8 |   # Trigger on request.
 9 |   workflow_dispatch:
10 | 
11 | jobs:
12 |   deploy-documentation-github-pages:
13 |     runs-on: ubuntu-latest
14 |     container: gpuci/cccl:cuda11.7.0-devel-ubuntu20.04-gcc9
15 |     steps:
16 |       - name: Checkout repository
17 |         uses: actions/checkout@v3
18 |       - name: Generate documentation markdown
19 |         run: ./docs/generate_markdown.bash --clean
20 |       - name: Deploy generated documentation markdown to gh-pages branch
21 |         uses: peaceiris/actions-gh-pages@v3
22 |         if: github.ref == 'refs/heads/main'
23 |         with:
24 |           github_token: ${{ secrets.GITHUB_TOKEN }}
25 |           publish_dir: ./build_docs/github_pages
26 |           enable_jekyll: true
27 |           commit_message: "Deploy Documentation: ${{ github.event.head_commit.message }}"
28 | 


--------------------------------------------------------------------------------
/.github/workflows/mirror-main-branch-to-master-branch.yml:
--------------------------------------------------------------------------------
 1 | on:
 2 |   push:
 3 |     branches:
 4 |       - main
 5 | 
 6 | jobs:
 7 |   mirror-main-branch-to-master-branch:
 8 |     name: Mirror main branch to master branch
 9 |     runs-on: ubuntu-latest
10 |     steps:
11 |     - name: Mirror main branch to master branch
12 |       id: mirror
13 |       uses: google/mirror-branch-action@v1.0
14 |       with:
15 |         source: main
16 |         dest: master
17 |         github-token: ${{ secrets.GITHUB_TOKEN }}
18 | 


--------------------------------------------------------------------------------
/.github/workflows/xrefcheck-validate-markdown-links.yml:
--------------------------------------------------------------------------------
 1 | name: Check bad links
 2 | 
 3 | on:
 4 |   push:
 5 |     branches: [ '*' ]
 6 |   pull_request:
 7 |     branches: [ '*' ]
 8 | 
 9 | jobs:
10 |   xrefcheck:
11 |     name: Check links
12 |     runs-on: ubuntu-latest
13 |     steps:
14 |     - uses: actions/checkout@v2
15 |     - uses: serokell/xrefcheck-action@v1
16 |       with:
17 |         xrefcheck-version: 0.2
18 |         xrefcheck-args: --ignored dependencies
19 | 


--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | discrete_voronoi.pgm
2 | *build*/
3 | .idea/
4 | .vscode
5 | 


--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "cub"]
2 | 	path = dependencies/cub
3 | 	url = ../cub.git
4 | [submodule "libcudacxx"]
5 | 	path = dependencies/libcudacxx
6 | 	url = ../libcudacxx.git
7 | 


--------------------------------------------------------------------------------
/ci/axis/gpu.yml:
--------------------------------------------------------------------------------
 1 | # Copyright (c) 2018-2020 NVIDIA Corporation
 2 | # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 3 | # Released under the Apache License v2.0 with LLVM Exceptions.
 4 | # See https://llvm.org/LICENSE.txt for license information.
 5 | 
 6 | SDK_TYPE:
 7 |   - cuda
 8 | 
 9 | SDK_VER:
10 |   - 11.7.0-devel
11 | 
12 | OS_TYPE:
13 |   - ubuntu
14 | 
15 | OS_VER:
16 |   - 20.04
17 | 
18 | CXX_TYPE:
19 |   - gcc
20 | 
21 | CXX_VER:
22 |   - 9
23 | 


--------------------------------------------------------------------------------
/ci/common/memmon_config/procps/toprc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/thrust/756c5afc0750f1413da05bd2b6505180e84c53d4/ci/common/memmon_config/procps/toprc


--------------------------------------------------------------------------------
/ci/cpu/build.bash:
--------------------------------------------------------------------------------
 1 | #! /usr/bin/env bash
 2 | 
 3 | # Copyright (c) 2018-2020 NVIDIA Corporation
 4 | # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 5 | # Released under the Apache License v2.0 with LLVM Exceptions.
 6 | # See https://llvm.org/LICENSE.txt for license information.
 7 | 
 8 | ################################################################################
 9 | # Thrust and CUB build script for gpuCI (CPU-only)
10 | ################################################################################
11 | 
12 | export PARALLEL_LEVEL=${PARALLEL_LEVEL:-4}
13 | 
14 | source ${WORKSPACE}/ci/common/build.bash
15 | 


--------------------------------------------------------------------------------
/ci/gpu/build.bash:
--------------------------------------------------------------------------------
 1 | #! /usr/bin/env bash
 2 | 
 3 | # Copyright (c) 2018-2020 NVIDIA Corporation
 4 | # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 5 | # Released under the Apache License v2.0 with LLVM Exceptions.
 6 | # See https://llvm.org/LICENSE.txt for license information.
 7 | 
 8 | ################################################################################
 9 | # Thrust and CUB build script for gpuCI (heterogeneous)
10 | ################################################################################
11 | 
12 | export PARALLEL_LEVEL=${PARALLEL_LEVEL:-4}
13 | 
14 | source ${WORKSPACE}/ci/common/build.bash
15 | 


--------------------------------------------------------------------------------
/cmake/AppendOptionIfAvailable.cmake:
--------------------------------------------------------------------------------
 1 | include_guard(GLOBAL)
 2 | include(CheckCXXCompilerFlag)
 3 | 
 4 | macro (APPEND_OPTION_IF_AVAILABLE _FLAG _LIST)
 5 | 
 6 | string(MAKE_C_IDENTIFIER "CXX_FLAG_${_FLAG}" _VAR)
 7 | check_cxx_compiler_flag(${_FLAG} ${_VAR})
 8 | 
 9 | if (${${_VAR}})
10 |   list(APPEND ${_LIST} ${_FLAG})
11 | endif ()
12 | 
13 | endmacro ()
14 | 
15 | 


--------------------------------------------------------------------------------
/cmake/ThrustAddSubdir.cmake:
--------------------------------------------------------------------------------
1 | find_package(Thrust REQUIRED CONFIG
2 |   NO_DEFAULT_PATH # Only check the explicit path in HINTS:
3 |   HINTS "${CMAKE_CURRENT_LIST_DIR}/.."
4 |   COMPONENTS ${THRUST_REQUIRED_SYSTEMS}
5 |   OPTIONAL_COMPONENTS ${THRUST_OPTIONAL_SYSTEMS}
6 | )
7 | 


--------------------------------------------------------------------------------
/cmake/ThrustRunTest.cmake:
--------------------------------------------------------------------------------
1 | execute_process(
2 |   COMMAND "${THRUST_BINARY}"
3 |   RESULT_VARIABLE EXIT_CODE
4 | )
5 | 
6 | if (NOT "0" STREQUAL "${EXIT_CODE}")
7 |     message(FATAL_ERROR "${THRUST_BINARY} failed (${EXIT_CODE})")
8 | endif ()
9 | 


--------------------------------------------------------------------------------
/cmake/filecheck_smoke_test:
--------------------------------------------------------------------------------
1 | SMOKE
2 | 


--------------------------------------------------------------------------------
/cmake/wrap_source_file.cpp.in:
--------------------------------------------------------------------------------
1 | #include <${wrapped_source_file}>
2 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/index.tmpl:
--------------------------------------------------------------------------------
 1 | {%- if exists("children") -%}{%- for child in children -%}
 2 |   {%- for i in range(default(index_depth, 0)) -%}
 3 |     {{- noop() }}  {{ noop() -}}
 4 |   {%- endfor -%}
 5 |   * {{ noop() -}}
 6 |   <b><a href="{{ child.url }}">{{ render("name_qualified.tmpl", child) }}</a></b>{{ noop() -}}
 7 |   {%- if existsIn(child, "brief") -%}
 8 |     {{- noop() }} <br> {{ child.brief -}}
 9 |   {%- endif %}
10 |   {%- if existsIn(child, "children") -%}
11 |     {%- set child.index_depth = default(index_depth, 0) + 1 -%}
12 |     {{- render("index.tmpl", child) -}}
13 |   {%- endif -%}
14 | {%- endfor -%}{%- endif -%}
15 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/index_classes.tmpl:
--------------------------------------------------------------------------------
1 | {% include "frontmatter.tmpl" -%}
2 | {% include "index.tmpl" -%}
3 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/index_examples.tmpl:
--------------------------------------------------------------------------------
1 | {% include "frontmatter.tmpl" -%}
2 | {% include "index.tmpl" -%}
3 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/index_files.tmpl:
--------------------------------------------------------------------------------
1 | {% include "frontmatter.tmpl" -%}
2 | {% include "index.tmpl" -%}
3 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/index_groups.tmpl:
--------------------------------------------------------------------------------
1 | {% include "frontmatter.tmpl" -%}
2 | {% include "index.tmpl" -%}
3 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/index_namespaces.tmpl:
--------------------------------------------------------------------------------
1 | {% include "frontmatter.tmpl" -%}
2 | {% include "index.tmpl" -%}
3 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/index_pages.tmpl:
--------------------------------------------------------------------------------
1 | {% include "frontmatter.tmpl" -%}
2 | {% include "index.tmpl" -%}
3 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/kind_class.tmpl:
--------------------------------------------------------------------------------
1 | {% include "frontmatter.tmpl" -%}
2 | {%- if hasDetails -%}{% include "details.tmpl" -%}{%- endif -%}
3 | {% include "class_members.tmpl" -%}
4 | {% include "class_members_details.tmpl" -%}
5 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/kind_example.tmpl:
--------------------------------------------------------------------------------
1 | {% include "frontmatter.tmpl" -%}
2 | {%- if exists("details") -%}{{details}}{%- endif -%}
3 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/kind_file.tmpl:
--------------------------------------------------------------------------------
 1 | {% include "frontmatter.tmpl" -%}
 2 | {%- if hasDetails -%}{% include "details.tmpl" -%}{%- endif -%}
 3 | {% include "nonclass_members_details.tmpl" -%}
 4 | {% include "nonclass_members.tmpl" -%}
 5 | {%- if exists("programlisting") -%}
 6 | 
 7 | ```cpp
 8 | {{programlisting}}
 9 | ```
10 | {%- endif -%}
11 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/kind_group.tmpl:
--------------------------------------------------------------------------------
1 | {% include "frontmatter.tmpl" -%}
2 | {%- if hasDetails %}{% include "details.tmpl" -%}{%- endif -%}
3 | {% include "nonclass_members.tmpl" -%}
4 | {% include "nonclass_members_details.tmpl" -%}
5 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/kind_nonclass.tmpl:
--------------------------------------------------------------------------------
1 | {% include "frontmatter.tmpl" -%}
2 | {%- if hasDetails %}{% include "details.tmpl" -%}{%- endif -%}
3 | {% if kind == "namespace" -%}
4 |   {%- include "namespace_members.tmpl" -%}
5 | {%- else -%}
6 |   {%- include "nonclass_members.tmpl" -%}
7 | {%- endif -%}
8 | {% include "nonclass_members_details.tmpl" -%}
9 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/kind_page.tmpl:
--------------------------------------------------------------------------------
1 | {% include "frontmatter.tmpl" -%}
2 | {%- if exists("details") -%}{{details}}{%- endif -%}
3 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/name.tmpl:
--------------------------------------------------------------------------------
1 | {%- if default(names_qualified, true) -%}
2 |   {{- render("name_qualified.tmpl", child) -}}
3 | {%- else -%}
4 |   {{- render("name_unqualified.tmpl", child) -}}
5 | {%- endif -%}
6 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/name_qualified.tmpl:
--------------------------------------------------------------------------------
1 | {%- if exists("qualifiedname") -%}
2 |   {{- escape(qualifiedname) -}}
3 | {%- else if exists("name") -%}
4 |   {{- escape(name) -}}
5 | {%- else -%}
6 |   {{- escape(title) -}}
7 | {%- endif -%}
8 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/name_unqualified.tmpl:
--------------------------------------------------------------------------------
1 | {%- if exists("name") -%}
2 |   {{- escape(stripNamespace(name)) -}}
3 | {%- else -%}
4 |   {{- escape(stripNamespace(title)) -}}
5 | {%- endif -%}
6 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_brief.tmpl:
--------------------------------------------------------------------------------
1 | {%- if exists("brief") -%}
2 |   <span class="doxybook-comment">{{ noop() -}}
3 |     {%- if default(synopsis_indent_width, 0) != 0 -%}
4 |       <code>{%- include "synopsis_indent.tmpl" -%}</code>
5 |     {%- endif -%}
6 |     /* {{ brief }} */{{ noop() -}}
7 |   </span>{{ noop() -}}
8 | {%- endif -%}
9 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_friend_class.tmpl:
--------------------------------------------------------------------------------
 1 | {%- include "synopsis_leading_line_break.tmpl" -%}
 2 | {%- include "synopsis_inherited_from.tmpl" -%}
 3 | {%- set child.synopsis_indent_width = default(synopsis_indent_width, 0) -%}
 4 | {{- render("synopsis_brief.tmpl", child) -}}
 5 | {{- render("synopsis_template_parameters.tmpl", child) -}}
 6 | {#- Unfortunately, the refid and URL for a friend class  -#}{{ noop() -}}
 7 | {#- incorrectly refers to a definition on the local      -#}{{ noop() -}}
 8 | {#- page, instead of the friend class's own page.        -#}{{ noop() -}}
 9 | {#- So we don't link to friend classes.                  -#}{{ noop() -}}
10 | <span>{{ noop() -}}
11 |   {%- include "synopsis_indent.tmpl" -%}
12 |   {{- render("synopsis_kind_abbreviated.tmpl", child) -}}
13 |   <b>{{- render("name_qualified.tmpl", child) -}}</b>;{{ noop() -}}
14 | </span>
15 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_function.tmpl:
--------------------------------------------------------------------------------
 1 | {%- include "synopsis_leading_line_break.tmpl" -%}
 2 | {%- include "synopsis_inherited_from.tmpl" -%}
 3 | {%- set child.synopsis_indent_width = default(synopsis_indent_width, 0) -%}
 4 | {{- render("synopsis_brief.tmpl", child) -}}
 5 | {{- render("synopsis_template_parameters.tmpl", child) -}}
 6 | {{- render("synopsis_function_type_and_leading_specifiers.tmpl", child) -}}
 7 | <span>{{ noop() -}}
 8 |   {%- include "synopsis_indent.tmpl" -%}
 9 |   <b><a href="{{ child.url }}">{% include "name.tmpl" %}</a></b>{{ noop() -}}
10 |   ({{- render("synopsis_function_parameters.tmpl", child) -}}){{ noop() -}}
11 |   {{- render("synopsis_function_trailing_specifiers.tmpl", child) -}};{{- noop() -}}
12 | </span>
13 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_function_parameters.tmpl:
--------------------------------------------------------------------------------
 1 | {%- for param in params -%}
 2 |   {%- if not loop.is_first -%}&nbsp;&nbsp;{%- endif -%}
 3 |   {{- param.type -}}
 4 |   {%- if not isEmpty(param.name) %} {% endif -%}
 5 |   {{- param.name -}}
 6 |   {%- if existsIn(param, "defvalPlain") %} = {{ escape(param.defvalPlain) }}{% endif -%}
 7 |   {%- if not loop.is_last -%}
 8 |     ,</span>
 9 |     {{- noop() }}<span>{% include "synopsis_indent.tmpl" -%}
10 |   {%- endif -%}
11 | {%- endfor -%}
12 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_function_trailing_specifiers.tmpl:
--------------------------------------------------------------------------------
1 | {%- if const %} const{% endif -%}
2 | {%- if override %} override{% endif -%}
3 | {%- if default %} = default{% endif -%}
4 | {%- if deleted %} = deleted{% endif -%}
5 | {%- if pureVirtual %} = 0{% endif -%}
6 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_function_type_and_leading_specifiers.tmpl:
--------------------------------------------------------------------------------
1 | {%- if default(virtual, false) or default(static, false) or default(explicit, false) or default(type, false) -%}
2 |   <span>{{ noop() -}}
3 |     {%- include "synopsis_indent.tmpl" -%}
4 |     {%- include "synopsis_type_and_leading_specifiers.tmpl" -%}
5 |   </span>{{ noop() -}}
6 | {%- endif -%}
7 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_indent.tmpl:
--------------------------------------------------------------------------------
1 | {%- if default(synopsis_indent_width, false) -%}
2 |   {%- for i in range(synopsis_indent_width) -%}
3 |     &nbsp;{{ noop() -}}
4 |   {%- endfor -%}
5 | {%- endif -%}
6 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_inherited_from.tmpl:
--------------------------------------------------------------------------------
1 | {%- if default(synopsis_is_inherited, false) != false -%}
2 |   {%- set base.synopsis_indent_width = default(synopsis_indent_width, 0) -%}
3 |   {{- render("synopsis_inherited_from_comment.tmpl", base) -}}
4 | {%- endif -%}
5 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_inherited_from_comment.tmpl:
--------------------------------------------------------------------------------
1 | <span class="doxybook-comment">{{ noop() -}}
2 |   {%- if default(synopsis_indent_width, 0) != 0 -%}
3 |     <code>{%- include "synopsis_indent.tmpl" -%}</code>
4 |   {%- endif -%}
5 |   /* Inherited from <code>{{ noop() -}}
6 |     <b><a href="{{ url }}">{%- include "name_qualified.tmpl" -%}</a></b>{{ noop() -}}
7 |   </code> */{{ noop() -}}
8 | </span>{{ noop() -}}
9 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_initializer.tmpl:
--------------------------------------------------------------------------------
1 | {%- if kind == "using" %} = {{ escape(type) -}}
2 | {%- else if exists("initializer") %} {{ escape(initializer) -}}
3 | {%- endif -%}
4 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_initializer_abbreviated.tmpl:
--------------------------------------------------------------------------------
1 | {% if kind == "using" or exists("initializer") %} = <i>see below</i>{% endif -%}
2 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_kind.tmpl:
--------------------------------------------------------------------------------
 1 | {%- if kind == "interface" %}class {{ noop() -}}
 2 | {%- else if kind == "namespace" %}namespace {{ noop() -}}
 3 | {%- else if kind == "typedef" %}typedef {{ type -}}
 4 | {%- else if kind == "enum" %}enum {% if strong %}class {% endif -%} {{ noop() -}}
 5 | {%- else if kind == "friend" %}friend {{ noop() -}}
 6 |   {%- if type == "class" or type == "struct" %}{{ type }} {% endif -%}
 7 | {%- else if kind == "define" %}#define {{ noop() -}}
 8 | {%- else %}{{ kind }} {{ noop() -}}
 9 | {%- endif -%}
10 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_kind_abbreviated.tmpl:
--------------------------------------------------------------------------------
 1 | {%- if kind == "interface" %}class {{ noop() -}}
 2 | {%- else if kind == "namespace" %}namespace {{ noop() -}}
 3 | {%- else if kind == "typedef" %}typedef <i>see below</i> {{ noop() -}}
 4 | {%- else if kind == "enum" %}enum {% if strong %}class {% endif -%}
 5 | {%- else if kind == "friend" %}friend {{ noop() -}}
 6 |   {%- if type == "class" or type == "struct" %}{{type}} {% endif -%}
 7 | {%- else if kind == "define" %}#define {{ noop() -}}
 8 | {%- else %}{{ kind }} {{ noop() -}}
 9 | {%- endif -%}
10 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_leading_line_break.tmpl:
--------------------------------------------------------------------------------
1 | {%- if default(synopsis_needs_leading_line_break, false) -%}
2 |   <br>
3 | {%- endif -%}
4 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_macro.tmpl:
--------------------------------------------------------------------------------
1 | {%- include "synopsis_leading_line_break.tmpl" -%}
2 | {%- set child.synopsis_indent_width = default(synopsis_indent_width, 0) -%}
3 | <span>{{ noop() -}}
4 |   {{- render("synopsis_kind.tmpl", child) -}}
5 |   <b><a href="{{ child.url }}">{{- render("name_qualified.tmpl", child) -}}</a></b>{{ noop() -}}
6 |   {{- render("synopsis_initializer_abbreviated.tmpl", child) -}};{{ noop() -}}
7 | </span>
8 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_member_namespace_abbreviated.tmpl:
--------------------------------------------------------------------------------
1 | {%- include "synopsis_leading_line_break.tmpl" -%}
2 | {%- set child.synopsis_indent_width = default(synopsis_indent_width, 0) -%}
3 | {{- render("synopsis_brief.tmpl", child) -}}
4 | <span>{{ noop() -}}
5 |   {{- render("synopsis_kind_abbreviated.tmpl", child) -}}
6 |   <b><a href="{{ child.url }}">{{- render("name_qualified.tmpl", child) -}}</a></b> { <i>…</i> }{{ noop() -}}
7 | </span>
8 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_namespace_abbreviated.tmpl:
--------------------------------------------------------------------------------
1 | {%- include "synopsis_leading_line_break.tmpl" -%}
2 | {%- set child.synopsis_indent_width = default(synopsis_indent_width, 0) -%}
3 | {{- render("synopsis_brief.tmpl", child) -}}
4 | <span>{{ noop() -}}
5 |   {{- render("synopsis_kind_abbreviated.tmpl", child) -}}
6 |   <b><a href="{{ child.url }}">{{- render("name_qualified.tmpl", child) -}}</a></b> { <i>…</i> }{{ noop() -}}
7 | </span>
8 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_template_parameters.tmpl:
--------------------------------------------------------------------------------
 1 | {%- if exists("templateParams") -%}
 2 |   <span>{% include "synopsis_indent.tmpl" -%}template &lt;{{ noop() -}}
 3 |   {%- for param in templateParams -%}
 4 |     {%- if not loop.is_first %}{% include "synopsis_indent.tmpl" -%}&nbsp;&nbsp;{% endif -%}
 5 |     {{- param.type -}}
 6 |     {%- if not isEmpty(param.name) %} {% endif -%}
 7 |     {{- param.name -}}
 8 |     {%- if existsIn(param, "defvalPlain") %} = {{ escape(param.defvalPlain) }}{% endif -%}
 9 |     {%- if not loop.is_last -%}
10 |       ,</span>
11 |       {{- noop() }}<span>{% include "synopsis_indent.tmpl" -%}
12 |     {%- endif -%}
13 |   {%- endfor -%}&gt;</span>
14 | {%- endif -%}
15 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_type.tmpl:
--------------------------------------------------------------------------------
 1 | {%- include "synopsis_leading_line_break.tmpl" -%}
 2 | {%- include "synopsis_inherited_from.tmpl" -%}
 3 | {%- set child.synopsis_indent_width = default(synopsis_indent_width, 0) -%}
 4 | {{- render("synopsis_brief.tmpl", child) -}}
 5 | {{- render("synopsis_template_parameters.tmpl", child) -}}
 6 | <span>{{ noop() -}}
 7 |   {%- include "synopsis_indent.tmpl" -%}
 8 |   {{- render("synopsis_kind_abbreviated.tmpl", child) -}}
 9 |   <b><a href="{{ child.url }}">{% include "name.tmpl" %}</a></b>{{ noop() -}}
10 |   {{- render("synopsis_initializer_abbreviated.tmpl", child) -}};{{ noop() -}}
11 | </span>
12 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_type_and_leading_specifiers.tmpl:
--------------------------------------------------------------------------------
1 | {%- if default(virtual, false) %}virtual {% endif -%}
2 | {%- if default(static, false) %}static {% endif -%}
3 | {%- if default(explicit, false) %}explicit {% endif -%}
4 | {%- if exists("type") %}{{ type }} {% endif -%}
5 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/synopsis_variable.tmpl:
--------------------------------------------------------------------------------
 1 | {%- include "synopsis_leading_line_break.tmpl" -%}
 2 | {%- include "synopsis_inherited_from.tmpl" -%}
 3 | {%- set child.synopsis_indent_width = default(synopsis_indent_width, 0) -%}
 4 | {{- render("synopsis_brief.tmpl", child) -}}
 5 | {{- render("synopsis_template_parameters.tmpl", child) -}}
 6 | <span>{{ noop() -}}
 7 |   {%- include "synopsis_indent.tmpl" -%}
 8 |   {{- render("synopsis_type_and_leading_specifiers.tmpl", child) -}}
 9 |   <b><a href="{{ child.url }}">{% include "name.tmpl" %}</a></b>{{ noop() -}}
10 |   {{- render("synopsis_initializer_abbreviated.tmpl", child) -}};{{ noop() -}}
11 | </span>
12 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/table_header_brief.tmpl:
--------------------------------------------------------------------------------
1 | | Name | Description |
2 | |------|-------------|
3 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/table_header_enum.tmpl:
--------------------------------------------------------------------------------
1 | | Enumerator | Value | Description |
2 | |------------|-------|-------------|
3 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/table_row_brief.tmpl:
--------------------------------------------------------------------------------
1 | | **[`{{name}}`]({{url}})** | {% if exists("brief") %}{{brief}}{% endif %} |
2 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/table_row_enum.tmpl:
--------------------------------------------------------------------------------
1 | | `{{ name }}` | {% if exists("initializer") -%}`{{ escape(replace(initializer, "= ", "")) }}`{%- endif %} | {% if exists("brief") -%}{{ brief }}{%- endif %} |
2 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/title_kind.tmpl:
--------------------------------------------------------------------------------
1 | {%- if child.kind == "using" %}Type Alias{{ noop() -}}
2 | {%- else -%}{{ title(child.kind) -}}
3 | {%- endif -%}
4 | {%- if child.kind == "enum" and child.strong %} Class{%- endif -%}
5 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/title_leading.tmpl:
--------------------------------------------------------------------------------
1 | <h3 id="{{ child.kind }}-{{ safeAnchorId(child.name) }}">
2 | {%- if existsIn(child, "kind") and child.kind in ["class", "struct"] -%}
3 |   <a href="{{ child.url }}">{{ noop() -}}
4 | {%- endif -%}
5 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/title_member.tmpl:
--------------------------------------------------------------------------------
1 | {%- include "title_leading.tmpl" -%}
2 |   {%- include "title_kind.tmpl" -%}
3 |   {{- noop() }} <code>{% include "name_qualified.tmpl" %}::{{ render("name_unqualified.tmpl", child) }}</code>
4 | {%- include "title_trailing.tmpl" -%}
5 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/title_nonmember.tmpl:
--------------------------------------------------------------------------------
1 | {%- include "title_leading.tmpl" -%}
2 |   {%- include "title_kind.tmpl" -%}
3 |   {{- noop() }} <code>{{render("name_qualified.tmpl", child)}}</code>
4 | {%- include "title_trailing.tmpl" -%}
5 | 
6 | 


--------------------------------------------------------------------------------
/docs/doxybook/templates/title_trailing.tmpl:
--------------------------------------------------------------------------------
1 | {%- if existsIn(child, "kind") and child.kind in ["class", "struct"] -%}
2 |   </a>
3 | {%- endif -%}
4 | </h3>
5 | 


--------------------------------------------------------------------------------
/docs/github_pages/Gemfile:
--------------------------------------------------------------------------------
 1 | source "https://rubygems.org"
 2 | gem "just-the-docs"
 3 | group :jekyll_plugins do
 4 |   gem "github-pages"                 # GitHub Pages.
 5 |   gem "jekyll-optional-front-matter" # GitHub Pages.
 6 |   gem "jekyll-default-layout"        # GitHub Pages.
 7 |   gem "jekyll-titles-from-headings"  # GitHub Pages.
 8 |   gem "jekyll-relative-links"        # GitHub Pages.
 9 |   gem "jekyll-include-cache"
10 | end
11 | 


--------------------------------------------------------------------------------
/docs/github_pages/api.md:
--------------------------------------------------------------------------------
1 | ---
2 | has_children: true
3 | has_toc: true
4 | nav_order: 2
5 | ---
6 | 
7 | # API
8 | 
9 | 


--------------------------------------------------------------------------------
/docs/github_pages/assets/images/nvidia_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/thrust/756c5afc0750f1413da05bd2b6505180e84c53d4/docs/github_pages/assets/images/nvidia_logo.png


--------------------------------------------------------------------------------
/docs/github_pages/contributing.md:
--------------------------------------------------------------------------------
 1 | ---
 2 | has_children: true
 3 | has_toc: true
 4 | nav_order: 4
 5 | ---
 6 | 
 7 | # Contributing
 8 | 
 9 | We welcome contributions - just send us a pull request!
10 | 
11 | 


--------------------------------------------------------------------------------
/docs/github_pages/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/thrust/756c5afc0750f1413da05bd2b6505180e84c53d4/docs/github_pages/favicon.ico


--------------------------------------------------------------------------------
/docs/github_pages/setup.md:
--------------------------------------------------------------------------------
1 | ---
2 | has_children: true
3 | has_toc: true
4 | nav_order: 1
5 | ---
6 | 
7 | # Setup
8 | 


--------------------------------------------------------------------------------
/examples/README.md:
--------------------------------------------------------------------------------
1 | Once Thrust has been installed, these example programs can be compiled
2 | directly with nvcc.  For example, the following command will compile the
3 | norm example.
4 |   $ nvcc norm.cu -o norm
5 | 
6 | These examples are also available online:
7 |   https://github.com/NVIDIA/thrust/tree/main/examples
8 | 


--------------------------------------------------------------------------------
/examples/cmake/add_subdir/dummy.cpp:
--------------------------------------------------------------------------------
 1 | #include <thrust/detail/config.h>
 2 | 
 3 | #include <iostream>
 4 | 
 5 | int main()
 6 | {
 7 |   std::cout << "Hello from Thrust version " << THRUST_VERSION << ":\n"
 8 | 
 9 |             << "Host system: "
10 | #if THRUST_HOST_SYSTEM == THRUST_HOST_SYSTEM_CPP
11 |             << "CPP\n"
12 | #elif THRUST_HOST_SYSTEM == THRUST_HOST_SYSTEM_OMP
13 |             << "OMP\n"
14 | #elif THRUST_HOST_SYSTEM == THRUST_HOST_SYSTEM_TBB
15 |             << "TBB\n"
16 | #else
17 |             << "Unknown\n"
18 | #endif
19 | 
20 |             << "Device system: "
21 | #if THRUST_DEVICE_SYSTEM == THRUST_DEVICE_SYSTEM_CPP
22 |             << "CPP\n";
23 | #elif THRUST_DEVICE_SYSTEM == THRUST_DEVICE_SYSTEM_CUDA
24 |             << "CUDA\n";
25 | #elif THRUST_DEVICE_SYSTEM == THRUST_DEVICE_SYSTEM_OMP
26 |             << "OMP\n";
27 | #elif THRUST_DEVICE_SYSTEM == THRUST_DEVICE_SYSTEM_TBB
28 |             << "TBB\n";
29 | #else
30 |             << "Unknown\n";
31 | #endif
32 | }
33 | 


--------------------------------------------------------------------------------
/examples/cmake/add_subdir/dummy.cu:
--------------------------------------------------------------------------------
1 | #include "dummy.cpp"
2 | 


--------------------------------------------------------------------------------
/examples/constant_iterator.cu:
--------------------------------------------------------------------------------
 1 | #include <thrust/iterator/constant_iterator.h>
 2 | #include <thrust/transform.h>
 3 | #include <thrust/functional.h>
 4 | #include <thrust/device_vector.h>
 5 | #include <thrust/copy.h> 
 6 | #include <iterator>
 7 | #include <iostream>
 8 | 
 9 | int main(void)
10 | {
11 |     thrust::device_vector<int> data(4);
12 |     data[0] = 3;
13 |     data[1] = 7;
14 |     data[2] = 2;
15 |     data[3] = 5;
16 | 
17 |     // add 10 to all values in data
18 |     thrust::transform(data.begin(), data.end(),
19 |                       thrust::constant_iterator<int>(10),
20 |                       data.begin(),
21 |                       thrust::plus<int>());
22 | 
23 |     // data is now [13, 17, 12, 15]
24 | 
25 |     // print result
26 |     thrust::copy(data.begin(), data.end(), std::ostream_iterator<int>(std::cout, "\n"));
27 | 
28 |     return 0;
29 | }
30 | 


--------------------------------------------------------------------------------
/examples/cpp_integration/README:
--------------------------------------------------------------------------------
 1 | This example shows how to link a Thrust program contained in 
 2 | a .cu file with a C++ program contained in a .cpp file.  Note
 3 | that device_vector only appears in the .cu file while host_vector
 4 | appears in both.  This relects the fact that algorithms on device
 5 | vectors are only available when the contents of the program are
 6 | located in a .cu file and compiled with the nvcc compiler.
 7 | 
 8 | On a Linux system where Thrust is installed in the default location
 9 | we can use the following procedure to compile the two parts of the
10 | program and link them together.
11 | 
12 |   $ nvcc -O2 -c device.cu
13 |   $ g++  -O2 -c host.cpp   -I/usr/local/cuda/include/
14 |   $ nvcc -o tester device.o host.o
15 | 
16 | Alternatively, we can use g++ to perform final linking step.
17 | 
18 |   $ nvcc -O2 -c device.cu
19 |   $ g++  -O2 -c host.cpp   -I/usr/local/cuda/include/
20 |   $ g++ -o tester device.o host.o -L/usr/local/cuda/lib64 -lcudart
21 | 
22 | 


--------------------------------------------------------------------------------
/examples/cpp_integration/device.cu:
--------------------------------------------------------------------------------
 1 | #include <thrust/sort.h>
 2 | #include <thrust/device_vector.h>
 3 | #include <thrust/copy.h>
 4 | 
 5 | #include "device.h"
 6 | 
 7 | void sort_on_device(thrust::host_vector<int>& h_vec)
 8 | {
 9 |     // transfer data to the device
10 |     thrust::device_vector<int> d_vec = h_vec;
11 | 
12 |     // sort data on the device
13 |     thrust::sort(d_vec.begin(), d_vec.end());
14 |     
15 |     // transfer data back to host
16 |     thrust::copy(d_vec.begin(), d_vec.end(), h_vec.begin());
17 | }
18 | 
19 | 


--------------------------------------------------------------------------------
/examples/cpp_integration/device.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | 
3 | #include <thrust/host_vector.h>
4 | 
5 | // function prototype
6 | void sort_on_device(thrust::host_vector<int>& V);
7 | 
8 | 


--------------------------------------------------------------------------------
/examples/cpp_integration/host.cpp:
--------------------------------------------------------------------------------
 1 | #include <thrust/host_vector.h>
 2 | #include <thrust/random.h>
 3 | #include <thrust/generate.h>
 4 | #include <thrust/sort.h>
 5 | #include <cstdlib>
 6 | #include <iostream>
 7 | #include <iterator>
 8 | 
 9 | // defines the function prototype
10 | #include "device.h"
11 | 
12 | int main(void)
13 | {
14 |     // generate 20 random numbers on the host
15 |     thrust::host_vector<int> h_vec(20);
16 |     thrust::default_random_engine rng;
17 |     thrust::generate(h_vec.begin(), h_vec.end(), rng);
18 | 
19 |     // interface to CUDA code
20 |     sort_on_device(h_vec);
21 | 
22 |     // print sorted array
23 |     thrust::copy(h_vec.begin(), h_vec.end(), std::ostream_iterator<int>(std::cout, "\n"));
24 | 
25 |     return 0;
26 | }
27 | 
28 | 


--------------------------------------------------------------------------------
/examples/cuda/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | file(GLOB example_srcs
 2 |   RELATIVE "${CMAKE_CURRENT_LIST_DIR}}"
 3 |   CONFIGURE_DEPENDS
 4 |   *.cu *.cpp
 5 | )
 6 | 
 7 | foreach(thrust_target IN LISTS THRUST_TARGETS)
 8 |   thrust_get_target_property(config_device ${thrust_target} DEVICE)
 9 |   if (NOT config_device STREQUAL "CUDA")
10 |     continue()
11 |   endif()
12 | 
13 |   foreach(example_src IN LISTS example_srcs)
14 |     get_filename_component(example_name "${example_src}" NAME_WLE)
15 |     string(PREPEND example_name "cuda.")
16 |     thrust_add_example(example_target ${example_name} "${example_src}" ${thrust_target})
17 |   endforeach()
18 | endforeach()
19 | 


--------------------------------------------------------------------------------
/examples/cuda/unwrap_pointer.cu:
--------------------------------------------------------------------------------
 1 | #include <thrust/device_ptr.h>
 2 | #include <thrust/device_malloc.h>
 3 | #include <thrust/device_free.h>
 4 | #include <thrust/device_vector.h>
 5 | #include <cuda.h>
 6 | 
 7 | int main(void)
 8 | {
 9 |     size_t N = 10;
10 | 
11 |     // create a device_ptr 
12 |     thrust::device_ptr<int> dev_ptr = thrust::device_malloc<int>(N);
13 |      
14 |     // extract raw pointer from device_ptr
15 |     int * raw_ptr = thrust::raw_pointer_cast(dev_ptr);
16 | 
17 |     // use raw_ptr in CUDA API functions
18 |     cudaMemset(raw_ptr, 0, N * sizeof(int));
19 | 
20 |     // free memory
21 |     thrust::device_free(dev_ptr);
22 |     
23 |     // we can use the same approach for device_vector
24 |     thrust::device_vector<int> d_vec(N);
25 | 
26 |     // note: d_vec.data() returns a device_ptr
27 |     raw_ptr = thrust::raw_pointer_cast(d_vec.data());
28 | 
29 |     return 0;
30 | }
31 | 


--------------------------------------------------------------------------------
/examples/cuda/wrap_pointer.cu:
--------------------------------------------------------------------------------
 1 | #include <thrust/device_ptr.h>
 2 | #include <thrust/fill.h>
 3 | #include <cuda.h>
 4 | 
 5 | int main(void)
 6 | {
 7 |     size_t N = 10;
 8 | 
 9 |     // obtain raw pointer to device memory
10 |     int * raw_ptr;
11 |     cudaMalloc((void **) &raw_ptr, N * sizeof(int));
12 | 
13 |     // wrap raw pointer with a device_ptr 
14 |     thrust::device_ptr<int> dev_ptr = thrust::device_pointer_cast(raw_ptr);
15 | 
16 |     // use device_ptr in Thrust algorithms
17 |     thrust::fill(dev_ptr, dev_ptr + N, (int) 0);
18 | 
19 |     // access device memory transparently through device_ptr
20 |     dev_ptr[0] = 1;
21 | 
22 |     // free memory
23 |     cudaFree(raw_ptr);
24 | 
25 |     return 0;
26 | }
27 | 


--------------------------------------------------------------------------------
/examples/fill_copy_sequence.cu:
--------------------------------------------------------------------------------
 1 | #include <thrust/host_vector.h>
 2 | #include <thrust/device_vector.h>
 3 | #include <thrust/copy.h>
 4 | #include <thrust/fill.h>
 5 | #include <thrust/sequence.h>
 6 | 
 7 | #include <iostream>
 8 | 
 9 | int main(void)
10 | {
11 |     // initialize all ten integers of a device_vector to 1
12 |     thrust::device_vector<int> D(10, 1);
13 | 
14 |     // set the first seven elements of a vector to 9
15 |     thrust::fill(D.begin(), D.begin() + 7, 9);
16 | 
17 |     // initialize a host_vector with the first five elements of D
18 |     thrust::host_vector<int> H(D.begin(), D.begin() + 5);
19 | 
20 |     // set the elements of H to 0, 1, 2, 3, ...
21 |     thrust::sequence(H.begin(), H.end());
22 | 
23 |     // copy all of H back to the beginning of D
24 |     thrust::copy(H.begin(), H.end(), D.begin());
25 | 
26 |     // print D
27 |     for(size_t i = 0; i < D.size(); i++)
28 |         std::cout << "D[" << i << "] = " << D[i] << std::endl;
29 | 
30 |     return 0;
31 | }
32 | 


--------------------------------------------------------------------------------
/examples/version.cu:
--------------------------------------------------------------------------------
 1 | #include <thrust/version.h>
 2 | #include <iostream>
 3 | 
 4 | int main(void)
 5 | {
 6 |     int major = THRUST_MAJOR_VERSION;
 7 |     int minor = THRUST_MINOR_VERSION;
 8 |     int subminor = THRUST_SUBMINOR_VERSION;
 9 |     int patch = THRUST_PATCH_NUMBER;
10 | 
11 |     std::cout << "Thrust v" << major << "." << minor << "." << subminor << "-" << patch << std::endl;
12 | 
13 |     return 0;
14 | }
15 | 
16 | 


--------------------------------------------------------------------------------
/internal/benchmark/bench.mk:
--------------------------------------------------------------------------------
 1 | # XXX Use the common Thrust Makefiles instead of this.
 2 | 
 3 | EXECUTABLE := bench
 4 | BUILD_SRC  := $(ROOTDIR)/thrust/internal/benchmark/bench.cu
 5 | 
 6 | ifeq ($(OS),Linux)
 7 |   LIBRARIES += m
 8 | endif
 9 | 
10 | # XXX Why is this needed?
11 | ifeq ($(OS),Linux)
12 |   ifeq ($(ABITYPE), androideabi)
13 |     override ALL_SASS_ARCHITECTURES := 32
14 |   endif
15 | endif
16 | 
17 | ARCH_NEG_FILTER += 20 21
18 | 
19 | include $(ROOTDIR)/thrust/internal/build/common_detect.mk
20 | include $(ROOTDIR)/thrust/internal/build/common_build.mk
21 | 


--------------------------------------------------------------------------------
/internal/build/common_detect.mk:
--------------------------------------------------------------------------------
 1 | CXX_STD = c++11
 2 | 
 3 | ifeq ($(THRUST_TEST),1)
 4 |   include $(ROOTDIR)/build/getprofile.mk
 5 |   include $(ROOTDIR)/build/config/$(PROFILE).mk
 6 | else
 7 |   ifdef VULCAN_TOOLKIT_BASE
 8 |     include $(VULCAN_TOOLKIT_BASE)/build/getprofile.mk
 9 |     include $(VULCAN_TOOLKIT_BASE)/build/config/$(PROFILE).mk
10 |   else
11 |     include $(ROOTDIR)/build/getprofile.mk
12 |     include $(ROOTDIR)/build/config/$(PROFILE).mk
13 |   endif  # VULCAN_TOOLKIT_BASE
14 | endif  # THRUST_TEST
15 | 
16 | 


--------------------------------------------------------------------------------
/internal/build/generic_example.mk:
--------------------------------------------------------------------------------
 1 | # Generic project mk that is included by examples mk
 2 | EXECUTABLE := $(EXAMPLE_NAME)
 3 | BUILD_SRC  := $(ROOTDIR)/thrust/$(EXAMPLE_SRC)
 4 | 
 5 | include $(ROOTDIR)/thrust/internal/build/common_detect.mk
 6 | 
 7 | EXAMPLE_MAKEFILE := $(join $(dir $(BUILD_SRC)), $(basename $(notdir $(BUILD_SRC))).mk)
 8 | ifneq ("$(wildcard $(EXAMPLE_MAKEFILE))","") # Check if the file exists.
 9 |   include $(EXAMPLE_MAKEFILE)
10 | endif
11 | 
12 | include $(ROOTDIR)/thrust/internal/build/common_build.mk
13 | 
14 | 


--------------------------------------------------------------------------------
/internal/build/generic_test.mk:
--------------------------------------------------------------------------------
 1 | # Generic project mk that is included by unit tests mk
 2 | EXECUTABLE := $(TEST_NAME)
 3 | BUILD_SRC  := $(ROOTDIR)/thrust/$(TEST_SRC)
 4 | 
 5 | ifdef VULCAN
 6 |   INCLUDES_ABSPATH += $(VULCAN_TOOLKIT_BASE)/thrust/testing
 7 | else
 8 |   INCLUDES_ABSPATH += $(ROOTDIR)/thrust/testing
 9 | endif
10 | 
11 | PROJ_LIBRARIES += testframework
12 | 
13 | THRUST_TEST := 1
14 | 
15 | include $(ROOTDIR)/thrust/internal/build/common_detect.mk
16 | 
17 | TEST_MAKEFILE := $(join $(dir $(BUILD_SRC)), $(basename $(notdir $(BUILD_SRC))).mk)
18 | ifneq ("$(wildcard $(TEST_MAKEFILE))","") # Check if the file exists.
19 |   include $(TEST_MAKEFILE)
20 | endif
21 | 
22 | include $(ROOTDIR)/thrust/internal/build/common_build.mk
23 | 
24 | 


--------------------------------------------------------------------------------
/internal/build/testframework.mk:
--------------------------------------------------------------------------------
 1 | STATIC_LIBRARY := testframework
 2 | 
 3 | SRC_PATH := $(ROOTDIR)/thrust/testing/
 4 | BUILD_SRC := unittest/testframework.cu
 5 | 
 6 | CUSRC := unittest/cuda/testframework.cu
 7 | $(CUSRC).CUDACC_FLAGS    := -I$(ROOTDIR)/thrust/testing/cuda/
 8 | $(CUSRC).TARGET_BASENAME := testframework_cu
 9 | CU_FILES += $(CUSRC)
10 | 
11 | INCLUDES_ABSPATH += $(ROOTDIR)/thrust/testing
12 | 
13 | THRUST_TEST := 1
14 | 
15 | include $(ROOTDIR)/thrust/internal/build/common_detect.mk
16 | include $(ROOTDIR)/thrust/internal/build/common_build.mk
17 | 
18 | 


--------------------------------------------------------------------------------
/internal/racecheck.sh:
--------------------------------------------------------------------------------
 1 | #!/bin/sh
 2 | MEMCHECK=/work/nightly/memcheck/bin/x86_64_Linux_release/cuda-memcheck 
 3 | 
 4 | #########################
 5 | 
 6 | files=`ls thrust.test.*`;
 7 | files=`ls thrust.example.*`;
 8 | 
 9 | #########################
10 | 
11 | nfiles=0
12 | for fn in $files; do
13 |   nfiles=$((nfiles + 1))
14 | done
15 | j=1
16 | for fn in $files; do
17 |   echo " ----------------------------------------------------------------------"
18 |   echo "  *** MEMCHECK *** [$j/$nfiles] $fn"
19 |   echo " ----------------------------------------------------------------------"
20 |   $MEMCHECK --tool memcheck ./$fn --verbose
21 |   echo " ----------------------------------------------------------------------"
22 |   echo "  *** RACECHECK *** [$j/$nfiles] $fn"
23 |   echo " ----------------------------------------------------------------------"
24 |   $MEMCHECK --tool racecheck ./$fn --verbose --sizes=small
25 |   j=$((j+1))
26 | done;
27 | 


--------------------------------------------------------------------------------
/internal/rename_cub_namespace.sh:
--------------------------------------------------------------------------------
1 | #! /bin/bash
2 | 
3 | # Run this in //sw/gpgpu/thrust/thrust/system/cuda/detail/cub to add a THRUST_
4 | # prefix to CUB's namespace macro.
5 | 
6 | sed -i -e 's/CUB_NS_P/THRUST_CUB_NS_P/g' `find . -type f`
7 | 
8 | 


--------------------------------------------------------------------------------
/internal/reverse_rename_cub_namespace.sh:
--------------------------------------------------------------------------------
1 | #! /bin/bash
2 | 
3 | # Run this in //sw/gpgpu/thrust/thrust/system/cuda/detail/cub to undo the
4 | # renaming of CUB's namespace macro.
5 | 
6 | sed -i -e 's|THRUST_CUB_NS_P|CUB_NS_P|g' `find . -type f`
7 | 
8 | 


--------------------------------------------------------------------------------
/internal/scripts/tounix:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | 
3 | # converts all files in the current directory with extensions .h .inl or .cu to unix format
4 | 
5 | #find . -type f \( -name "*.h" -o -name "*.inl" -o -name "*.cu" \) -a \( -not -wholename "*\.hg/*" \) -print
6 | find . -type f \( -name "*.h" -o -name "*.inl" -o -name "*.cu" \) -a \( -not -wholename "*\.hg/*" \) -exec fromdos -d {} \;
7 | 
8 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.arbitrary_transformation.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: 3 + 6 * 2 = 15
2 | CHECK-NEXT: 4 + 7 * 5 = 39
3 | CHECK-NEXT: 0 + 2 * 7 = 14
4 | CHECK-NEXT: 8 + 1 * 4 = 12
5 | CHECK-NEXT: 2 + 8 * 3 = 26
6 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.basic_vector.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: H has size 4
2 | CHECK-NEXT: H[0] = 14
3 | CHECK-NEXT: H[1] = 20
4 | CHECK-NEXT: H[2] = 38
5 | CHECK-NEXT: H[3] = 46
6 | CHECK-NEXT: H now has size 2
7 | CHECK-NEXT: D[0] = 99
8 | CHECK-NEXT: D[1] = 88
9 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.bounding_box.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: bounding box (0.000022,0.037300) (0.967956,0.995085)
2 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.constant_iterator.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: 13
2 | CHECK-NEXT: 17
3 | CHECK-NEXT: 12
4 | CHECK-NEXT: 15
5 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.counting_iterator.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: found 4 nonzero values at indices:
2 | CHECK-NEXT: 1
3 | CHECK-NEXT: 2
4 | CHECK-NEXT: 5
5 | CHECK-NEXT: 7
6 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.cuda.async_reduce.filecheck:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/thrust/756c5afc0750f1413da05bd2b6505180e84c53d4/internal/test/thrust.example.cuda.async_reduce.filecheck


--------------------------------------------------------------------------------
/internal/test/thrust.example.cuda.explicit_cuda_stream.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: sum is 499500
2 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.cuda.fallback_allocator.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: Testing fallback_allocator on device
2 | CHECK-SAME: with {{[0-9]+}} bytes of device memory
3 |      CHECK: attempting to sort {{[0-9]+}} values
4 |      CHECK:   allocated {{[0-9]+}} bytes of device memory
5 |      CHECK:   allocated {{[0-9]+}} bytes of device memory
6 |      CHECK: attempting to sort {{[0-9]+}} values
7 |      CHECK:   allocated {{[0-9]+}} bytes of device memory
8 |      CHECK:   allocated {{[0-9]+}} bytes of pinned host memory (fallback successful)
9 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.cuda.global_device_vector.filecheck:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/thrust/756c5afc0750f1413da05bd2b6505180e84c53d4/internal/test/thrust.example.cuda.global_device_vector.filecheck


--------------------------------------------------------------------------------
/internal/test/thrust.example.cuda.range_view.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: z[0]= 7
2 | CHECK-NEXT: z[1]= 8
3 | CHECK-NEXT: z[2]= 9
4 | CHECK-NEXT: z[3]= 10
5 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.cuda.unwrap_pointer.filecheck:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/thrust/756c5afc0750f1413da05bd2b6505180e84c53d4/internal/test/thrust.example.cuda.unwrap_pointer.filecheck


--------------------------------------------------------------------------------
/internal/test/thrust.example.cuda.wrap_pointer.filecheck:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/thrust/756c5afc0750f1413da05bd2b6505180e84c53d4/internal/test/thrust.example.cuda.wrap_pointer.filecheck


--------------------------------------------------------------------------------
/internal/test/thrust.example.device_ptr.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: device array contains 10 values
2 | CHECK-NEXT: sum of values is 45
3 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.discrete_voronoi.filecheck:
--------------------------------------------------------------------------------
 1 |      CHECK: [Inititialize {{[0-9]+}}x{{[0-9]+}} Image]
 2 | CHECK-NEXT:   ( {{[0-9.]+}}ms )
 3 | CHECK-NEXT: [Copy to Device]
 4 | CHECK-NEXT:   ( {{[0-9.]+}}ms )
 5 | CHECK-NEXT: [JFA stepping]
 6 | CHECK-NEXT:   ( {{[0-9.]+}}ms )
 7 | CHECK-NEXT:   ( {{[0-9.]+}} MPixel/s ) 
 8 | CHECK-NEXT: [Device to Host Copy]
 9 | CHECK-NEXT:   ( {{[0-9.]+}}ms )
10 | CHECK-NEXT: [PGM Export]
11 | CHECK-NEXT:   ( {{[0-9.]+}}ms )
12 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.dot_products_with_zip.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: (0.000022,0.000022,0.000022) * (0.000022,0.000022,0.000022) = 0.000000
2 | CHECK-NEXT: (0.085032,0.085032,0.085032) * (0.085032,0.085032,0.085032) = 0.021692
3 | CHECK-NEXT: (0.601353,0.601353,0.601353) * (0.601353,0.601353,0.601353) = 1.084875
4 | CHECK-NEXT: (0.891611,0.891611,0.891611) * (0.891611,0.891611,0.891611) = 2.384912
5 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.expand.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: Expanding values according to counts
2 | CHECK-NEXT:  counts 3 5 2 0 1 3 4 2 4 
3 | CHECK-NEXT:  values 1 2 3 4 5 6 7 8 9 
4 | CHECK-NEXT:  output 1 1 1 2 2 2 2 2 3 3 5 6 6 6 7 7 7 7 8 8 9 9 9 9 
5 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.fill_copy_sequence.filecheck:
--------------------------------------------------------------------------------
 1 |      CHECK: D[0] = 0
 2 | CHECK-NEXT: D[1] = 1
 3 | CHECK-NEXT: D[2] = 2
 4 | CHECK-NEXT: D[3] = 3
 5 | CHECK-NEXT: D[4] = 4
 6 | CHECK-NEXT: D[5] = 9
 7 | CHECK-NEXT: D[6] = 9
 8 | CHECK-NEXT: D[7] = 1
 9 | CHECK-NEXT: D[8] = 1
10 | CHECK-NEXT: D[9] = 1
11 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.histogram.filecheck:
--------------------------------------------------------------------------------
 1 |      CHECK: Dense Histogram
 2 | CHECK-NEXT:           initial data  3 4 3 5 8 5 6 6 4 4 5 3 2 5 6 3 1 3 2 3 6 5 3 3 3 2 4 2 3 3 2 5 5 5 8 2 5 6 6 3 
 3 | CHECK-NEXT:            sorted data  1 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 8 8 
 4 | CHECK-NEXT:   cumulative histogram  0 1 7 19 23 32 38 38 40 
 5 | CHECK-NEXT:              histogram  0 1 6 12 4 9 6 0 2 
 6 | CHECK-NEXT: Sparse Histogram
 7 | CHECK-NEXT:           initial data  3 4 3 5 8 5 6 6 4 4 5 3 2 5 6 3 1 3 2 3 6 5 3 3 3 2 4 2 3 3 2 5 5 5 8 2 5 6 6 3 
 8 | CHECK-NEXT:            sorted data  1 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 8 8 
 9 | CHECK-NEXT:       histogram values  1 2 3 4 5 6 8 
10 | CHECK-NEXT:       histogram counts  1 6 12 4 9 6 2 
11 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.lambda.filecheck:
--------------------------------------------------------------------------------
 1 |      CHECK: SAXPY (functor method)
 2 | CHECK-NEXT: 2 * 1 + 1 = 3
 3 | CHECK-NEXT: 2 * 2 + 1 = 5
 4 | CHECK-NEXT: 2 * 3 + 1 = 7
 5 | CHECK-NEXT: 2 * 4 + 1 = 9
 6 | CHECK-NEXT: SAXPY (placeholder method)
 7 | CHECK-NEXT: 2 * 1 + 1 = 3
 8 | CHECK-NEXT: 2 * 2 + 1 = 5
 9 | CHECK-NEXT: 2 * 3 + 1 = 7
10 | CHECK-NEXT: 2 * 4 + 1 = 9
11 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.max_abs_diff.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: maximum absolute difference: 4
2 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.minimal_custom_backend.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: Hello, world from for_each(my_system)!
2 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.minmax.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: [ 10 17 64 90 97 27 56 45 33 76 ]
2 | CHECK-NEXT: minimum = 10
3 | CHECK-NEXT: maximum = 97
4 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.mode.filecheck:
--------------------------------------------------------------------------------
 1 |      CHECK: initial data
 2 | CHECK-NEXT: 0 0 6 8 9 1 5 3 2 7 0 5 5 8 5 5 8 9 7 9 2 4 8 6 9 9 1 8 9 2 
 3 | CHECK-NEXT: sorted data
 4 | CHECK-NEXT: 0 0 0 1 1 2 2 2 3 4 5 5 5 5 5 6 6 7 7 8 8 8 8 8 9 9 9 9 9 9 
 5 | CHECK-NEXT: values
 6 | CHECK-NEXT: 0 1 2 3 4 5 6 7 8 9 
 7 | CHECK-NEXT: counts
 8 | CHECK-NEXT: 3 2 3 1 1 5 2 2 5 6 
 9 | CHECK-NEXT: Modal value 9 occurs 6 times 
10 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.monte_carlo.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: pi is approximately 3.14
2 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.monte_carlo_disjoint_sequences.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: pi is around 3.1415
2 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.mr_basic.filecheck:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/thrust/756c5afc0750f1413da05bd2b6505180e84c53d4/internal/test/thrust.example.mr_basic.filecheck


--------------------------------------------------------------------------------
/internal/test/thrust.example.norm.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: norm is 5.47723
2 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.permutation_iterator.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: sum is 130
2 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.raw_reference_cast.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: Before A->B Copy
2 | CHECK-NEXT: A: 0 1 2 3 4 
3 | CHECK-NEXT: B: 0 0 0 0 0 
4 | CHECK-NEXT: After A->B Copy
5 | CHECK-NEXT: A: 0 1 2 3 4 
6 | CHECK-NEXT: B: 0 1 2 3 4 
7 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.repeated_range.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: range        10 20 30 40 
2 | CHECK-NEXT: repeated x2: 10 10 20 20 30 30 40 40 
3 | CHECK-NEXT: repeated x3: 10 10 10 20 20 20 30 30 30 40 40 40 
4 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.run_length_decoding.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: run-length encoded input:
2 | CHECK-NEXT: (a,3)(b,5)(c,1)(d,2)(e,9)(f,2)
3 |      CHECK: decoded output:
4 | CHECK-NEXT: aaabbbbbcddeeeeeeeeeff
5 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.run_length_encoding.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: input data:
2 | CHECK-NEXT: aaabbbbbcddeeeeeeeeeff
3 |      CHECK: run-length encoded output:
4 | CHECK-NEXT: (a,3)(b,5)(c,1)(d,2)(e,9)(f,2)
5 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.saxpy.filecheck:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/thrust/756c5afc0750f1413da05bd2b6505180e84c53d4/internal/test/thrust.example.saxpy.filecheck


--------------------------------------------------------------------------------
/internal/test/thrust.example.scan_matrix_by_rows.filecheck:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/thrust/756c5afc0750f1413da05bd2b6505180e84c53d4/internal/test/thrust.example.scan_matrix_by_rows.filecheck


--------------------------------------------------------------------------------
/internal/test/thrust.example.set_operations.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: Set A [ 0 2 4 5 6 8 9 ]
2 | CHECK-NEXT: Set B [ 0 1 2 3 5 7 8 ]
3 | CHECK-NEXT: Merge(A,B) [ 0 0 1 2 2 3 4 5 5 6 7 8 8 9 ]
4 | CHECK-NEXT: Union(A,B) [ 0 1 2 3 4 5 6 7 8 9 ]
5 | CHECK-NEXT: Intersection(A,B) [ 0 2 5 8 ]
6 | CHECK-NEXT: Difference(A,B) [ 4 6 9 ]
7 | CHECK-NEXT: SymmetricDifference(A,B) [ 1 3 4 6 7 9 ]
8 | CHECK-NEXT: SetIntersectionSize(A,B) 4
9 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.sorting_aos_vs_soa.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: AoS sort took {{[0-9.]+}} milliseconds
2 | CHECK-NEXT: SoA sort took {{[0-9.]+}} milliseconds
3 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.sparse_vector.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: Computing C = A + B for sparse vectors A and B
2 | CHECK-NEXT: A (2,10) (3,60) (5,20) (8,40) 
3 | CHECK-NEXT: B (1,50) (2,30) (4,80) (5,30) (7,90) (8,10) 
4 | CHECK-NEXT: C (1,50) (2,40) (3,60) (4,80) (5,50) (7,90) (8,50) 
5 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.stream_compaction.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: values: 0 1 2 3 4 5 6 7 8 9 
2 | CHECK-NEXT: output: 1 3 5 7 9 
3 | CHECK-NEXT: small_output: 1 3 5 7 9 
4 | CHECK-NEXT: values: 0 2 4 6 8 
5 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.strided_range.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: data: 10 20 30 40 50 60 70 80 
2 | CHECK-NEXT: sum of even indices: 160
3 | CHECK-NEXT: sum of odd indices:  200
4 | CHECK-NEXT: setting odd indices to zero: 10 0 30 0 50 0 70 0 
5 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.sum.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: sum is 509773
2 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.sum_rows.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: [ 10 17 64 90 97 27 56 45 ] = 406
2 | CHECK-NEXT: [ 33 76 18 60 62 82 63 56 ] = 450
3 | CHECK-NEXT: [ 88 99 75 96 36 48 90 68 ] = 600
4 | CHECK-NEXT: [ 91 96 24 87 91 36 94 47 ] = 566
5 | CHECK-NEXT: [ 37 56 45 81 72 58 63 18 ] = 430
6 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.summary_statistics.filecheck:
--------------------------------------------------------------------------------
 1 |      CHECK: ******Summary Statistics Example*****
 2 | CHECK-NEXT: The data: 4 7 13 16 
 3 | CHECK-NEXT: Count              : 4
 4 | CHECK-NEXT: Minimum            : 4
 5 | CHECK-NEXT: Maximum            : 16
 6 | CHECK-NEXT: Mean               : 10
 7 | CHECK-NEXT: Variance           : 30
 8 | CHECK-NEXT: Standard Deviation : 4.74342
 9 | CHECK-NEXT: Skewness           : 0
10 | CHECK-NEXT: Kurtosis           : 1.36
11 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.tiled_range.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: range        10 20 30 40 
2 | CHECK-NEXT: two tiles:   10 20 30 40 10 20 30 40 
3 | CHECK-NEXT: three tiles: 10 20 30 40 10 20 30 40 10 20 30 40 
4 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.transform_input_output_iterator.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: Expected [ 1050 2060 3070 4080 ]
2 | CHECK-NEXT: Result   [ 1050 2060 3070 4080 ]
3 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.transform_iterator.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: values         : 2 5 7 1 6 0 3 8 
2 | CHECK-NEXT: clamped values : 2 5 5 1 5 1 3 5 
3 | CHECK-NEXT: sum of clamped values : 27
4 | CHECK-NEXT: sequence         : 0 1 2 3 4 5 6 7 8 9 
5 | CHECK-NEXT: clamped sequence : 1 1 2 3 4 5 5 5 5 5 
6 | CHECK-NEXT: negated sequence : -1 -1 -2 -3 -4 -5 -5 -5 -5 -5 
7 | CHECK-NEXT: negated values : -2 -5 -7 -1 -6 0 -3 -8 
8 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.transform_output_iterator.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: result= [ -0.666667 -2.66667 2 ] 
2 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.uninitialized_vector.filecheck:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NVIDIA/thrust/756c5afc0750f1413da05bd2b6505180e84c53d4/internal/test/thrust.example.uninitialized_vector.filecheck


--------------------------------------------------------------------------------
/internal/test/thrust.example.version.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: Thrust v{{[0-9]+[.][0-9]+[.][0-9]+-[0-9]+}}
2 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.weld_vertices.filecheck:
--------------------------------------------------------------------------------
 1 |      CHECK: Output Representation
 2 | CHECK-NEXT:  vertices[0] = (0,0)
 3 | CHECK-NEXT:  vertices[1] = (0,1)
 4 | CHECK-NEXT:  vertices[2] = (1,0)
 5 | CHECK-NEXT:  vertices[3] = (1,1)
 6 | CHECK-NEXT:  vertices[4] = (2,0)
 7 | CHECK-NEXT:  indices[0] = 0
 8 | CHECK-NEXT:  indices[1] = 2
 9 | CHECK-NEXT:  indices[2] = 1
10 | CHECK-NEXT:  indices[3] = 2
11 | CHECK-NEXT:  indices[4] = 3
12 | CHECK-NEXT:  indices[5] = 1
13 | CHECK-NEXT:  indices[6] = 2
14 | CHECK-NEXT:  indices[7] = 4
15 | CHECK-NEXT:  indices[8] = 3
16 | 


--------------------------------------------------------------------------------
/internal/test/thrust.example.word_count.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: Text sample:
2 | CHECK-NEXT:   But the raven, sitting lonely on the placid bust, spoke only,
3 | CHECK-NEXT:   That one word, as if his soul in that one word he did outpour.
4 | CHECK-NEXT:   Nothing further then he uttered - not a feather then he fluttered -
5 | CHECK-NEXT:   Till I scarcely more than muttered `Other friends have flown before -
6 | CHECK-NEXT:   On the morrow he will leave me, as my hopes have flown before.'
7 | CHECK-NEXT:   Then the bird said, `Nevermore.'
8 |      CHECK: Text sample contains 65 words
9 | 


--------------------------------------------------------------------------------
/internal/test/thrust.smoke.filecheck:
--------------------------------------------------------------------------------
1 |      CHECK: SMOKE
2 | 


--------------------------------------------------------------------------------
/internal/test/warningstester.cu:
--------------------------------------------------------------------------------
1 | //#include "cuda_runtime_api.h"
2 | #include "warningstester.h"
3 | 
4 | int main()
5 | {
6 |   return 0;
7 | }
8 | 
9 | 


--------------------------------------------------------------------------------
/testing/async_reduce.cmake:
--------------------------------------------------------------------------------
1 | # Disable unreachable code warnings.
2 | # This test unconditionally throws in some places, the compiler will detect that
3 | # control flow will never reach some instructions. This is intentional.
4 | target_link_libraries(${test_target} PRIVATE thrust.silence_unreachable_code_warnings)
5 | 


--------------------------------------------------------------------------------
/testing/caching_allocator.cu:
--------------------------------------------------------------------------------
 1 | #include <unittest/unittest.h>
 2 | 
 3 | #include <thrust/detail/config.h>
 4 | #include <thrust/detail/caching_allocator.h>
 5 | 
 6 | template<typename Allocator>
 7 | void test_implementation(Allocator alloc)
 8 | {
 9 |     typedef typename thrust::detail::allocator_traits<Allocator> Traits;
10 |     typedef typename Allocator::pointer Ptr;
11 | 
12 |     Ptr p = Traits::allocate(alloc, 123);
13 |     Traits::deallocate(alloc, p, 123);
14 | 
15 |     Ptr p2 = Traits::allocate(alloc, 123);
16 |     ASSERT_EQUAL(p, p2);
17 | }
18 | 
19 | void TestSingleDeviceTLSCachingAllocator()
20 | {
21 |     test_implementation(thrust::detail::single_device_tls_caching_allocator());
22 | };
23 | DECLARE_UNITTEST(TestSingleDeviceTLSCachingAllocator);
24 | 


--------------------------------------------------------------------------------
/testing/cpp/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | file(GLOB test_srcs
 2 |   RELATIVE "${CMAKE_CURRENT_LIST_DIR}}"
 3 |   CONFIGURE_DEPENDS
 4 |   *.cu *.cpp
 5 | )
 6 | 
 7 | foreach(thrust_target IN LISTS THRUST_TARGETS)
 8 |   thrust_get_target_property(config_device ${thrust_target} DEVICE)
 9 |   if (NOT config_device STREQUAL "CPP")
10 |     continue()
11 |   endif()
12 | 
13 |   foreach(test_src IN LISTS test_srcs)
14 |     get_filename_component(test_name "${test_src}" NAME_WLE)
15 |     string(PREPEND test_name "cpp.")
16 |     thrust_add_test(test_target ${test_name} "${test_src}" ${thrust_target})
17 |   endforeach()
18 | endforeach()
19 | 


--------------------------------------------------------------------------------
/testing/cuda/adjacent_difference.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/binary_search.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/complex.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/copy.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/copy_if.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/count.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/cudart.cu:
--------------------------------------------------------------------------------
 1 | #include <unittest/unittest.h>
 2 | #include <cuda_runtime_api.h>
 3 | #include <thrust/detail/util/align.h>
 4 | 
 5 | template<typename T>
 6 | void TestCudaMallocResultAligned(const std::size_t n)
 7 | {
 8 |   T *ptr = 0;
 9 |   cudaMalloc(&ptr, n * sizeof(T));
10 |   cudaFree(ptr);
11 | 
12 |   ASSERT_EQUAL(true, thrust::detail::util::is_aligned(ptr));
13 | }
14 | DECLARE_VARIABLE_UNITTEST(TestCudaMallocResultAligned);
15 | 
16 | 


--------------------------------------------------------------------------------
/testing/cuda/cudart.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/equal.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/fill.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/find.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/for_each.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/gather.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/generate.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/inner_product.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/is_partitioned.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/is_sorted.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/is_sorted_until.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/logical.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/managed_memory_pointer.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/max_element.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/memory.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/merge.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/merge_by_key.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/merge_sort.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/min_element.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/minmax_element.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/mismatch.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/pair_sort.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/pair_sort_by_key.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/partition.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/partition_point.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/reduce.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/reduce_by_key.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/remove.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/replace.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/reverse.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/scan.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/scan_by_key.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/scatter.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/sequence.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/set_difference.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/set_difference_by_key.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/set_intersection.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/set_intersection_by_key.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/set_symmetric_difference.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/set_symmetric_difference_by_key.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/set_union.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/set_union_by_key.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/sort.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/sort_by_key.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/stream_legacy.cu:
--------------------------------------------------------------------------------
 1 | #include <unittest/unittest.h>
 2 | #include <thrust/execution_policy.h>
 3 | #include <thrust/system/cuda/detail/util.h>
 4 | 
 5 | #include <thread>
 6 | 
 7 | void verify_stream()
 8 | {
 9 |   auto exec = thrust::device;
10 |   auto stream = thrust::cuda_cub::stream(exec);
11 |   ASSERT_EQUAL(stream, cudaStreamLegacy);
12 | }
13 | 
14 | void TestLegacyDefaultStream()
15 | {
16 |   verify_stream();
17 | 
18 |   std::thread t(verify_stream);
19 |   t.join();
20 | }
21 | DECLARE_UNITTEST(TestLegacyDefaultStream);
22 | 


--------------------------------------------------------------------------------
/testing/cuda/stream_per_thread.cmake:
--------------------------------------------------------------------------------
 1 | # This test should always use per-thread streams on NVCC.
 2 | set_target_properties(${test_target} PROPERTIES
 3 |   COMPILE_OPTIONS
 4 |     
lt;
lt;AND:
lt;COMPILE_LANGUAGE:CUDA>,
lt;CUDA_COMPILER_ID:NVIDIA>>:--default-stream=per-thread>
 5 | )
 6 | 
 7 | thrust_fix_clang_nvcc_build_for(${test_target})
 8 | 
 9 | # NVC++ does not have an equivalent option, and will always
10 | # use the global stream by default.
11 | if (CMAKE_CUDA_COMPILER_ID STREQUAL "Feta")
12 |   set_tests_properties(${test_target} PROPERTIES WILL_FAIL ON)
13 | endif()
14 | 


--------------------------------------------------------------------------------
/testing/cuda/stream_per_thread.cu:
--------------------------------------------------------------------------------
 1 | #include <unittest/unittest.h>
 2 | #include <thrust/execution_policy.h>
 3 | #include <thrust/system/cuda/detail/util.h>
 4 | 
 5 | #include <thread>
 6 | 
 7 | void verify_stream()
 8 | {
 9 |   auto exec = thrust::device;
10 |   auto stream = thrust::cuda_cub::stream(exec);
11 |   ASSERT_EQUAL(stream, cudaStreamPerThread);
12 | }
13 | 
14 | void TestPerThreadDefaultStream()
15 | {
16 |   verify_stream();
17 | 
18 |   std::thread t(verify_stream);
19 |   t.join();
20 | }
21 | DECLARE_UNITTEST(TestPerThreadDefaultStream);
22 | 


--------------------------------------------------------------------------------
/testing/cuda/stream_per_thread.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += --default-stream per-thread
2 | 


--------------------------------------------------------------------------------
/testing/cuda/swap_ranges.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/tabulate.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/transform.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/transform_reduce.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/transform_scan.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/uninitialized_copy.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/uninitialized_fill.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/unique.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/cuda/unique_by_key.mk:
--------------------------------------------------------------------------------
1 | CUDACC_FLAGS += -rdc=true
2 | 


--------------------------------------------------------------------------------
/testing/distance.cu:
--------------------------------------------------------------------------------
 1 | #include <unittest/unittest.h>
 2 | #include <thrust/distance.h>
 3 | 
 4 | // TODO expand this with other iterator types (forward, bidirectional, etc.)
 5 | 
 6 | template <typename Vector>
 7 | void TestDistance(void)
 8 | {
 9 |     typedef typename Vector::iterator Iterator;
10 | 
11 |     Vector v(100);
12 | 
13 |     Iterator i = v.begin();
14 | 
15 |     ASSERT_EQUAL(thrust::distance(i, v.end()), 100);
16 | 
17 |     i++;
18 | 
19 |     ASSERT_EQUAL(thrust::distance(i, v.end()), 99);
20 | 
21 |     i += 49;
22 | 
23 |     ASSERT_EQUAL(thrust::distance(i, v.end()), 50);
24 |     
25 |     ASSERT_EQUAL(thrust::distance(i, i), 0);
26 | }
27 | DECLARE_VECTOR_UNITTEST(TestDistance);
28 | 
29 | 


--------------------------------------------------------------------------------
/testing/generate_const_iterators.cu:
--------------------------------------------------------------------------------
 1 | #include <unittest/runtime_static_assert.h>
 2 | #include <unittest/unittest.h>
 3 | #include <thrust/generate.h>
 4 | 
 5 | struct generator
 6 | {
 7 |     __host__ __device__
 8 |     int operator()() const
 9 |     {
10 |         return 1;
11 |     }
12 | };
13 | 
14 | void TestGenerateConstIteratorCompilationError()
15 | {
16 |     thrust::host_vector<int> test1(10);
17 | 
18 |     ASSERT_STATIC_ASSERT(thrust::generate(test1.cbegin(), test1.cend(), generator()));
19 |     ASSERT_STATIC_ASSERT(thrust::generate_n(test1.cbegin(), 10, generator()));
20 | }
21 | DECLARE_UNITTEST(TestGenerateConstIteratorCompilationError);
22 | 
23 | void TestFillConstIteratorCompilationError()
24 | {
25 |     thrust::host_vector<int> test1(10);
26 |     ASSERT_STATIC_ASSERT(thrust::fill(test1.cbegin(), test1.cend(), 1));
27 | }
28 | DECLARE_UNITTEST(TestFillConstIteratorCompilationError);
29 | 
30 | 


--------------------------------------------------------------------------------
/testing/omp/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | file(GLOB test_srcs
 2 |   RELATIVE "${CMAKE_CURRENT_LIST_DIR}}"
 3 |   CONFIGURE_DEPENDS
 4 |   *.cu *.cpp
 5 | )
 6 | 
 7 | foreach(thrust_target IN LISTS THRUST_TARGETS)
 8 |   thrust_get_target_property(config_device ${thrust_target} DEVICE)
 9 |   if (NOT config_device STREQUAL "OMP")
10 |     continue()
11 |   endif()
12 | 
13 |   foreach(test_src IN LISTS test_srcs)
14 |     get_filename_component(test_name "${test_src}" NAME_WLE)
15 |     string(PREPEND test_name "omp.")
16 |     thrust_add_test(test_target ${test_name} "${test_src}" ${thrust_target})
17 |   endforeach()
18 | endforeach()
19 | 


--------------------------------------------------------------------------------
/testing/regression/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | #
 2 | # Disabled as these test names are too long for CMAKE_OBJECT_PATH_MAX.
 3 | # We should integrate these with the other unit tests.
 4 | # See issue #1205.
 5 | #
 6 | return()
 7 | 
 8 | file(GLOB test_srcs
 9 |   RELATIVE "${CMAKE_CURRENT_LIST_DIR}}"
10 |   CONFIGURE_DEPENDS
11 |   *.cu *.cpp
12 | )
13 | 
14 | foreach(thrust_target IN LISTS THRUST_TARGETS)
15 |   foreach(test_src IN LISTS test_srcs)
16 |     get_filename_component(test_name "${test_src}" NAME_WLE)
17 |     string(PREPEND test_name "regression.")
18 |     thrust_add_test(test_target ${test_name} "${test_src}" ${thrust_target})
19 |   endforeach()
20 | endforeach()
21 | 


--------------------------------------------------------------------------------
/testing/regression/gh_928_nvbug_2341455__reduce_with_complex.cu:
--------------------------------------------------------------------------------
 1 | #include <thrust/device_vector.h>
 2 | #include <thrust/complex.h>
 3 | #include <thrust/reduce.h>
 4 | 
 5 | int main()
 6 | {
 7 |   thrust::device_vector<thrust::complex<double> > d(5);
 8 |   thrust::reduce(d.begin(), d.end());
 9 | }
10 | 
11 | 


--------------------------------------------------------------------------------
/testing/regression/nvbug_1632709__reduce_large_input_sizes.cu:
--------------------------------------------------------------------------------
 1 | #include <thrust/reduce.h> 
 2 | #include <thrust/iterator/constant_iterator.h> 
 3 | 
 4 | #include <assert.h>
 5 | #include <iostream>
 6 |  
 7 | int main()
 8 | { 
 9 |   long long n = 10000000000; 
10 | 
11 |   long long r = thrust::reduce(
12 |     thrust::constant_iterator<long long>(0)
13 |   , thrust::constant_iterator<long long>(n)
14 |   ); 
15 | 
16 |   std::cout << r << std::endl;
17 | 
18 |   assert(r == n);
19 | }
20 |  
21 | 


--------------------------------------------------------------------------------
/testing/regression/nvbug_1965743__unnecessary_static_on_get_occ_device_properties.cu:
--------------------------------------------------------------------------------
1 | // nvcc -Xcompiler -Wall -Xcompiler -Werror -ccbin=clang
2 | 
3 | #include <thrust/system/cuda/detail/core/util.h>
4 | 
5 | int main() {}
6 | 


--------------------------------------------------------------------------------
/testing/regression/nvbug_1990211__scan_requires_assignability_from_zero.cu:
--------------------------------------------------------------------------------
 1 | #include <thrust/scan.h>
 2 | #include <thrust/device_ptr.h>
 3 | 
 4 | inline __host__ __device__ uint2 operator+(uint2 a, uint2 b)
 5 | {  
 6 |   return make_uint2(a.x + b.x, a.y + b.y); 
 7 | } 
 8 |   
 9 | int main() {  
10 |   int num_elements = 32;  
11 |   uint2 *input = NULL, *output = NULL;
12 |   const uint2 zero = make_uint2(0,0);  
13 |   
14 |   thrust::exclusive_scan(thrust::device_ptr<uint2>((uint2*)input), 
15 |                          thrust::device_ptr<uint2>((uint2*)input + num_elements), 
16 |                          thrust::device_ptr<uint2>(output), zero);  
17 |   
18 |   return 0;  
19 | }
20 |  
21 | 


--------------------------------------------------------------------------------
/testing/regression/nvbug_1990211__scan_requires_assignability_from_zero.fixed0.cu:
--------------------------------------------------------------------------------
 1 | #include <thrust/scan.h>
 2 | #include <thrust/device_ptr.h>
 3 | 
 4 | struct uint2_adder 
 5 | { 
 6 |   __host__ __device__ uint2 operator()(uint2 a, uint2 b) {  
 7 |     return make_uint2(a.x + b.x, a.y + b.y); 
 8 |   } 
 9 | }; 
10 |   
11 | int main() {  
12 |   int num_elements = 32;  
13 |   uint2 *input = NULL, *output = NULL;
14 |   const uint2 zero = make_uint2(0,0);  
15 |   
16 |   thrust::exclusive_scan(thrust::device_ptr<uint2>((uint2*)input), 
17 |                          thrust::device_ptr<uint2>((uint2*)input + num_elements), 
18 |                          thrust::device_ptr<uint2>(output), zero, uint2_adder());  
19 |   
20 |   return 0;  
21 | }
22 |  
23 | 


--------------------------------------------------------------------------------
/testing/regression/nvbug_1990211__scan_requires_assignability_from_zero.fixed1.cu:
--------------------------------------------------------------------------------
 1 | #include <thrust/scan.h>
 2 | #include <thrust/device_ptr.h>
 3 | 
 4 | inline __host__ __device__ uint2 operator+(uint2 a, uint2 b)
 5 | {  
 6 |   return make_uint2(a.x + b.x, a.y + b.y); 
 7 | } 
 8 |   
 9 | int main() {  
10 |   int num_elements = 32;  
11 |   uint2 *input = NULL, *output = NULL;
12 |   const uint2 zero = make_uint2(0,0);  
13 |   
14 |   thrust::exclusive_scan(thrust::device_ptr<uint2>((uint2*)input), 
15 |                          thrust::device_ptr<uint2>((uint2*)input + num_elements), 
16 |                          thrust::device_ptr<uint2>(output), zero, operator+);  
17 |   
18 |   return 0;  
19 | }
20 |  
21 | 


--------------------------------------------------------------------------------
/testing/unittest/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | foreach(thrust_target IN LISTS THRUST_TARGETS)
 2 |   thrust_get_target_property(config_device ${thrust_target} DEVICE)
 3 |   thrust_get_target_property(config_prefix ${thrust_target} PREFIX)
 4 | 
 5 |   set(framework_target ${config_prefix}.test.framework)
 6 | 
 7 |   if ("CUDA" STREQUAL "${config_device}")
 8 |     set(framework_srcs
 9 |       testframework.cu
10 |       cuda/testframework.cu
11 |     )
12 |   else()
13 |     # Wrap the cu file inside a .cpp file for non-CUDA builds
14 |     thrust_wrap_cu_in_cpp(framework_srcs testframework.cu ${thrust_target})
15 |   endif()
16 | 
17 |   add_library(${framework_target} STATIC ${framework_srcs})
18 |   target_link_libraries(${framework_target} PUBLIC ${thrust_target})
19 |   target_include_directories(${framework_target} PRIVATE "${Thrust_SOURCE_DIR}/testing")
20 |   thrust_clone_target_properties(${framework_target} ${thrust_target})
21 | 
22 |   thrust_fix_clang_nvcc_build_for(${framework_target})
23 | 
24 | endforeach()
25 | 


--------------------------------------------------------------------------------
/testing/unittest/cuda/testframework.h:
--------------------------------------------------------------------------------
 1 | #pragma once
 2 | 
 3 | #include <unittest/testframework.h>
 4 | #include <thrust/system/cuda/memory.h>
 5 | #include <thrust/system_error.h>
 6 | #include <vector>
 7 | 
 8 | class CUDATestDriver
 9 |   : public UnitTestDriver
10 | {
11 |   public:
12 |     int current_device_architecture() const;
13 | 
14 |   private:
15 |     std::vector<int> target_devices(const ArgumentMap &kwargs);
16 | 
17 |     bool check_cuda_error(bool concise);
18 | 
19 |     virtual bool post_test_smoke_check(const UnitTest &test, bool concise);
20 | 
21 |     virtual bool run_tests(const ArgumentSet &args, const ArgumentMap &kwargs);
22 | };
23 | 
24 | UnitTestDriver &driver_instance(thrust::system::cuda::tag);
25 | 
26 | 


--------------------------------------------------------------------------------
/testing/unittest/system.h:
--------------------------------------------------------------------------------
 1 | #pragma once
 2 | 
 3 | // for demangling the result of type_info.name()
 4 | // with msvc, type_info.name() is already demangled
 5 | #ifdef __GNUC__
 6 | #include <cxxabi.h>
 7 | #endif // __GNUC__
 8 | 
 9 | #include <string>
10 | #include <cstdlib>
11 | 
12 | namespace unittest
13 | {
14 | 
15 | #if __GNUC__ && !_NVHPC_CUDA
16 | inline std::string demangle(const char* name)
17 | {
18 |   int status = 0;
19 |   char* realname = abi::__cxa_demangle(name, 0, 0, &status);
20 |   std::string result(realname);
21 |   std::free(realname);
22 | 
23 |   return result;
24 | }
25 | #else
26 | inline std::string demangle(const char* name)
27 | {
28 |   return name;
29 | }
30 | #endif
31 | 
32 | } // end unittest
33 | 
34 | 


--------------------------------------------------------------------------------
/testing/unittest/unittest.h:
--------------------------------------------------------------------------------
 1 | #pragma once
 2 | 
 3 | // this is the only header included by unittests
 4 | // it pulls in all the others used for unittesting
 5 | 
 6 | #include <unittest/assertions.h>
 7 | #include <unittest/meta.h>
 8 | #include <unittest/random.h>
 9 | #include <unittest/testframework.h>
10 | #include <unittest/special_types.h>
11 | 
12 | 


--------------------------------------------------------------------------------
/testing/unittest_static_assert.cmake:
--------------------------------------------------------------------------------
 1 | # Disable unreachable code warnings.
 2 | # This test unconditionally throws in some places, the compiler will detect that
 3 | # control flow will never reach some instructions. This is intentional.
 4 | target_link_libraries(${test_target} PRIVATE thrust.silence_unreachable_code_warnings)
 5 | 
 6 | # The machinery behind this test is not compatible with NVC++.
 7 | # See https://github.com/NVIDIA/thrust/issues/1397
 8 | if ("NVCXX" STREQUAL "${CMAKE_CUDA_COMPILER_ID}")
 9 |   set_tests_properties(${test_target} PROPERTIES DISABLED True)
10 | endif()
11 | 


--------------------------------------------------------------------------------
/testing/unittest_static_assert.cu:
--------------------------------------------------------------------------------
 1 | #include <unittest/runtime_static_assert.h>
 2 | #include <unittest/unittest.h>
 3 | #include <thrust/generate.h>
 4 | 
 5 | template<typename T>
 6 | struct dependent_false
 7 | {
 8 |     enum { value = false };
 9 | };
10 | 
11 | template<typename T>
12 | struct static_assertion
13 | {
14 |     __host__ __device__
15 |     T operator()() const
16 |     {
17 |         THRUST_STATIC_ASSERT(dependent_false<T>::value);
18 |         return 0;
19 |     }
20 | };
21 | 
22 | template<typename V>
23 | void TestStaticAssertAssert()
24 | {
25 |     using value_type = typename V::value_type;
26 |     V test(10);
27 |     ASSERT_STATIC_ASSERT(thrust::generate(test.begin(), test.end(),
28 |                                           static_assertion<value_type>()));
29 | }
30 | DECLARE_VECTOR_UNITTEST(TestStaticAssertAssert);
31 | 


--------------------------------------------------------------------------------
/thrust/addressof.h:
--------------------------------------------------------------------------------
 1 | // Copyright (c) 2018 NVIDIA Corporation
 2 | // Author: Bryce Adelstein Lelbach <brycelelbach@gmail.com>
 3 | //
 4 | // Distributed under the Boost Software License v1.0 (boost.org/LICENSE_1_0.txt)
 5 | 
 6 | #pragma once
 7 | 
 8 | #include <thrust/detail/config.h>
 9 | 
10 | #if THRUST_CPP_DIALECT >= 2011
11 | #  include <thrust/detail/memory_wrapper.h>
12 | #endif
13 | 
14 | THRUST_NAMESPACE_BEGIN
15 | 
16 | ///////////////////////////////////////////////////////////////////////////////
17 | 
18 | /*! Obtains the actual address of the object or function arg, even in presence of overloaded operator&.
19 |  */
20 | template <typename T>
21 | __host__ __device__
22 | T* addressof(T& arg) 
23 | {
24 |   return reinterpret_cast<T*>(
25 |     &const_cast<char&>(reinterpret_cast<const volatile char&>(arg))
26 |   );
27 | }
28 | 
29 | ///////////////////////////////////////////////////////////////////////////////
30 | 
31 | THRUST_NAMESPACE_END
32 | 


--------------------------------------------------------------------------------
/thrust/cmake/thrust-header-search.cmake:
--------------------------------------------------------------------------------
1 | # Parse version information from version.h in source tree
2 | set(_THRUST_VERSION_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}/../..")
3 | if(EXISTS "${_THRUST_VERSION_INCLUDE_DIR}/thrust/version.h")
4 |   set(_THRUST_VERSION_INCLUDE_DIR "${_THRUST_VERSION_INCLUDE_DIR}" CACHE FILEPATH "" FORCE) # Clear old result
5 |   set_property(CACHE _THRUST_VERSION_INCLUDE_DIR PROPERTY TYPE INTERNAL)
6 | endif()
7 | 


--------------------------------------------------------------------------------
/thrust/cmake/thrust-header-search.cmake.in:
--------------------------------------------------------------------------------
 1 | # Parse version information from version.h:
 2 | unset(_THRUST_VERSION_INCLUDE_DIR CACHE) # Clear old result to force search
 3 | 
 4 | # Find CMAKE_INSTALL_INCLUDEDIR=@CMAKE_INSTALL_INCLUDEDIR@ directory"
 5 | set(from_install_prefix "@install_location@")
 6 | 
 7 | # Transform to a list of directories, replace each directoy with "../"
 8 | # and convert back to a string
 9 | string(REGEX REPLACE "/" ";" from_install_prefix "${from_install_prefix}")
10 | list(TRANSFORM from_install_prefix REPLACE ".+" "../")
11 | list(JOIN from_install_prefix "" from_install_prefix)
12 | 
13 | find_path(_THRUST_VERSION_INCLUDE_DIR thrust/version.h
14 |   NO_DEFAULT_PATH # Only search explicit paths below:
15 |   PATHS
16 |     "${CMAKE_CURRENT_LIST_DIR}/${from_install_prefix}/@CMAKE_INSTALL_INCLUDEDIR@"
17 | )
18 | set_property(CACHE _THRUST_VERSION_INCLUDE_DIR PROPERTY TYPE INTERNAL)
19 | 


--------------------------------------------------------------------------------
/thrust/detail/config.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | /*! \file config.h
17 |  *  \brief Defines platform configuration.
18 |  */
19 | 
20 | #pragma once
21 | 
22 | #include <thrust/version.h>
23 | #include <thrust/detail/config/config.h>
24 | 
25 | 


--------------------------------------------------------------------------------
/thrust/detail/reference_forward_declaration.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2020 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | #include <thrust/detail/use_default.h>
21 | 
22 | THRUST_NAMESPACE_BEGIN
23 | 
24 | template <typename Element, typename Pointer, typename Derived = use_default>
25 | class reference;
26 | 
27 | THRUST_NAMESPACE_END
28 | 
29 | 


--------------------------------------------------------------------------------
/thrust/detail/swap.inl:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/swap.h>
20 | #include <thrust/detail/swap.h>
21 | #include <thrust/detail/swap_ranges.inl>
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/detail/use_default.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | THRUST_NAMESPACE_BEGIN
22 | 
23 | struct use_default {};
24 | 
25 | THRUST_NAMESPACE_END
26 | 
27 | 


--------------------------------------------------------------------------------
/thrust/event.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | /*! \file thrust/event.h
18 |  *  \brief `thrust::event`, an asynchronous handle type.
19 |  */
20 | 
21 | #pragma once
22 | 
23 | #include <thrust/future.h>
24 | 
25 | // TODO: Actually separate `<thrust/future.h>` into two headers.
26 | 
27 | 


--------------------------------------------------------------------------------
/thrust/limits.h:
--------------------------------------------------------------------------------
 1 | // Copyright (c) 2018 NVIDIA Corporation
 2 | // Author: Bryce Adelstein Lelbach <brycelelbach@gmail.com>
 3 | //
 4 | // Distributed under the Boost Software License v1.0 (boost.org/LICENSE_1_0.txt)
 5 | 
 6 | #pragma once
 7 | 
 8 | #include <limits>
 9 | 
10 | #include <thrust/detail/config.h>
11 | #include <thrust/detail/type_traits.h>
12 | 
13 | THRUST_NAMESPACE_BEGIN
14 | 
15 | template <typename T>
16 | struct numeric_limits : std::numeric_limits<T> {};
17 | 
18 | THRUST_NAMESPACE_END
19 | 


--------------------------------------------------------------------------------
/thrust/mr/universal_memory_resource.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2018-2020 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | #include <thrust/mr/device_memory_resource.h>
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/adjacent_difference.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits adjacent_difference
22 | #include <thrust/system/detail/sequential/adjacent_difference.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/assign_value.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits assign_value
22 | #include <thrust/system/detail/sequential/assign_value.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/binary_search.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/system/cpp/detail/execution_policy.h>
20 | 
21 | // this system inherits the binary search algorithms
22 | #include <thrust/system/detail/sequential/binary_search.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/copy.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits copy
22 | #include <thrust/system/detail/sequential/copy.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/copy_if.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits copy_if
22 | #include <thrust/system/detail/sequential/copy_if.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/count.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/equal.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/extrema.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits extrema algorithms
22 | #include <thrust/system/detail/sequential/extrema.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/fill.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/find.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits find
22 | #include <thrust/system/detail/sequential/find.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/for_each.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits for_each
22 | #include <thrust/system/detail/sequential/for_each.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/gather.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/generate.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/get_value.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits get_value
22 | #include <thrust/system/detail/sequential/get_value.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/inner_product.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/iter_swap.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits iter_swap
22 | #include <thrust/system/detail/sequential/iter_swap.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/logical.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/malloc_and_free.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits malloc & free
22 | #include <thrust/system/detail/sequential/malloc_and_free.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/merge.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits merge
22 | #include <thrust/system/detail/sequential/merge.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/mismatch.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/partition.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits partition
22 | #include <thrust/system/detail/sequential/partition.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/per_device_resource.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2018 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special per device resource functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/reduce.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits reduce
22 | #include <thrust/system/detail/sequential/reduce.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/reduce_by_key.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits reduce_by_key
22 | #include <thrust/system/detail/sequential/reduce_by_key.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/remove.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits remove
22 | #include <thrust/system/detail/sequential/remove.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/replace.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/reverse.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/scan.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits scan
22 | #include <thrust/system/detail/sequential/scan.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/scan_by_key.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits the scan_by_key algorithms
22 | #include <thrust/system/detail/sequential/scan_by_key.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/scatter.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/sequence.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/set_operations.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits the set operations
22 | #include <thrust/system/detail/sequential/set_operations.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/sort.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits sort
22 | #include <thrust/system/detail/sequential/sort.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/swap_ranges.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // cpp has no special swap_ranges
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/tabulate.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/temporary_buffer.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special temporary buffer functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/transform.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // cpp has no special transform
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/transform_reduce.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/transform_scan.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/uninitialized_copy.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/uninitialized_fill.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/unique.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits unique
22 | #include <thrust/system/detail/sequential/unique.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cpp/detail/unique_by_key.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits unique_by_key
22 | #include <thrust/system/detail/sequential/unique_by_key.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/cuda/detail/binary_search.h:
--------------------------------------------------------------------------------
 1 | /*
 2 | *  Copyright 2021 NVIDIA Corporation
 3 | *
 4 | *  Licensed under the Apache License, Version 2.0 (the "License");
 5 | *  you may not use this file except in compliance with the License.
 6 | *  You may obtain a copy of the License at
 7 | *
 8 | *      http://www.apache.org/licenses/LICENSE-2.0
 9 | *
10 | *  Unless required by applicable law or agreed to in writing, software
11 | *  distributed under the License is distributed on an "AS IS" BASIS,
12 | *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | *  See the License for the specific language governing permissions and
14 | *  limitations under the License.
15 | */
16 | 
17 | #pragma once
18 | 
19 | // this system has no special version of this algorithm
20 | 


--------------------------------------------------------------------------------
/thrust/system/cuda/detail/logical.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cuda/detail/sequence.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/cuda/detail/temporary_buffer.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2016 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special temporary buffer functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/count.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special count functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/equal.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special equal functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/fill.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special fill functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/gather.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special gather functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/generate.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special generate functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/inner_product.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special inner_product functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/logical.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special logical functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/mismatch.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special mismatch functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/per_device_resource.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2018 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special per device resource functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/replace.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special replace functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/reverse.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special reverse functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/scatter.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special scatter functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/sequence.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special sequence functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/swap_ranges.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special swap_ranges functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/tabulate.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special tabulate functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/temporary_buffer.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special temporary buffer functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/transform.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special transform functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/transform_reduce.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special transform_reduce functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/transform_scan.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/uninitialized_copy.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special version of this algorithm 
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/detail/sequential/uninitialized_fill.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special unintialized_fill functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/assign_value.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits assign_value
22 | #include <thrust/system/cpp/detail/assign_value.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/count.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits count
22 | #include <thrust/system/cpp/detail/count.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/equal.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits equal
22 | #include <thrust/system/cpp/detail/equal.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/fill.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits fill
22 | #include <thrust/system/cpp/detail/fill.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/gather.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits gather
22 | #include <thrust/system/cpp/detail/gather.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/generate.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits generate
22 | #include <thrust/system/cpp/detail/generate.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/get_value.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits get_value
22 | #include <thrust/system/cpp/detail/get_value.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/inner_product.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits inner_product
22 | #include <thrust/system/cpp/detail/inner_product.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/iter_swap.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits iter_swap
22 | #include <thrust/system/cpp/detail/iter_swap.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/logical.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits logical
22 | #include <thrust/system/cpp/detail/logical.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/malloc_and_free.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits malloc and free
22 | #include <thrust/system/cpp/detail/malloc_and_free.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/merge.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits merge
22 | #include <thrust/system/cpp/detail/merge.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/mismatch.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits mismatch
22 | #include <thrust/system/cpp/detail/mismatch.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/per_device_resource.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2018 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special per device resource functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/replace.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits this algorithm
22 | #include <thrust/system/cpp/detail/scatter.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/reverse.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits reverse
22 | #include <thrust/system/cpp/detail/reverse.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/scan.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits scan
22 | #include <thrust/system/cpp/detail/scan.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/scan_by_key.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits this algorithm
22 | #include <thrust/system/cpp/detail/scan_by_key.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/scatter.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits this algorithm
22 | #include <thrust/system/cpp/detail/scatter.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/sequence.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits sequence
22 | #include <thrust/system/cpp/detail/sequence.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/set_operations.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits set_operations
22 | #include <thrust/system/cpp/detail/set_operations.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/swap_ranges.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // omp inherits swap_ranges
22 | #include <thrust/system/cpp/detail/swap_ranges.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/tabulate.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits tabulate
22 | #include <thrust/system/cpp/detail/tabulate.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/temporary_buffer.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special temporary buffer functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/transform.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // omp inherits transform
22 | #include <thrust/system/cpp/detail/transform.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/transform_reduce.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits transform_reduce
22 | #include <thrust/system/cpp/detail/transform_reduce.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/transform_scan.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits transform_scan
22 | #include <thrust/system/cpp/detail/transform_scan.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/uninitialized_copy.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits uninitialized_copy
22 | #include <thrust/system/cpp/detail/uninitialized_copy.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/omp/detail/uninitialized_fill.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits uninitialized_fill
22 | #include <thrust/system/cpp/detail/uninitialized_fill.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/assign_value.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits assign_value
22 | #include <thrust/system/cpp/detail/assign_value.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/binary_search.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits binary_search
22 | #include <thrust/system/cpp/detail/binary_search.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/count.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits count
22 | #include <thrust/system/cpp/detail/count.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/equal.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits equal
22 | #include <thrust/system/cpp/detail/equal.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/fill.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits fill
22 | #include <thrust/system/cpp/detail/fill.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/gather.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits gather
22 | #include <thrust/system/cpp/detail/gather.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/generate.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits generate
22 | #include <thrust/system/cpp/detail/generate.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/get_value.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits get_value
22 | #include <thrust/system/cpp/detail/get_value.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/inner_product.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits inner_product
22 | #include <thrust/system/cpp/detail/inner_product.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/iter_swap.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits iter_swap
22 | #include <thrust/system/cpp/detail/iter_swap.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/logical.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits logical
22 | #include <thrust/system/cpp/detail/logical.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/malloc_and_free.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits malloc and free
22 | #include <thrust/system/cpp/detail/malloc_and_free.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/mismatch.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits mismatch
22 | #include <thrust/system/cpp/detail/mismatch.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/per_device_resource.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2018 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special per device resource functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/replace.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits this algorithm
22 | #include <thrust/system/cpp/detail/scatter.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/reverse.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits reverse
22 | #include <thrust/system/cpp/detail/reverse.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/scan_by_key.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits scan_by_key
22 | #include <thrust/system/cpp/detail/scan_by_key.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/scatter.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits this algorithm
22 | #include <thrust/system/cpp/detail/scatter.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/sequence.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits sequence
22 | #include <thrust/system/cpp/detail/sequence.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/set_operations.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits set_operations
22 | #include <thrust/system/cpp/detail/set_operations.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/swap_ranges.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // tbb inherits swap_ranges
22 | #include <thrust/system/cpp/detail/swap_ranges.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/tabulate.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits tabulate
22 | #include <thrust/system/cpp/detail/tabulate.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/temporary_buffer.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system has no special temporary buffer functions
22 | 
23 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/transform.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // omp inherits transform
22 | #include <thrust/system/cpp/detail/transform.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/transform_reduce.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits transform_reduce
22 | #include <thrust/system/cpp/detail/transform_reduce.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/transform_scan.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits transform_scan
22 | #include <thrust/system/cpp/detail/transform_scan.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/uninitialized_copy.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits uninitialized_copy
22 | #include <thrust/system/cpp/detail/uninitialized_copy.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/system/tbb/detail/uninitialized_fill.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2013 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | #pragma once
18 | 
19 | #include <thrust/detail/config.h>
20 | 
21 | // this system inherits uninitialized_fill
22 | #include <thrust/system/cpp/detail/uninitialized_fill.h>
23 | 
24 | 


--------------------------------------------------------------------------------
/thrust/universal_ptr.h:
--------------------------------------------------------------------------------
 1 | /*
 2 |  *  Copyright 2008-2020 NVIDIA Corporation
 3 |  *
 4 |  *  Licensed under the Apache License, Version 2.0 (the "License");
 5 |  *  you may not use this file except in compliance with the License.
 6 |  *  You may obtain a copy of the License at
 7 |  *
 8 |  *      http://www.apache.org/licenses/LICENSE-2.0
 9 |  *
10 |  *  Unless required by applicable law or agreed to in writing, software
11 |  *  distributed under the License is distributed on an "AS IS" BASIS,
12 |  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  *  See the License for the specific language governing permissions and
14 |  *  limitations under the License.
15 |  */
16 | 
17 | 
18 | /*! \file universal_ptr.h
19 |  *  \brief A pointer to a variable which resides memory accessible to both
20 |  *         hosts and devices.
21 |  */
22 | 
23 | #pragma once
24 | 
25 | #include <thrust/universal_allocator.h>
26 | 
27 | 


--------------------------------------------------------------------------------