├── LICENSE ├── Makefile ├── README.md ├── common ├── common.hpp ├── exceptions.hpp └── system.h ├── dependencies └── thrust-1.17.0 │ ├── .git-blame-ignore-revs │ ├── .github │ └── workflows │ │ ├── deploy-documentation-github-pages.yml │ │ ├── mirror-main-branch-to-master-branch.yml │ │ └── xrefcheck-validate-markdown-links.yml │ ├── .gitignore │ ├── .gitmodules │ ├── LICENSE │ └── 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 │ │ │ ├── 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 ├── example.html ├── include ├── 2darray.hpp ├── AffinityHelpers.hpp ├── AlignedAllocator.hpp ├── AtomicMutex.hpp ├── BitManipulation.hpp ├── BitReader.hpp ├── BitStringFinder.hpp ├── BlockFetcher.hpp ├── BlockFinder.hpp ├── BlockFinderInterface.hpp ├── BlockMap.hpp ├── CLIHelper.hpp ├── CMakeLists.txt ├── Cache.hpp ├── ChunkData.hpp ├── CompressedVector.hpp ├── DataGenerators.hpp ├── DecodedData.hpp ├── DecodedDataView.hpp ├── Error.hpp ├── FasterVector.hpp ├── FileRanges.hpp ├── FileUtils.hpp ├── GzipBlockFinder.hpp ├── GzipChunkFetcher.hpp ├── IndexFileFormat.hpp ├── JoiningThread.hpp ├── MarkerReplacement.hpp ├── ParallelBitStringFinder.hpp ├── ParallelGzipReader.hpp ├── Prefetcher.hpp ├── Statistics.hpp ├── StreamedResults.hpp ├── TestHelpers.hpp ├── ThreadPool.hpp ├── VectorView.hpp ├── WindowMap.hpp ├── alignmentorientation.hpp ├── bitcompressedstring.hpp ├── blockfinder │ ├── Bgzf.hpp │ ├── CMakeLists.txt │ ├── DynamicHuffman.hpp │ ├── Interface.hpp │ ├── PigzNaive.hpp │ ├── PigzParallel.hpp │ ├── PigzStringView.hpp │ ├── Uncompressed.hpp │ └── precodecheck │ │ ├── BruteForceLUT.hpp │ │ ├── SingleCompressedLUT.hpp │ │ ├── SingleLUT.hpp │ │ ├── WalkTreeCompressedLUT.hpp │ │ ├── WalkTreeLUT.hpp │ │ └── WithoutLUT.hpp ├── chunkdecoding │ ├── Bzip2Chunk.hpp │ ├── CMakeLists.txt │ ├── DecompressionError.hpp │ └── GzipChunk.hpp ├── chunkedreadstorage.hpp ├── chunkedreadstorageconstruction.hpp ├── classification.hpp ├── common_rapidgzip.hpp ├── concurrencyhelpers.hpp ├── config.hpp ├── contiguousreadstorage.hpp ├── correct_cpu.hpp ├── correctedsequence.hpp ├── correctionresultoutput.hpp ├── corrector.hpp ├── corrector_common.hpp ├── cpu_alignment.hpp ├── cpucorrectortask.hpp ├── cpuhashtable.hpp ├── cpuminhasher.hpp ├── cpuminhasherconstruction.hpp ├── cpureadstorage.hpp ├── cpusequencehasher.hpp ├── cxxopts.hpp ├── cxxopts │ ├── LICENSE │ └── cxxopts.hpp ├── deserialize.hpp ├── dispatch_care_correct_cpu.hpp ├── filehelpers.hpp ├── filereader │ ├── BufferView.hpp │ ├── Buffered.hpp │ ├── CMakeLists.txt │ ├── FileReader.hpp │ ├── Memory.hpp │ ├── Python.hpp │ ├── Shared.hpp │ ├── SinglePass.hpp │ ├── Standard.hpp │ └── StreamAdapter.hpp ├── forest.hpp ├── gpu │ ├── asyncdeviceallocation.cuh │ ├── asyncresult.cuh │ ├── cachingallocator.cuh │ ├── classification_gpu.cuh │ ├── correct_gpu.hpp │ ├── cubvector.cuh │ ├── cubwrappers.cuh │ ├── cuda_block_select.cuh │ ├── cuda_block_unique.cuh │ ├── cuda_unique.cuh │ ├── cudaerrorcheck.cuh │ ├── cudagraphhelpers.cuh │ ├── dispatch_care_correct_gpu.cuh │ ├── fakegpuminhasher.cuh │ ├── fakegpusinglehashminhasher.cuh │ ├── forest_gpu.cuh │ ├── global_cuda_stream_pool.cuh │ ├── gpubitarray.cuh │ ├── gpucorrector.cuh │ ├── gpucorrectorkernels.cuh │ ├── gpucpuminhasheradapter.cuh │ ├── gpucpureadstorageadapter.cuh │ ├── gpuhashtable.cuh │ ├── gpulengthstorage.hpp │ ├── gpuminhasher.cuh │ ├── gpuminhasherconstruction.cuh │ ├── gpumsa.cuh │ ├── gpumsamanaged.cuh │ ├── gpureadstorage.cuh │ ├── gpusequencehasher.cuh │ ├── gpustringglueing.cuh │ ├── groupmemcpy.cuh │ ├── kernels.hpp │ ├── memcpykernel.cuh │ ├── minhasheradapters.hpp │ ├── minhashqueryfilter.cuh │ ├── multigpuarray.cuh │ ├── multigpuminhasher.cuh │ ├── multigpureadstorage.cuh │ ├── rmm_utilities.cuh │ ├── segmented_set_operations.cuh │ ├── sequenceconversionkernels.cuh │ ├── singlegpu2darray.cuh │ └── singlegpuminhasher.cuh ├── groupbykey.hpp ├── gzip │ ├── CMakeLists.txt │ ├── GzipAnalyzer.hpp │ ├── GzipReader.hpp │ ├── InflateWrapper.hpp │ ├── RFCTables.hpp │ ├── bzip2.hpp │ ├── crc32.hpp │ ├── definitions.hpp │ ├── deflate.hpp │ ├── format.hpp │ ├── gzip.hpp │ ├── isal.hpp │ ├── precode.hpp │ └── zlib.hpp ├── helpers ├── hostdevicefunctions.cuh ├── hpc_helpers.cuh ├── hpc_helpers │ ├── .gitignore │ ├── CMakeLists.txt │ ├── LICENSE │ ├── README.md │ ├── examples │ │ ├── CMakeLists.txt │ │ ├── Makefile │ │ ├── helpers_example.cu │ │ └── packed_types_example.cu │ ├── include │ │ ├── all_helpers.cuh │ │ ├── coop_group_helpers.cuh │ │ ├── cuda_helpers.cuh │ │ ├── cuda_raiiwrappers.cuh │ │ ├── custom_thrust_allocators.cuh │ │ ├── hashers.cuh │ │ ├── hpc_helpers.h │ │ ├── io_helpers.h │ │ ├── nvtx_markers.cuh │ │ ├── packed_types.cuh │ │ ├── peer_access.cuh │ │ ├── simple_allocation.cuh │ │ ├── timers.cuh │ │ ├── type_helpers.h │ │ └── utility_kernels.cuh │ └── tests │ │ ├── CMakeLists.txt │ │ ├── Makefile │ │ ├── include │ │ └── catch.hpp │ │ ├── src │ │ ├── catch_main.cu │ │ └── packed_types_test.cu │ │ └── util │ │ └── update_catch.sh ├── huffman │ ├── CMakeLists.txt │ ├── HuffmanCodingBase.hpp │ ├── HuffmanCodingCheckOnly.hpp │ ├── HuffmanCodingDistanceISAL.hpp │ ├── HuffmanCodingDoubleLiteralCached.hpp │ ├── HuffmanCodingISAL.hpp │ ├── HuffmanCodingLinearSearch.hpp │ ├── HuffmanCodingReversedBitsCached.hpp │ ├── HuffmanCodingReversedBitsCachedCompressed.hpp │ ├── HuffmanCodingReversedBitsCachedSeparateLengths.hpp │ ├── HuffmanCodingReversedCodesPerLength.hpp │ ├── HuffmanCodingShortBitsCached.hpp │ ├── HuffmanCodingShortBitsCachedDeflate.hpp │ ├── HuffmanCodingShortBitsMultiCached.hpp │ └── HuffmanCodingSymbolsPerLength.hpp ├── kseqpp │ ├── filereader.hpp │ ├── gziphelpers.hpp │ └── kseqpp.hpp ├── lengthstorage.hpp ├── logreg.hpp ├── memorymanagement.hpp ├── minhasherhandle.hpp ├── minhasherlimit.hpp ├── mmapbuffer.hpp ├── moodycamel │ ├── concurrentqueue │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── blockingconcurrentqueue.h │ │ ├── concurrentqueue.h │ │ └── lightweightsemaphore.h │ └── readerwriterqueue │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── atomicops.h │ │ └── readerwriterqueue.h ├── msa.hpp ├── msasplits.hpp ├── mystringview.hpp ├── nlohmann │ ├── adl_serializer.hpp │ ├── byte_container_with_subtype.hpp │ ├── detail │ │ ├── abi_macros.hpp │ │ ├── conversions │ │ │ ├── from_json.hpp │ │ │ ├── to_chars.hpp │ │ │ └── to_json.hpp │ │ ├── exceptions.hpp │ │ ├── hash.hpp │ │ ├── input │ │ │ ├── binary_reader.hpp │ │ │ ├── input_adapters.hpp │ │ │ ├── json_sax.hpp │ │ │ ├── lexer.hpp │ │ │ ├── parser.hpp │ │ │ └── position_t.hpp │ │ ├── iterators │ │ │ ├── internal_iterator.hpp │ │ │ ├── iter_impl.hpp │ │ │ ├── iteration_proxy.hpp │ │ │ ├── iterator_traits.hpp │ │ │ ├── json_reverse_iterator.hpp │ │ │ └── primitive_iterator.hpp │ │ ├── json_custom_base_class.hpp │ │ ├── json_pointer.hpp │ │ ├── json_ref.hpp │ │ ├── macro_scope.hpp │ │ ├── macro_unscope.hpp │ │ ├── meta │ │ │ ├── call_std │ │ │ │ ├── begin.hpp │ │ │ │ └── end.hpp │ │ │ ├── cpp_future.hpp │ │ │ ├── detected.hpp │ │ │ ├── identity_tag.hpp │ │ │ ├── is_sax.hpp │ │ │ ├── std_fs.hpp │ │ │ ├── type_traits.hpp │ │ │ └── void_t.hpp │ │ ├── output │ │ │ ├── binary_writer.hpp │ │ │ ├── output_adapters.hpp │ │ │ └── serializer.hpp │ │ ├── string_concat.hpp │ │ ├── string_escape.hpp │ │ ├── string_utils.hpp │ │ └── value_t.hpp │ ├── json.hpp │ ├── json_fwd.hpp │ ├── ordered_map.hpp │ └── thirdparty │ │ └── hedley │ │ ├── hedley.hpp │ │ └── hedley_undef.hpp ├── options.hpp ├── ordinaryminhasher.hpp ├── parallel │ ├── LICENSE │ ├── parallel_executor.h │ ├── parallel_task_queue.h │ ├── task_thread.h │ └── tuple_apply.h ├── qualityscorecompression.hpp ├── qualityscoreweights.hpp ├── rangegenerator.hpp ├── rapidgzip.hpp ├── readlibraryio.hpp ├── readstorageconstruction.hpp ├── readstoragehandle.hpp ├── sequencehelpers.hpp ├── serializedobjectstorage.hpp ├── sharedmutex.hpp ├── singlehashminhasher.hpp ├── sortbygeneratedkeys.hpp ├── sortserializedresults.hpp ├── stringglueing.hpp ├── thirdparty.hpp ├── threadpool.hpp ├── util.hpp ├── util_iterator.hpp └── version.hpp ├── lib ├── assert.hpp ├── decompressor.hpp ├── deflate_constants.h ├── deflate_decompress.hpp ├── gzip_constants.h ├── gzip_decompress.hpp ├── input_stream.hpp ├── libdeflatePugz.h └── memory.hpp ├── obj └── .gitkeep ├── pics ├── RabbitQCPlus.png ├── error_correction.png ├── gzip.png └── plain.png ├── src ├── Buffer.h ├── CLI11.hpp ├── Common.h ├── DataPool.h ├── DataQueue.h ├── FastxChunk.h ├── FastxStream.cpp ├── FastxStream.h ├── FileReader.h ├── Formater.cpp ├── Formater.h ├── Globals.h ├── Reference.h ├── adapter.cpp ├── adapter.h ├── atomicops.h ├── blocksplitter.c ├── blocksplitter.h ├── cache.c ├── cache.h ├── cmdinfo.cpp ├── cmdinfo.h ├── concurrentqueue.h ├── correct_cpu.cpp ├── correctionresultoutput.cpp ├── cpu_alignment.cpp ├── cpuminhasherconstruction.cpp ├── deflate.c ├── deflate.h ├── dispatch_care_correct_cpu.cpp ├── duplicate.cpp ├── duplicate.h ├── filter.cpp ├── filter.h ├── hash.c ├── hash.h ├── include │ ├── RabbitIO.h │ ├── crc32.h │ ├── deflate.h │ ├── gzguts.h │ ├── inffast.h │ ├── inffixed.h │ ├── inflate.h │ ├── inftrees.h │ ├── trees.h │ ├── zconf.h │ ├── zlib.h │ └── zutil.h ├── jsonrepoter.cpp ├── jsonrepoter.h ├── katajainen.c ├── katajainen.h ├── licenses.cpp ├── lz77.c ├── lz77.h ├── main.cpp ├── main_correct_cpu.cpp ├── main_correct_cpu.h ├── msa.cpp ├── ntHashIterator.hpp ├── nthash.hpp ├── nucleotidetree.cpp ├── nucleotidetree.h ├── options.cpp ├── peqc.cpp ├── peqc.h ├── pigz.cpp ├── pigz.h ├── polyx.cpp ├── polyx.h ├── pragzip.cpp ├── pragzip.cpp.back ├── pragzip.h ├── prog_util.cpp ├── prog_util.h ├── pugz.cpp ├── pugz.h ├── readerwriterqueue.h ├── readlibraryio.cpp ├── repoter.cpp ├── repoter.h ├── robin_hood.h ├── seqc.cpp ├── seqc.h ├── squeeze.c ├── squeeze.h ├── ssHashIterator.hpp ├── stHashIterator.hpp ├── state.cpp ├── state.h ├── symbols.c ├── symbols.h ├── tgetopt.cpp ├── tgsstate.cpp ├── tgsstate.h ├── th_ass.h ├── threadinfo.cpp ├── threadinfo.h ├── threadpool.cpp ├── tree.c ├── tree.h ├── try.c ├── try.h ├── umier.cpp ├── umier.h ├── util.h ├── utilPigz.c ├── utilPigz.h ├── utils.h ├── yarn.c ├── yarn.h └── zopfli.h └── use_igzip /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 RabbitBio 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /common/system.h: -------------------------------------------------------------------------------- 1 | #ifndef SYSTEM_H 2 | #define SYSTEM_H 3 | 4 | #include 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | namespace utils { namespace system { namespace except { 11 | 12 | void 13 | throw_syserr(const std::string& what) 14 | { 15 | int errcode = errno; 16 | errno = 0; 17 | switch (errcode) { 18 | case ENOMEM: throw std::bad_alloc(); 19 | default: throw std::system_error(errcode, std::generic_category(), what); 20 | } 21 | } 22 | 23 | inline int 24 | check_ret(int ret, const std::string& what) 25 | { 26 | if (ret < 0) throw_syserr(what); 27 | return ret; 28 | } 29 | 30 | template 31 | inline T* 32 | check_ptr(T* ret, const std::string& what) 33 | { 34 | if (ret == nullptr) throw_syserr(what); 35 | return ret; 36 | } 37 | }}} 38 | 39 | #endif // SYSTEM_H 40 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/.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 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/.github/workflows/deploy-documentation-github-pages.yml: -------------------------------------------------------------------------------- 1 | name: Deploy Documentation GitHub Pages 2 | 3 | on: 4 | push: 5 | branches: 6 | - feature/new-docs 7 | 8 | jobs: 9 | deploy-documentation-github-pages: 10 | runs-on: ubuntu-latest 11 | container: gpuci/cccl:cuda11.5.1-devel-ubuntu20.04-gcc9 12 | steps: 13 | - name: Checkout repository 14 | uses: actions/checkout@v2 15 | - name: Generate documentation markdown 16 | run: ./docs/generate_markdown.bash --clean 17 | - name: Deploy generated documentation markdown to gh-pages branch 18 | uses: peaceiris/actions-gh-pages@v3 19 | if: github.ref == 'refs/heads/main' 20 | with: 21 | github_token: ${{ secrets.GITHUB_TOKEN }} 22 | publish_dir: ./build_docs/github_pages 23 | enable_jekyll: true 24 | commit_message: "Deploy Documentation: ${{ github.event.head_commit.message }}" 25 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/.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 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/.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 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/.gitignore: -------------------------------------------------------------------------------- 1 | discrete_voronoi.pgm 2 | *build*/ 3 | .idea/ 4 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "cub"] 2 | path = dependencies/cub 3 | url = ../cub.git 4 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/addressof.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 NVIDIA Corporation 2 | // Author: Bryce Adelstein Lelbach 3 | // 4 | // Distributed under the Boost Software License v1.0 (boost.org/LICENSE_1_0.txt) 5 | 6 | #pragma once 7 | 8 | #include 9 | 10 | #if THRUST_CPP_DIALECT >= 2011 11 | # include 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 21 | __host__ __device__ 22 | T* addressof(T& arg) 23 | { 24 | return reinterpret_cast( 25 | &const_cast(reinterpret_cast(arg)) 26 | ); 27 | } 28 | 29 | /////////////////////////////////////////////////////////////////////////////// 30 | 31 | THRUST_NAMESPACE_END 32 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/cmake/thrust-header-search.cmake: -------------------------------------------------------------------------------- 1 | # Parse version information from version.h: 2 | unset(_THRUST_VERSION_INCLUDE_DIR CACHE) # Clear old result to force search 3 | find_path(_THRUST_VERSION_INCLUDE_DIR thrust/version.h 4 | NO_DEFAULT_PATH # Only search explicit paths below: 5 | PATHS 6 | "${CMAKE_CURRENT_LIST_DIR}/../.." # Source tree 7 | ) 8 | set_property(CACHE _THRUST_VERSION_INCLUDE_DIR PROPERTY TYPE INTERNAL) 9 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/algorithm_wrapper.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 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 | // When a compiler uses Thrust as part of its implementation of Standard C++ 20 | // algorithms, a cycle of included files may result when Thrust code tries to 21 | // use a standard algorithm. Having a macro that is defined only when Thrust 22 | // is including an algorithms-related header gives the compiler a chance to 23 | // detect and break the cycle of includes. 24 | 25 | #define THRUST_INCLUDING_ALGORITHMS_HEADER 26 | #include 27 | #undef THRUST_INCLUDING_ALGORITHMS_HEADER 28 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/allocator/default_construct_range.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 20 | 21 | THRUST_NAMESPACE_BEGIN 22 | namespace detail 23 | { 24 | 25 | 26 | template 27 | __host__ __device__ 28 | inline void default_construct_range(Allocator &a, Pointer p, Size n); 29 | 30 | 31 | } // end detail 32 | THRUST_NAMESPACE_END 33 | 34 | #include 35 | 36 | 37 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/allocator/destroy_range.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 20 | 21 | THRUST_NAMESPACE_BEGIN 22 | namespace detail 23 | { 24 | 25 | template 26 | __host__ __device__ 27 | inline void destroy_range(Allocator &a, Pointer p, Size n); 28 | 29 | } // end detail 30 | THRUST_NAMESPACE_END 31 | 32 | #include 33 | 34 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/allocator/fill_construct_range.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 20 | 21 | THRUST_NAMESPACE_BEGIN 22 | namespace detail 23 | { 24 | 25 | 26 | template 27 | __host__ __device__ 28 | inline void fill_construct_range(Allocator &a, Pointer p, Size n, const T &value); 29 | 30 | 31 | } // end detail 32 | THRUST_NAMESPACE_END 33 | 34 | #include 35 | 36 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 23 | #include 24 | 25 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/config/debug.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 | #ifndef THRUST_DEBUG 20 | # ifndef NDEBUG 21 | # if defined(DEBUG) || defined(_DEBUG) 22 | # define THRUST_DEBUG 1 23 | # endif // (DEBUG || _DEBUG) 24 | # endif // NDEBUG 25 | #endif // THRUST_DEBUG 26 | 27 | #if THRUST_DEBUG 28 | # ifndef __THRUST_SYNCHRONOUS 29 | # define __THRUST_SYNCHRONOUS 1 30 | # endif // __THRUST_SYNCHRONOUS 31 | #endif // THRUST_DEBUG 32 | 33 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/config/forceinline.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 forceinline.h 18 | * \brief Defines __thrust_forceinline__ 19 | */ 20 | 21 | #pragma once 22 | 23 | #include 24 | 25 | #if defined(__CUDACC__) || defined(_NVHPC_CUDA) 26 | 27 | #define __thrust_forceinline__ __forceinline__ 28 | 29 | #else 30 | 31 | // TODO add 32 | 33 | #define __thrust_forceinline__ 34 | 35 | #endif 36 | 37 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/config/global_workarounds.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 20 | 21 | // XXX workaround gcc 4.8+'s complaints about unused local typedefs by silencing them globally 22 | #if defined(THRUST_GCC_VERSION) && (THRUST_GCC_VERSION >= 40800) 23 | # if defined(__NVCC__) && (CUDART_VERSION >= 6000) 24 | # pragma GCC diagnostic ignored "-Wunused-local-typedefs" 25 | # endif // nvcc & cuda 6+ 26 | #endif // gcc 4.8 27 | 28 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/config/simple_defines.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 simple_defines.h 18 | * \brief Primitive macros without dependencies. 19 | */ 20 | 21 | #pragma once 22 | 23 | #define THRUST_UNKNOWN 0 24 | #define THRUST_FALSE 0 25 | #define THRUST_TRUE 1 26 | 27 | #define THRUST_UNUSED_VAR(expr) do { (void)(expr); } while (0) 28 | 29 | #define THRUST_PREVENT_MACRO_SUBSTITUTION 30 | 31 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/cpp11_required.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 20 | 21 | #ifndef THRUST_CPP11_REQUIRED_NO_ERROR 22 | # if THRUST_CPP_DIALECT < 2011 23 | # error C++11 is required for this Thrust feature; please upgrade your compiler or pass the appropriate -std=c++XX flag to it. 24 | # endif 25 | #endif 26 | 27 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/cpp14_required.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 20 | 21 | #ifndef THRUST_CPP14_REQUIRED_NO_ERROR 22 | # if THRUST_CPP_DIALECT < 2014 23 | # error C++14 is required for this Thrust feature; please upgrade your compiler or pass the appropriate -std=c++14 flag to it. 24 | # endif 25 | #endif 26 | 27 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/distance.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 20 | #include 21 | #include 22 | #include 23 | 24 | THRUST_NAMESPACE_BEGIN 25 | 26 | __thrust_exec_check_disable__ 27 | template 28 | inline __host__ __device__ 29 | typename thrust::iterator_traits::difference_type 30 | distance(InputIterator first, InputIterator last) 31 | { 32 | return thrust::system::detail::generic::distance(first, last); 33 | } // end distance() 34 | 35 | THRUST_NAMESPACE_END 36 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/functional/operators.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 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | 26 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/functional/placeholder.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 20 | #include 21 | #include 22 | 23 | THRUST_NAMESPACE_BEGIN 24 | namespace detail 25 | { 26 | namespace functional 27 | { 28 | 29 | template 30 | struct placeholder 31 | { 32 | typedef actor > type; 33 | }; 34 | 35 | } // end functional 36 | } // end detail 37 | THRUST_NAMESPACE_END 38 | 39 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/modern_gcc_required.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 20 | 21 | #ifndef THRUST_MODERN_GCC_REQUIRED_NO_ERROR 22 | # if defined(THRUST_GCC_VERSION) && !defined(THRUST_MODERN_GCC) 23 | # error GCC 5 or later is required for this Thrust feature; please upgrade your compiler. 24 | # endif 25 | #endif 26 | 27 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/numeric_wrapper.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 | // When a compiler uses Thrust as part of its implementation of Standard C++ 20 | // algorithms, a cycle of included files may result when Thrust code tries to 21 | // use a standard algorithm. Having a macro that is defined only when Thrust 22 | // is including an algorithms-related header gives the compiler a chance to 23 | // detect and break the cycle of includes. 24 | 25 | #define THRUST_INCLUDING_ALGORITHMS_HEADER 26 | #include 27 | #undef THRUST_INCLUDING_ALGORITHMS_HEADER 28 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | #include 21 | 22 | THRUST_NAMESPACE_BEGIN 23 | 24 | template 25 | class reference; 26 | 27 | THRUST_NAMESPACE_END 28 | 29 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/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 | 18 | #pragma once 19 | 20 | #include 21 | 22 | THRUST_NAMESPACE_BEGIN 23 | 24 | __thrust_exec_check_disable__ 25 | template 26 | __host__ __device__ 27 | inline void swap(Assignable1 &a, Assignable2 &b) 28 | { 29 | Assignable1 temp = a; 30 | a = b; 31 | b = temp; 32 | } // end swap() 33 | 34 | THRUST_NAMESPACE_END 35 | 36 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | #include 21 | #include 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/type_traits/has_nested_type.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 20 | 21 | #define __THRUST_DEFINE_HAS_NESTED_TYPE(trait_name, nested_type_name) \ 22 | template \ 23 | struct trait_name \ 24 | { \ 25 | typedef char yes_type; \ 26 | typedef int no_type; \ 27 | template static yes_type test(typename S::nested_type_name *); \ 28 | template static no_type test(...); \ 29 | static bool const value = sizeof(test(0)) == sizeof(yes_type);\ 30 | typedef thrust::detail::integral_constant type;\ 31 | }; 32 | 33 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/type_traits/is_metafunction_defined.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 20 | 21 | #include 22 | #include 23 | 24 | THRUST_NAMESPACE_BEGIN 25 | 26 | namespace detail 27 | { 28 | 29 | __THRUST_DEFINE_HAS_NESTED_TYPE(is_metafunction_defined, type) 30 | 31 | template 32 | struct enable_if_defined 33 | : thrust::detail::lazy_enable_if< 34 | is_metafunction_defined::value, 35 | Metafunction 36 | > 37 | {}; 38 | 39 | } // end detail 40 | 41 | THRUST_NAMESPACE_END 42 | 43 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/detail/type_traits/iterator/is_discard_iterator.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 20 | #include 21 | #include 22 | 23 | THRUST_NAMESPACE_BEGIN 24 | namespace detail 25 | { 26 | 27 | template 28 | struct is_discard_iterator 29 | : public thrust::detail::false_type 30 | {}; 31 | 32 | template 33 | struct is_discard_iterator< thrust::discard_iterator > 34 | : public thrust::detail::true_type 35 | {}; 36 | 37 | } // end namespace detail 38 | THRUST_NAMESPACE_END 39 | 40 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | THRUST_NAMESPACE_BEGIN 22 | 23 | struct use_default {}; 24 | 25 | THRUST_NAMESPACE_END 26 | 27 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 24 | 25 | // TODO: Actually separate `` into two headers. 26 | 27 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/iterator/detail/any_system_tag.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 20 | #include 21 | 22 | THRUST_NAMESPACE_BEGIN 23 | 24 | struct any_system_tag 25 | : thrust::execution_policy 26 | { 27 | // allow any_system_tag to convert to any type at all 28 | // XXX make this safer using enable_if> upon c++11 29 | template operator T () const {return T();} 30 | }; 31 | 32 | THRUST_NAMESPACE_END 33 | 34 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/iterator/detail/device_system_tag.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 20 | 21 | // #include the device system's execution_policy header 22 | #define __THRUST_DEVICE_SYSTEM_TAG_HEADER <__THRUST_DEVICE_SYSTEM_ROOT/detail/execution_policy.h> 23 | #include __THRUST_DEVICE_SYSTEM_TAG_HEADER 24 | #undef __THRUST_DEVICE_SYSTEM_TAG_HEADER 25 | 26 | THRUST_NAMESPACE_BEGIN 27 | 28 | typedef thrust::system::__THRUST_DEVICE_SYSTEM_NAMESPACE::tag device_system_tag; 29 | 30 | THRUST_NAMESPACE_END 31 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/iterator/detail/host_system_tag.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 20 | 21 | // #include the host system's execution_policy header 22 | #define __THRUST_HOST_SYSTEM_TAG_HEADER <__THRUST_HOST_SYSTEM_ROOT/detail/execution_policy.h> 23 | #include __THRUST_HOST_SYSTEM_TAG_HEADER 24 | #undef __THRUST_HOST_SYSTEM_TAG_HEADER 25 | 26 | THRUST_NAMESPACE_BEGIN 27 | 28 | typedef thrust::system::__THRUST_HOST_SYSTEM_NAMESPACE::tag host_system_tag; 29 | 30 | THRUST_NAMESPACE_END 31 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/limits.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 NVIDIA Corporation 2 | // Author: Bryce Adelstein Lelbach 3 | // 4 | // Distributed under the Boost Software License v1.0 (boost.org/LICENSE_1_0.txt) 5 | 6 | #pragma once 7 | 8 | #include 9 | 10 | #include 11 | #include 12 | 13 | THRUST_NAMESPACE_BEGIN 14 | 15 | template 16 | struct numeric_limits : std::numeric_limits {}; 17 | 18 | THRUST_NAMESPACE_END 19 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/mr/host_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 20 | 21 | // #include the host system's memory_resource header 22 | #define __THRUST_HOST_SYSTEM_MEMORY_HEADER <__THRUST_HOST_SYSTEM_ROOT/memory_resource.h> 23 | #include __THRUST_HOST_SYSTEM_MEMORY_HEADER 24 | #undef __THRUST_HOST_SYSTEM_MEMORY_HEADER 25 | 26 | THRUST_NAMESPACE_BEGIN 27 | 28 | typedef thrust::system::__THRUST_HOST_SYSTEM_NAMESPACE::memory_resource 29 | host_memory_resource; 30 | 31 | THRUST_NAMESPACE_END 32 | 33 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | #include 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits adjacent_difference 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits assign_value 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits the binary search algorithms 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits copy 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits copy_if 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits extrema algorithms 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits find 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits for_each 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits get_value 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits iter_swap 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits malloc & free 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits merge 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits partition 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special per device resource functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits reduce 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits reduce_by_key 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits remove 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits scan 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits the scan_by_key algorithms 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits the set operations 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits sort 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // cpp has no special swap_ranges 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special temporary buffer functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // cpp has no special transform 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits unique 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits unique_by_key 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special temporary buffer functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/thrust/system/detail/generic/advance.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 | 18 | #pragma once 19 | 20 | #include 21 | 22 | THRUST_NAMESPACE_BEGIN 23 | namespace system 24 | { 25 | namespace detail 26 | { 27 | namespace generic 28 | { 29 | 30 | template 31 | __host__ __device__ 32 | void advance(InputIterator& i, Distance n); 33 | 34 | } // end namespace generic 35 | } // end namespace detail 36 | } // end namespace system 37 | THRUST_NAMESPACE_END 38 | 39 | #include 40 | 41 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special count functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special equal functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special fill functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special gather functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special generate functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special inner_product functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special logical functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special mismatch functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special per device resource functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special replace functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special reverse functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special scatter functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special sequence functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special swap_ranges functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special tabulate functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special temporary buffer functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special transform functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special transform_reduce functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special version of this algorithm 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special unintialized_fill functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits assign_value 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits count 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits equal 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits fill 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits gather 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits generate 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits get_value 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits inner_product 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits iter_swap 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits logical 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits malloc and free 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits merge 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits mismatch 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special per device resource functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits this algorithm 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits reverse 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits scan 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits this algorithm 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits this algorithm 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits sequence 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits set_operations 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // omp inherits swap_ranges 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits tabulate 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special temporary buffer functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // omp inherits transform 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits transform_reduce 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits transform_scan 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits uninitialized_copy 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits uninitialized_fill 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits assign_value 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits binary_search 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits count 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits equal 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits fill 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits gather 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits generate 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits get_value 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits inner_product 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits iter_swap 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits logical 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits malloc and free 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits mismatch 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special per device resource functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits this algorithm 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits reverse 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits scan_by_key 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits this algorithm 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits sequence 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits set_operations 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // tbb inherits swap_ranges 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits tabulate 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system has no special temporary buffer functions 22 | 23 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // omp inherits transform 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits transform_reduce 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits transform_scan 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits uninitialized_copy 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 20 | 21 | // this system inherits uninitialized_fill 22 | #include 23 | 24 | -------------------------------------------------------------------------------- /dependencies/thrust-1.17.0/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 26 | 27 | -------------------------------------------------------------------------------- /include/AtomicMutex.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | 8 | class AtomicMutex 9 | { 10 | public: 11 | void 12 | lock() 13 | { 14 | /* Wait until we successfully have set the flag ourselves. 15 | * Test with relaxed memory order first to improve speed because the modifying exchange has to 16 | * lock the cache line. */ 17 | while ( m_flag.load( std::memory_order_relaxed ) || m_flag.exchange( true, std::memory_order_acquire ) ) { 18 | using namespace std::chrono_literals; 19 | std::this_thread::sleep_for( 10ns ); 20 | } 21 | } 22 | 23 | void 24 | unlock() 25 | { 26 | m_flag.store( false, std::memory_order_release ); 27 | } 28 | 29 | private: 30 | std::atomic m_flag{ false }; 31 | }; 32 | -------------------------------------------------------------------------------- /include/BlockFinderInterface.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | 9 | class BlockFinderInterface 10 | { 11 | public: 12 | enum class GetReturnCode 13 | { 14 | SUCCESS, 15 | TIMEOUT, 16 | FAILURE, 17 | }; 18 | 19 | public: 20 | virtual 21 | ~BlockFinderInterface() = default; 22 | 23 | [[nodiscard]] virtual size_t 24 | size() const = 0; 25 | 26 | [[nodiscard]] virtual bool 27 | finalized() const = 0; 28 | 29 | [[nodiscard]] virtual std::pair, GetReturnCode> 30 | get( size_t blockIndex, 31 | double timeoutInSeconds ) = 0; 32 | 33 | [[nodiscard]] virtual std::optional 34 | get( size_t blockIndex ) 35 | { 36 | const auto [result, returnCode] = get( blockIndex, std::numeric_limits::infinity() ); 37 | assert( returnCode != GetReturnCode::TIMEOUT ); 38 | return result; 39 | } 40 | 41 | [[nodiscard]] virtual size_t 42 | find( size_t encodedBlockOffsetInBits ) const = 0; 43 | }; 44 | -------------------------------------------------------------------------------- /include/CLIHelper.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include 6 | 7 | 8 | [[nodiscard]] inline std::string 9 | getFilePath( cxxopts::ParseResult const& parsedArgs, 10 | std::string const& argument ) 11 | { 12 | if ( parsedArgs.count( argument ) > 0 ) { 13 | auto path = parsedArgs[argument].as(); 14 | if ( path != "-" ) { 15 | return path; 16 | } 17 | } 18 | return {}; 19 | } 20 | -------------------------------------------------------------------------------- /include/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(huffman) 2 | add_subdirectory(gzip) 3 | add_subdirectory(blockfinder) 4 | add_subdirectory(chunkdecoding) 5 | 6 | 7 | add_library(librapidgzip INTERFACE) 8 | target_include_directories(librapidgzip INTERFACE ${CMAKE_CURRENT_LIST_DIR}) 9 | target_sources(librapidgzip INTERFACE 10 | ${CMAKE_CURRENT_LIST_DIR}/ChunkData.hpp 11 | ${CMAKE_CURRENT_LIST_DIR}/CompressedVector.hpp 12 | ${CMAKE_CURRENT_LIST_DIR}/DecodedData.hpp 13 | ${CMAKE_CURRENT_LIST_DIR}/DecodedDataView.hpp 14 | ${CMAKE_CURRENT_LIST_DIR}/GzipBlockFinder.hpp 15 | ${CMAKE_CURRENT_LIST_DIR}/GzipChunkFetcher.hpp 16 | ${CMAKE_CURRENT_LIST_DIR}/IndexFileFormat.hpp 17 | ${CMAKE_CURRENT_LIST_DIR}/MarkerReplacement.hpp 18 | ${CMAKE_CURRENT_LIST_DIR}/ParallelGzipReader.hpp 19 | ${CMAKE_CURRENT_LIST_DIR}/rapidgzip.hpp 20 | ${CMAKE_CURRENT_LIST_DIR}/WindowMap.hpp 21 | ) 22 | target_link_libraries(librapidgzip INTERFACE 23 | core 24 | indexed_bzip2 25 | rapidgzip::chunkdecoding 26 | ) 27 | target_compile_features(librapidgzip INTERFACE cxx_std_17) 28 | if(WITH_ISAL) 29 | target_compile_definitions(librapidgzip INTERFACE WITH_ISAL) 30 | endif() 31 | -------------------------------------------------------------------------------- /include/DecodedDataView.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #include 7 | 8 | 9 | namespace rapidgzip::deflate 10 | { 11 | /** 12 | * Only one of the two will contain non-empty VectorViews depending on whether marker bytes might appear. 13 | * @ref dataWithMarkers will be empty when @ref setInitialWindow has been called. 14 | */ 15 | struct DecodedDataView 16 | { 17 | public: 18 | [[nodiscard]] constexpr size_t 19 | size() const noexcept 20 | { 21 | return dataWithMarkers[0].size() + dataWithMarkers[1].size() + data[0].size() + data[1].size(); 22 | } 23 | 24 | [[nodiscard]] size_t 25 | dataSize() const noexcept 26 | { 27 | return data[0].size() + data[1].size(); 28 | } 29 | 30 | [[nodiscard]] size_t 31 | dataWithMarkersSize() const noexcept 32 | { 33 | return dataWithMarkers[0].size() + dataWithMarkers[1].size(); 34 | } 35 | 36 | [[nodiscard]] constexpr bool 37 | containsMarkers() const noexcept 38 | { 39 | return !dataWithMarkers[0].empty() || !dataWithMarkers[1].empty(); 40 | } 41 | 42 | public: 43 | std::array, 2> dataWithMarkers; 44 | std::array, 2> data; 45 | }; 46 | } // namespace rapidgzip::deflate 47 | -------------------------------------------------------------------------------- /include/blockfinder/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(libblockfinder INTERFACE) 2 | target_include_directories(libblockfinder INTERFACE ${CMAKE_CURRENT_LIST_DIR}/..) 3 | target_sources(libblockfinder INTERFACE 4 | ${CMAKE_CURRENT_LIST_DIR}/Bgzf.hpp 5 | ${CMAKE_CURRENT_LIST_DIR}/DynamicHuffman.hpp 6 | ${CMAKE_CURRENT_LIST_DIR}/Interface.hpp 7 | ${CMAKE_CURRENT_LIST_DIR}/PigzNaive.hpp 8 | ${CMAKE_CURRENT_LIST_DIR}/PigzParallel.hpp 9 | ${CMAKE_CURRENT_LIST_DIR}/PigzStringView.hpp 10 | ${CMAKE_CURRENT_LIST_DIR}/precodecheck/BruteForceLUT.hpp 11 | ${CMAKE_CURRENT_LIST_DIR}/precodecheck/SingleCompressedLUT.hpp 12 | ${CMAKE_CURRENT_LIST_DIR}/precodecheck/SingleLUT.hpp 13 | ${CMAKE_CURRENT_LIST_DIR}/precodecheck/WalkTreeCompressedLUT.hpp 14 | ${CMAKE_CURRENT_LIST_DIR}/precodecheck/WalkTreeLUT.hpp 15 | ${CMAKE_CURRENT_LIST_DIR}/precodecheck/WithoutLUT.hpp 16 | ) 17 | target_link_libraries(libblockfinder INTERFACE core) 18 | target_compile_features(libblockfinder INTERFACE cxx_std_17) 19 | -------------------------------------------------------------------------------- /include/blockfinder/Interface.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | 6 | namespace rapidgzip::blockfinder 7 | { 8 | class Interface 9 | { 10 | public: 11 | virtual 12 | ~Interface() = default; 13 | 14 | [[nodiscard]] virtual size_t 15 | find() = 0; 16 | }; 17 | } // rapidgzip::blockfinder 18 | -------------------------------------------------------------------------------- /include/chunkdecoding/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(libchunkdecoding INTERFACE) 2 | add_library(rapidgzip::chunkdecoding ALIAS libchunkdecoding) 3 | target_include_directories(libchunkdecoding INTERFACE ${CMAKE_CURRENT_LIST_DIR}) 4 | target_include_directories(libchunkdecoding INTERFACE ${CMAKE_CURRENT_LIST_DIR}/..) 5 | target_sources(libchunkdecoding INTERFACE 6 | ${CMAKE_CURRENT_LIST_DIR}/Bzip2Chunk.hpp 7 | ${CMAKE_CURRENT_LIST_DIR}/GzipChunk.hpp 8 | ${CMAKE_CURRENT_LIST_DIR}/DecompressionError.hpp 9 | ) 10 | target_link_libraries(libchunkdecoding INTERFACE core rapidgzip::gzip indexed_bzip2) 11 | target_compile_features(libchunkdecoding INTERFACE cxx_std_17) 12 | -------------------------------------------------------------------------------- /include/chunkdecoding/DecompressionError.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | 6 | namespace rapidgzip 7 | { 8 | class DecompressionError : 9 | public std::runtime_error 10 | { 11 | public: 12 | DecompressionError( const std::string& message ) : 13 | std::runtime_error( message ) 14 | {} 15 | }; 16 | 17 | 18 | class NoBlockInRange : 19 | public DecompressionError 20 | { 21 | public: 22 | NoBlockInRange( const std::string& message ) : 23 | DecompressionError( message ) 24 | {} 25 | }; 26 | } // namespace rapidgzip 27 | -------------------------------------------------------------------------------- /include/correct_cpu.hpp: -------------------------------------------------------------------------------- 1 | #ifndef CARE_CORRECT_CPU_HPP 2 | #define CARE_CORRECT_CPU_HPP 3 | 4 | #include 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | namespace care{ 13 | namespace cpu{ 14 | 15 | 16 | 17 | SerializedObjectStorage correct_cpu( 18 | const ProgramOptions& programOptions, 19 | CpuMinhasher& minhasher, 20 | CpuReadStorage& readStorage 21 | ); 22 | 23 | 24 | 25 | 26 | } 27 | } 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /include/cpuminhasherconstruction.hpp: -------------------------------------------------------------------------------- 1 | #ifndef CARE_CPUMINHASHERCONSTRUCTION_HPP 2 | #define CARE_CPUMINHASHERCONSTRUCTION_HPP 3 | 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | #include 10 | #include 11 | #include 12 | 13 | namespace care{ 14 | 15 | enum class CpuMinhasherType{ 16 | Ordinary, 17 | //OrdinarySingleHash, 18 | None 19 | }; 20 | 21 | std::string to_string(CpuMinhasherType type); 22 | 23 | std::pair, CpuMinhasherType> 24 | constructCpuMinhasherFromCpuReadStorage( 25 | const ProgramOptions& programOptions, 26 | const CpuReadStorage& cpuReadStorage, 27 | CpuMinhasherType requestedType = CpuMinhasherType::None 28 | ); 29 | 30 | } 31 | 32 | 33 | #endif -------------------------------------------------------------------------------- /include/cxxopts/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Copyright (c) 2014 Jarryd Beck 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. -------------------------------------------------------------------------------- /include/deserialize.hpp: -------------------------------------------------------------------------------- 1 | #ifndef CARE_DESERIALIZE_HPP 2 | #define CARE_DESERIALIZE_HPP 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | namespace care { 10 | 11 | // De-serialization helpers 12 | 13 | // The implementations are they way they are to be absolutely 100% standard-compliant no matter how read() is implemented. 14 | // The char buffer will (usually) be optimized out. 15 | 16 | template 17 | inline T& read_one(std::ifstream& is, T& v) { 18 | char tmp[sizeof(T)]; 19 | is.read(tmp, sizeof(T)); 20 | std::memcpy(&v, tmp, sizeof(T)); 21 | return v; 22 | } 23 | 24 | template 25 | inline T read_one(std::ifstream& is) { 26 | T ret; 27 | read_one(is, ret); 28 | return ret; 29 | } 30 | 31 | template 32 | inline std::string read_str(std::ifstream& is) { 33 | std::string ret(read_one(is), char()); 34 | is.read(&ret[0], ret.size()); 35 | return ret; 36 | } 37 | 38 | } // namespace care 39 | 40 | #endif -------------------------------------------------------------------------------- /include/dispatch_care_correct_cpu.hpp: -------------------------------------------------------------------------------- 1 | #ifndef CARE_DISPATCH_CARE_CORRECT_CPU_HPP 2 | #define CARE_DISPATCH_CARE_CORRECT_CPU_HPP 3 | 4 | #include 5 | #include 6 | 7 | namespace care{ 8 | 9 | void performCorrection(ProgramOptions programOptions); 10 | 11 | void performCorrectionOutToQueue(ProgramOptions programOptions, moodycamel::ReaderWriterQueue> *Q1, moodycamel::ReaderWriterQueue> *Q2, std::atomic_int *producerDone, std::atomic_int *careStartWrite, int* changNum); 12 | 13 | } 14 | 15 | 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /include/filereader/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(filereader INTERFACE) 2 | target_include_directories(filereader INTERFACE ${CMAKE_CURRENT_LIST_DIR}) 3 | target_sources(filereader INTERFACE 4 | ${CMAKE_CURRENT_LIST_DIR}/Buffered.hpp 5 | ${CMAKE_CURRENT_LIST_DIR}/BufferView.hpp 6 | ${CMAKE_CURRENT_LIST_DIR}/FileReader.hpp 7 | ${CMAKE_CURRENT_LIST_DIR}/Memory.hpp 8 | ${CMAKE_CURRENT_LIST_DIR}/Python.hpp 9 | ${CMAKE_CURRENT_LIST_DIR}/Shared.hpp 10 | ${CMAKE_CURRENT_LIST_DIR}/SinglePass.hpp 11 | ${CMAKE_CURRENT_LIST_DIR}/Standard.hpp 12 | ) 13 | target_compile_features(filereader INTERFACE cxx_std_17) 14 | -------------------------------------------------------------------------------- /include/gpu/correct_gpu.hpp: -------------------------------------------------------------------------------- 1 | #ifndef CARE_CORRECT_GPU_HPP 2 | #define CARE_CORRECT_GPU_HPP 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | 11 | #include 12 | 13 | #include 14 | #include 15 | #include 16 | 17 | namespace care { 18 | namespace gpu { 19 | 20 | 21 | SerializedObjectStorage correct_gpu( 22 | const ProgramOptions& programOptions, 23 | GpuMinhasher& minhasher, 24 | GpuReadStorage& readStorage, 25 | const std::vector& anchorForests, 26 | const std::vector& candidateForests 27 | ); 28 | 29 | } 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /include/gpu/dispatch_care_correct_gpu.cuh: -------------------------------------------------------------------------------- 1 | #ifndef CARE_DISPATCH_CARE_CORRECT_GPU_CUH 2 | #define CARE_DISPATCH_CARE_CORRECT_GPU_CUH 3 | 4 | #include 5 | 6 | #include 7 | 8 | namespace care{ 9 | 10 | namespace correction{ 11 | 12 | std::vector getUsableDeviceIds(std::vector deviceIds); 13 | 14 | } 15 | 16 | void performCorrection( 17 | ProgramOptions programOptions 18 | ); 19 | 20 | } 21 | 22 | 23 | 24 | 25 | #endif -------------------------------------------------------------------------------- /include/gpu/gpuminhasherconstruction.cuh: -------------------------------------------------------------------------------- 1 | #ifndef CARE_GPUMINHASHERCONSTRUCTION_CUH 2 | #define CARE_GPUMINHASHERCONSTRUCTION_CUH 3 | 4 | 5 | #include 6 | #include 7 | 8 | #include 9 | 10 | #include 11 | #include 12 | 13 | namespace care{ 14 | namespace gpu{ 15 | 16 | enum class GpuMinhasherType{ 17 | Fake, 18 | FakeSingleHash, 19 | Single, 20 | SingleSingleHash, 21 | Multi, 22 | MultiSingleHash, 23 | None 24 | }; 25 | 26 | std::string to_string(GpuMinhasherType type); 27 | 28 | std::pair, GpuMinhasherType> 29 | constructGpuMinhasherFromGpuReadStorage( 30 | const ProgramOptions& programOptions, 31 | const GpuReadStorage& gpuReadStorage, 32 | GpuMinhasherType requestedType = GpuMinhasherType::None 33 | ); 34 | 35 | 36 | } 37 | } 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | #endif -------------------------------------------------------------------------------- /include/gzip/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(librapidgzipgzip INTERFACE) 2 | add_library(rapidgzip::gzip ALIAS librapidgzipgzip) 3 | target_include_directories(librapidgzipgzip INTERFACE ${CMAKE_CURRENT_LIST_DIR}) 4 | target_include_directories(librapidgzipgzip INTERFACE ${CMAKE_CURRENT_LIST_DIR}/..) 5 | target_sources(librapidgzipgzip INTERFACE 6 | ${CMAKE_CURRENT_LIST_DIR}/crc32.hpp 7 | ${CMAKE_CURRENT_LIST_DIR}/definitions.hpp 8 | ${CMAKE_CURRENT_LIST_DIR}/deflate.hpp 9 | ${CMAKE_CURRENT_LIST_DIR}/format.hpp 10 | ${CMAKE_CURRENT_LIST_DIR}/GzipAnalyzer.hpp 11 | ${CMAKE_CURRENT_LIST_DIR}/gzip.hpp 12 | ${CMAKE_CURRENT_LIST_DIR}/GzipReader.hpp 13 | ${CMAKE_CURRENT_LIST_DIR}/InflateWrapper.hpp 14 | ${CMAKE_CURRENT_LIST_DIR}/isal.hpp 15 | ${CMAKE_CURRENT_LIST_DIR}/precode.hpp 16 | ${CMAKE_CURRENT_LIST_DIR}/RFCTables.hpp 17 | ${CMAKE_CURRENT_LIST_DIR}/zlib.hpp 18 | ) 19 | target_link_libraries(librapidgzipgzip INTERFACE core rapidgzip::gzip::huffman zlibstatic) 20 | if(WITH_ISAL) 21 | target_link_libraries(librapidgzipgzip INTERFACE core rapidgzip::gzip::huffman isal_inflate zlibstatic) 22 | endif() 23 | target_compile_features(librapidgzipgzip INTERFACE cxx_std_17) 24 | -------------------------------------------------------------------------------- /include/helpers: -------------------------------------------------------------------------------- 1 | hpc_helpers/include/ -------------------------------------------------------------------------------- /include/hpc_helpers.cuh: -------------------------------------------------------------------------------- 1 | #ifndef CARE_HPC_HELPERS_CUH 2 | #define CARE_HPC_HELPERS_CUH 3 | 4 | #define CUDA_HELPERS_DONT_INCLUDE_V11_GROUP_HEADERS 5 | 6 | #include "helpers/cuda_helpers.cuh" 7 | #include "helpers/coop_group_helpers.cuh" 8 | #include "helpers/cuda_raiiwrappers.cuh" 9 | #include "helpers/custom_thrust_allocators.cuh" 10 | #include "helpers/hashers.cuh" 11 | #include "helpers/hpc_helpers.h" 12 | #include "helpers/io_helpers.h" 13 | #include "helpers/nvtx_markers.cuh" 14 | #include "helpers/packed_types.cuh" 15 | #include "helpers/peer_access.cuh" 16 | #include "helpers/simple_allocation.cuh" 17 | #include "helpers/timers.cuh" 18 | #include "helpers/type_helpers.h" 19 | #include "helpers/utility_kernels.cuh" 20 | 21 | #undef CUDA_HELPERS_DONT_INCLUDE_V11_GROUP_HEADERS 22 | 23 | 24 | 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /include/hpc_helpers/.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | build/ 3 | CMakeLists.txt.user 4 | CMakeCache.txt 5 | CMakeFiles 6 | CMakeScripts 7 | Testing 8 | cmake_install.cmake 9 | install_manifest.txt 10 | compile_commands.json 11 | CTestTestfile.cmake 12 | _deps 13 | *.dump -------------------------------------------------------------------------------- /include/hpc_helpers/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Parallel and Distributed Architectures 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /include/hpc_helpers/README.md: -------------------------------------------------------------------------------- 1 | # hpc_helpers 2 | 3 | ### ```cuda_helpers.cuh``` 4 | 5 | convenient macros & functions for CUDA 6 | 7 | * CUERR error checking 8 | * cross platform classifiers 9 | * cstdint types atomics 10 | * lambda kernel 11 | * atomic aggregated increment 12 | * ... 13 | 14 | 15 | ### ```custom_thrust_allocators.cuh``` 16 | 17 | 18 | ### ```hashers.cuh``` 19 | 20 | * NVidia hash 21 | * Mueller hash 22 | * Murmur hash 23 | * Identity map 24 | 25 | 26 | ### ```hpc_helpers.h``` 27 | 28 | * gcc version check 29 | * debug printf 30 | * save division 31 | * B <-> KB/MB/GB conversion 32 | 33 | 34 | ### ```io_helpers.h``` 35 | 36 | * binary dump & load vector 37 | 38 | 39 | ### ```nvtx_markers.cuh``` 40 | 41 | 42 | ### ```packed_types.cuh``` 43 | 44 | * pack bit fields into uint 45 | 46 | 47 | ### ```peer_access.cuh``` 48 | 49 | 50 | ### ```simple_allocation.cuh``` 51 | 52 | 53 | ### ```timers.cuh``` 54 | 55 | * timer & throughput macros 56 | 57 | 58 | ### ```type_helpers.h``` 59 | 60 | * padding uint_t 61 | * no_init_t 62 | 63 | 64 | ### ```utility_kernels.cuh``` 65 | 66 | * fill 67 | * set 68 | * compact 69 | * transpose 70 | -------------------------------------------------------------------------------- /include/hpc_helpers/examples/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.18 FATAL_ERROR) 2 | 3 | set(EXAMPLES_BINARY_DIR "${CMAKE_BINARY_DIR}/examples") 4 | 5 | ################################################################################################### 6 | # - example targets ------------------------------------------------------------------------------- 7 | 8 | add_executable(helpers_example "${CMAKE_CURRENT_SOURCE_DIR}/helpers_example.cu") 9 | set_target_properties(helpers_example PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${EXAMPLES_BINARY_DIR}) 10 | target_link_libraries(helpers_example PRIVATE helpers) 11 | 12 | add_executable(packed_types_example "${CMAKE_CURRENT_SOURCE_DIR}/packed_types_example.cu") 13 | set_target_properties(packed_types_example PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${EXAMPLES_BINARY_DIR}) 14 | target_link_libraries(packed_types_example PRIVATE helpers) -------------------------------------------------------------------------------- /include/hpc_helpers/examples/Makefile: -------------------------------------------------------------------------------- 1 | NVCC := nvcc 2 | STD := c++14 3 | 4 | OPT := -O3 5 | DDEBUG := -O0 -g -Xptxas -v -UNDEBUG -DDEBUG 6 | PROFILE := -O3 -lineinfo -g -Xptxas -v -UNDEBUG 7 | 8 | CXXFLAGS = -std=$(STD) -Wall -Wextra -fopenmp 9 | NVCCGENCODE = -arch=sm_35 10 | NVCCFLAGS = $(OPT) -std=$(STD) $(NVCCGENCODE) -ccbin $(CXX) $(addprefix -Xcompiler ,$(CXXFLAGS)) --expt-extended-lambda 11 | 12 | INCDIRS := include 13 | INCPARAMS = $(addprefix -I, $(INCDIRS)) 14 | 15 | HELPERS := \ 16 | ../include/cuda_helpers.cuh \ 17 | ../include/hpc_helpers.h \ 18 | ../include/io_helpers.h \ 19 | ../include/timers.cuh \ 20 | ../include/packed_types.cuh 21 | 22 | .PHONY: all debug profile clean 23 | 24 | all: helpers_example packed_types_example 25 | 26 | debug: OPT := $(DEBUG) 27 | debug: all 28 | 29 | profile: OPT := $(PROFILE) 30 | profile: all 31 | 32 | helpers_example: helpers_example.cu $(HELPERS) 33 | $(NVCC) $(NVCCFLAGS) helpers_example.cu -o helpers_example 34 | 35 | packed_types_example: packed_types_example.cu $(HELPERS) 36 | $(NVCC) $(NVCCFLAGS) packed_types_example.cu -o packed_types_example 37 | 38 | clean: 39 | $(RM) -r helpers_example packed_types_example 40 | -------------------------------------------------------------------------------- /include/hpc_helpers/include/all_helpers.cuh: -------------------------------------------------------------------------------- 1 | #include "cuda_helpers.cuh" 2 | #include "hpc_helpers.h" 3 | #include "io_helpers.h" 4 | #include "type_helpers.h" 5 | #include "timers.cuh" -------------------------------------------------------------------------------- /include/hpc_helpers/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.18 FATAL_ERROR) 2 | 3 | file(GLOB TESTS_SRC_LIST "${CMAKE_CURRENT_LIST_DIR}/src/*.cu") 4 | 5 | ################################################################################################### 6 | # - test targets ------------------------------------------------------------------------------- 7 | 8 | add_executable(tester ${TESTS_SRC_LIST}) 9 | target_include_directories(tester PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include") 10 | target_link_libraries(tester PRIVATE helpers) -------------------------------------------------------------------------------- /include/hpc_helpers/tests/src/catch_main.cu: -------------------------------------------------------------------------------- 1 | #define CATCH_CONFIG_MAIN 2 | #include "catch.hpp" -------------------------------------------------------------------------------- /include/hpc_helpers/tests/util/update_catch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | wget https://raw.githubusercontent.com/catchorg/Catch2/master/single_include/catch2/catch.hpp -O ../include/catch.hpp 3 | make clean -C ../test 4 | -------------------------------------------------------------------------------- /include/huffman/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(libhuffman INTERFACE) 2 | target_include_directories(libhuffman INTERFACE ${CMAKE_CURRENT_LIST_DIR}/..) 3 | target_sources(libhuffman INTERFACE 4 | ${CMAKE_CURRENT_LIST_DIR}/HuffmanCodingBase.hpp 5 | ${CMAKE_CURRENT_LIST_DIR}/HuffmanCodingLinearSearch.hpp 6 | ${CMAKE_CURRENT_LIST_DIR}/HuffmanCodingShortBitsCached.hpp 7 | ${CMAKE_CURRENT_LIST_DIR}/HuffmanCodingSymbolsPerLength.hpp 8 | ) 9 | target_link_libraries(libhuffman INTERFACE core) 10 | target_compile_features(libhuffman INTERFACE cxx_std_17) 11 | -------------------------------------------------------------------------------- /include/minhasherhandle.hpp: -------------------------------------------------------------------------------- 1 | #ifndef CARE_MINHASHERHANDLE_HPP 2 | #define CARE_MINHASHERHANDLE_HPP 3 | 4 | #include 5 | 6 | namespace care{ 7 | 8 | class CpuMinhasher; //forward declaration 9 | namespace gpu{ 10 | class GpuMinhasher; //forward declaration 11 | } 12 | 13 | class MinhasherHandle{ 14 | 15 | friend class CpuMinhasher; 16 | friend class gpu::GpuMinhasher; 17 | 18 | public: 19 | 20 | MinhasherHandle() = default; 21 | MinhasherHandle(int i) : id(i){} 22 | 23 | int getId() const noexcept{ 24 | return id; 25 | } 26 | 27 | private: 28 | 29 | int id = std::numeric_limits::max(); 30 | }; 31 | 32 | 33 | } 34 | 35 | 36 | #endif -------------------------------------------------------------------------------- /include/minhasherlimit.hpp: -------------------------------------------------------------------------------- 1 | #ifndef CARE_MINHASHERLIMIT_HPP 2 | #define CARE_MINHASHERLIMIT_HPP 3 | 4 | #include 5 | 6 | #include 7 | #include 8 | 9 | inline 10 | int calculateResultsPerMapThreshold(int coverage){ 11 | int result = int(coverage * 2.5f); 12 | result = std::min(result, int(std::numeric_limits::max())); 13 | result = std::max(10, result); 14 | return result; 15 | } 16 | 17 | 18 | #endif -------------------------------------------------------------------------------- /include/nlohmann/detail/input/position_t.hpp: -------------------------------------------------------------------------------- 1 | // __ _____ _____ _____ 2 | // __| | __| | | | JSON for Modern C++ 3 | // | | |__ | | | | | | version 3.12.0 4 | // |_____|_____|_____|_|___| https://github.com/nlohmann/json 5 | // 6 | // SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann 7 | // SPDX-License-Identifier: MIT 8 | 9 | #pragma once 10 | 11 | #include // size_t 12 | 13 | #include 14 | 15 | NLOHMANN_JSON_NAMESPACE_BEGIN 16 | namespace detail 17 | { 18 | 19 | /// struct to capture the start position of the current token 20 | struct position_t 21 | { 22 | /// the total number of characters read 23 | std::size_t chars_read_total = 0; 24 | /// the number of characters read in the current line 25 | std::size_t chars_read_current_line = 0; 26 | /// the number of lines read 27 | std::size_t lines_read = 0; 28 | 29 | /// conversion to size_t to preserve SAX interface 30 | constexpr operator size_t() const 31 | { 32 | return chars_read_total; 33 | } 34 | }; 35 | 36 | } // namespace detail 37 | NLOHMANN_JSON_NAMESPACE_END 38 | -------------------------------------------------------------------------------- /include/nlohmann/detail/iterators/internal_iterator.hpp: -------------------------------------------------------------------------------- 1 | // __ _____ _____ _____ 2 | // __| | __| | | | JSON for Modern C++ 3 | // | | |__ | | | | | | version 3.12.0 4 | // |_____|_____|_____|_|___| https://github.com/nlohmann/json 5 | // 6 | // SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann 7 | // SPDX-License-Identifier: MIT 8 | 9 | #pragma once 10 | 11 | #include 12 | #include 13 | 14 | NLOHMANN_JSON_NAMESPACE_BEGIN 15 | namespace detail 16 | { 17 | 18 | /*! 19 | @brief an iterator value 20 | 21 | @note This structure could easily be a union, but MSVC currently does not allow 22 | unions members with complex constructors, see https://github.com/nlohmann/json/pull/105. 23 | */ 24 | template struct internal_iterator 25 | { 26 | /// iterator for JSON objects 27 | typename BasicJsonType::object_t::iterator object_iterator {}; 28 | /// iterator for JSON arrays 29 | typename BasicJsonType::array_t::iterator array_iterator {}; 30 | /// generic iterator for all other types 31 | primitive_iterator_t primitive_iterator {}; 32 | }; 33 | 34 | } // namespace detail 35 | NLOHMANN_JSON_NAMESPACE_END 36 | -------------------------------------------------------------------------------- /include/nlohmann/detail/meta/call_std/begin.hpp: -------------------------------------------------------------------------------- 1 | // __ _____ _____ _____ 2 | // __| | __| | | | JSON for Modern C++ 3 | // | | |__ | | | | | | version 3.12.0 4 | // |_____|_____|_____|_|___| https://github.com/nlohmann/json 5 | // 6 | // SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann 7 | // SPDX-License-Identifier: MIT 8 | 9 | #pragma once 10 | 11 | #include 12 | 13 | NLOHMANN_JSON_NAMESPACE_BEGIN 14 | 15 | NLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin); 16 | 17 | NLOHMANN_JSON_NAMESPACE_END 18 | -------------------------------------------------------------------------------- /include/nlohmann/detail/meta/call_std/end.hpp: -------------------------------------------------------------------------------- 1 | // __ _____ _____ _____ 2 | // __| | __| | | | JSON for Modern C++ 3 | // | | |__ | | | | | | version 3.12.0 4 | // |_____|_____|_____|_|___| https://github.com/nlohmann/json 5 | // 6 | // SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann 7 | // SPDX-License-Identifier: MIT 8 | 9 | #pragma once 10 | 11 | #include 12 | 13 | NLOHMANN_JSON_NAMESPACE_BEGIN 14 | 15 | NLOHMANN_CAN_CALL_STD_FUNC_IMPL(end); 16 | 17 | NLOHMANN_JSON_NAMESPACE_END 18 | -------------------------------------------------------------------------------- /include/nlohmann/detail/meta/identity_tag.hpp: -------------------------------------------------------------------------------- 1 | // __ _____ _____ _____ 2 | // __| | __| | | | JSON for Modern C++ 3 | // | | |__ | | | | | | version 3.12.0 4 | // |_____|_____|_____|_|___| https://github.com/nlohmann/json 5 | // 6 | // SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann 7 | // SPDX-License-Identifier: MIT 8 | 9 | #pragma once 10 | 11 | #include 12 | 13 | NLOHMANN_JSON_NAMESPACE_BEGIN 14 | namespace detail 15 | { 16 | 17 | // dispatching helper struct 18 | template struct identity_tag {}; 19 | 20 | } // namespace detail 21 | NLOHMANN_JSON_NAMESPACE_END 22 | -------------------------------------------------------------------------------- /include/nlohmann/detail/meta/std_fs.hpp: -------------------------------------------------------------------------------- 1 | // __ _____ _____ _____ 2 | // __| | __| | | | JSON for Modern C++ 3 | // | | |__ | | | | | | version 3.12.0 4 | // |_____|_____|_____|_|___| https://github.com/nlohmann/json 5 | // 6 | // SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann 7 | // SPDX-License-Identifier: MIT 8 | 9 | #pragma once 10 | 11 | #include 12 | 13 | #if JSON_HAS_EXPERIMENTAL_FILESYSTEM 14 | #include 15 | NLOHMANN_JSON_NAMESPACE_BEGIN 16 | namespace detail 17 | { 18 | namespace std_fs = std::experimental::filesystem; 19 | } // namespace detail 20 | NLOHMANN_JSON_NAMESPACE_END 21 | #elif JSON_HAS_FILESYSTEM 22 | #include // NOLINT(build/c++17) 23 | NLOHMANN_JSON_NAMESPACE_BEGIN 24 | namespace detail 25 | { 26 | namespace std_fs = std::filesystem; 27 | } // namespace detail 28 | NLOHMANN_JSON_NAMESPACE_END 29 | #endif 30 | -------------------------------------------------------------------------------- /include/nlohmann/detail/meta/void_t.hpp: -------------------------------------------------------------------------------- 1 | // __ _____ _____ _____ 2 | // __| | __| | | | JSON for Modern C++ 3 | // | | |__ | | | | | | version 3.12.0 4 | // |_____|_____|_____|_|___| https://github.com/nlohmann/json 5 | // 6 | // SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann 7 | // SPDX-License-Identifier: MIT 8 | 9 | #pragma once 10 | 11 | #include 12 | 13 | NLOHMANN_JSON_NAMESPACE_BEGIN 14 | namespace detail 15 | { 16 | 17 | template struct make_void 18 | { 19 | using type = void; 20 | }; 21 | template using void_t = typename make_void::type; 22 | 23 | } // namespace detail 24 | NLOHMANN_JSON_NAMESPACE_END 25 | -------------------------------------------------------------------------------- /include/nlohmann/detail/string_utils.hpp: -------------------------------------------------------------------------------- 1 | // __ _____ _____ _____ 2 | // __| | __| | | | JSON for Modern C++ 3 | // | | |__ | | | | | | version 3.12.0 4 | // |_____|_____|_____|_|___| https://github.com/nlohmann/json 5 | // 6 | // SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann 7 | // SPDX-License-Identifier: MIT 8 | 9 | #pragma once 10 | 11 | #include // size_t 12 | #include // string, to_string 13 | 14 | #include 15 | 16 | NLOHMANN_JSON_NAMESPACE_BEGIN 17 | namespace detail 18 | { 19 | 20 | template 21 | void int_to_string(StringType& target, std::size_t value) 22 | { 23 | // For ADL 24 | using std::to_string; 25 | target = to_string(value); 26 | } 27 | 28 | template 29 | StringType to_string(std::size_t value) 30 | { 31 | StringType result; 32 | int_to_string(result, value); 33 | return result; 34 | } 35 | 36 | } // namespace detail 37 | NLOHMANN_JSON_NAMESPACE_END 38 | -------------------------------------------------------------------------------- /include/parallel/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 7 | the Software, and to permit persons to whom the Software is furnished to do so, 8 | subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 15 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 16 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 17 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 18 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19 | -------------------------------------------------------------------------------- /include/rapidgzip.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #include "deflate.hpp" 8 | #include "gzip.hpp" 9 | #include "GzipReader.hpp" 10 | #include "IndexFileFormat.hpp" 11 | #include "ParallelGzipReader.hpp" 12 | 13 | 14 | static constexpr uint32_t RAPIDGZIP_VERSION_MAJOR{ 0 }; 15 | static constexpr uint32_t RAPIDGZIP_VERSION_MINOR{ 14 }; 16 | static constexpr uint32_t RAPIDGZIP_VERSION_PATCH{ 2 }; 17 | static constexpr uint32_t RAPIDGZIP_VERSION{ 18 | RAPIDGZIP_VERSION_MAJOR * 0x10000UL + RAPIDGZIP_VERSION_MINOR * 0x100UL + RAPIDGZIP_VERSION_PATCH 19 | }; 20 | 21 | 22 | namespace rapidgzip 23 | { 24 | static constexpr std::array VERSION = { 25 | RAPIDGZIP_VERSION_MAJOR, 26 | RAPIDGZIP_VERSION_MINOR, 27 | RAPIDGZIP_VERSION_PATCH, 28 | }; 29 | 30 | 31 | static const std::string VERSION_STRING{ 32 | std::to_string( RAPIDGZIP_VERSION_MAJOR ) + '.' + 33 | std::to_string( RAPIDGZIP_VERSION_MINOR ) + '.' + 34 | std::to_string( RAPIDGZIP_VERSION_PATCH ) 35 | }; 36 | } // namespace rapidgzip 37 | -------------------------------------------------------------------------------- /include/readstoragehandle.hpp: -------------------------------------------------------------------------------- 1 | #ifndef CARE_READSTORAGEHANDLE_HPP 2 | #define CARE_READSTORAGEHANDLE_HPP 3 | 4 | #include 5 | 6 | namespace care{ 7 | 8 | class CpuReadStorage; //forward declaration 9 | namespace gpu{ 10 | class GpuReadStorage; //forward declaration 11 | } 12 | 13 | class ReadStorageHandle{ 14 | 15 | friend class CpuReadStorage; 16 | friend class gpu::GpuReadStorage; 17 | 18 | public: 19 | 20 | ReadStorageHandle() = default; 21 | ReadStorageHandle(int i) : id(i){} 22 | 23 | int getId() const noexcept{ 24 | return id; 25 | } 26 | 27 | private: 28 | 29 | int id = std::numeric_limits::max(); 30 | }; 31 | 32 | 33 | } 34 | 35 | 36 | #endif -------------------------------------------------------------------------------- /include/sharedmutex.hpp: -------------------------------------------------------------------------------- 1 | #ifndef CARE_SHARED_MUTEX_HPP 2 | #define CARE_SHARED_MUTEX_HPP 3 | 4 | 5 | #include 6 | 7 | #if __cplusplus >= 201703L 8 | 9 | using SharedMutex = std::shared_mutex; 10 | 11 | #elif __cplusplus == 201402L 12 | 13 | using SharedMutex = std::shared_timed_mutex; 14 | 15 | #endif 16 | 17 | 18 | 19 | #endif -------------------------------------------------------------------------------- /include/version.hpp: -------------------------------------------------------------------------------- 1 | #ifndef CARE_VERSION_HPP 2 | #define CARE_VERSION_HPP 3 | 4 | 5 | #define CARE_VERSION_STRING "2.0.0" 6 | 7 | 8 | 9 | 10 | 11 | #endif -------------------------------------------------------------------------------- /lib/assert.hpp: -------------------------------------------------------------------------------- 1 | #ifndef ASSERT_HPP 2 | #define ASSERT_HPP 3 | 4 | #include 5 | 6 | #include "common.hpp" 7 | 8 | #ifdef NDEBUG 9 | # define assert(expr) (likely((expr)) ? static_cast(0) : __builtin_unreachable()) 10 | #else 11 | # define assert(expr) \ 12 | (likely((expr)) ? static_cast(0) : __assert_fail(#expr, __FILE__, __LINE__, __PRETTY_FUNCTION__)) 13 | #endif 14 | 15 | [[noreturn]] inline __attribute__((noinline)) void 16 | __assert_fail(const char* assertion, const char* file, unsigned int line, const char* function) noexcept 17 | { 18 | std::fprintf(stderr, "%s:%u: Assertion '%s' failed in '%s'.\n", file, line, assertion, function); 19 | std::fflush(stderr); 20 | std::abort(); 21 | } 22 | 23 | /// Allows to bias branch weight based on template parameter 24 | struct ShouldSucceed 25 | { 26 | static constexpr bool succeed_if(bool p) { return likely(p); } 27 | static constexpr bool fail_if(bool p) { return unlikely(p); } 28 | }; 29 | struct ShouldFail 30 | { 31 | static constexpr bool succeed_if(bool p) { return unlikely(p); } 32 | static constexpr bool fail_if(bool p) { return likely(p); } 33 | }; 34 | 35 | #endif // ASSERT_HPP 36 | -------------------------------------------------------------------------------- /lib/gzip_constants.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gzip_constants.h - constants for the gzip wrapper format 3 | */ 4 | 5 | #ifndef LIB_GZIP_CONSTANTS_H 6 | #define LIB_GZIP_CONSTANTS_H 7 | 8 | #define GZIP_MIN_HEADER_SIZE 10 9 | #define GZIP_FOOTER_SIZE 8 10 | #define GZIP_MIN_OVERHEAD (GZIP_MIN_HEADER_SIZE + GZIP_FOOTER_SIZE) 11 | 12 | #define GZIP_ID1 byte(0x1F) 13 | #define GZIP_ID2 byte(0x8B) 14 | 15 | #define GZIP_CM_DEFLATE byte(8) 16 | 17 | #define GZIP_FTEXT uint8_t(0x01) 18 | #define GZIP_FHCRC uint8_t(0x02) 19 | #define GZIP_FEXTRA uint8_t(0x04) 20 | #define GZIP_FNAME uint8_t(0x08) 21 | #define GZIP_FCOMMENT uint8_t(0x10) 22 | #define GZIP_FRESERVED uint8_t(0xE0) 23 | 24 | #define GZIP_MTIME_UNAVAILABLE 0 25 | 26 | #define GZIP_XFL_SLOWEST_COMRESSION 0x02 27 | #define GZIP_XFL_FASTEST_COMRESSION 0x04 28 | 29 | #define GZIP_OS_FAT 0 30 | #define GZIP_OS_AMIGA 1 31 | #define GZIP_OS_VMS 2 32 | #define GZIP_OS_UNIX 3 33 | #define GZIP_OS_VM_CMS 4 34 | #define GZIP_OS_ATARI_TOS 5 35 | #define GZIP_OS_HPFS 6 36 | #define GZIP_OS_MACINTOSH 7 37 | #define GZIP_OS_Z_SYSTEM 8 38 | #define GZIP_OS_CP_M 9 39 | #define GZIP_OS_TOPS_20 10 40 | #define GZIP_OS_NTFS 11 41 | #define GZIP_OS_QDOS 12 42 | #define GZIP_OS_RISCOS 13 43 | #define GZIP_OS_UNKNOWN 255 44 | 45 | #endif /* LIB_GZIP_CONSTANTS_H */ 46 | -------------------------------------------------------------------------------- /obj/.gitkeep: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file !.gitkeep 4 | -------------------------------------------------------------------------------- /pics/RabbitQCPlus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RabbitBio/RabbitQCPlus/d8503456e2c944299a367099966efeec42e5f1a6/pics/RabbitQCPlus.png -------------------------------------------------------------------------------- /pics/error_correction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RabbitBio/RabbitQCPlus/d8503456e2c944299a367099966efeec42e5f1a6/pics/error_correction.png -------------------------------------------------------------------------------- /pics/gzip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RabbitBio/RabbitQCPlus/d8503456e2c944299a367099966efeec42e5f1a6/pics/gzip.png -------------------------------------------------------------------------------- /pics/plain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RabbitBio/RabbitQCPlus/d8503456e2c944299a367099966efeec42e5f1a6/pics/plain.png -------------------------------------------------------------------------------- /src/duplicate.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by ylf9811 on 2021/7/13. 3 | // 4 | 5 | #ifndef RERABBITQC_DUPLICATE_H 6 | #define RERABBITQC_DUPLICATE_H 7 | 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #include "Globals.h" 15 | #include "Reference.h" 16 | #include "cmdinfo.h" 17 | 18 | 19 | class Duplicate { 20 | public: 21 | Duplicate(CmdInfo *cmd_info); 22 | 23 | ~Duplicate(); 24 | 25 | void statRead(neoReference &ref); 26 | 27 | void statPair(neoReference &r1, neoReference &r2); 28 | 29 | uint64_t seq2int(const char *data, int start, int key_len, bool &valid); 30 | 31 | void addRecord(uint32_t key, uint64_t kmer32, uint8_t gc); 32 | 33 | // make histogram and get duplication rate 34 | double statAll(int *hist, double *meanGC, int hist_size); 35 | 36 | public: 37 | CmdInfo *cmd_info_; 38 | int key_len_base_; 39 | int key_len_bit; 40 | uint64_t *dups_; 41 | uint16_t *counts_; 42 | uint8_t *gcs_; 43 | std::mutex lok_; 44 | }; 45 | 46 | 47 | #endif//RERABBITQC_DUPLICATE_H 48 | -------------------------------------------------------------------------------- /src/filter.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by ylf9811 on 2021/7/7. 3 | // 4 | 5 | #ifndef RERABBITQC_FILTER_H 6 | #define RERABBITQC_FILTER_H 7 | 8 | #include 9 | 10 | #include "Globals.h" 11 | #include "Reference.h" 12 | #include "cmdinfo.h" 13 | 14 | class Filter { 15 | public: 16 | Filter(); 17 | 18 | Filter(CmdInfo *cmd_info); 19 | 20 | int ReadFiltering(neoReference &ref, bool trim_res, bool isPhred64); 21 | 22 | bool TrimSeq(neoReference &r, int front, int tail); 23 | 24 | 25 | void PrintResult(); 26 | 27 | private: 28 | CmdInfo *cmd_info; 29 | int64_t filter_res_cnt_[16]; 30 | }; 31 | 32 | 33 | #endif//RERABBITQC_FILTER_H 34 | -------------------------------------------------------------------------------- /src/include/inffast.h: -------------------------------------------------------------------------------- 1 | /* inffast.h -- header to use inffast.c 2 | * Copyright (C) 1995-2003, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* WARNING: this file should *not* be used by applications. It is 7 | part of the implementation of the compression library and is 8 | subject to change. Applications should only use zlib.h. 9 | */ 10 | 11 | void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start)); 12 | -------------------------------------------------------------------------------- /src/jsonrepoter.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by ylf9811 on 2025/5/27. 3 | // 4 | 5 | #ifndef JSON_RQCP_JSONREPOTER_H 6 | #define JSON_RQCP_JSONREPOTER_H 7 | 8 | #include 9 | #include "state.h" 10 | #include 11 | 12 | class JsonReporter { 13 | public: 14 | static void ReportSe(const std::string &json_path, State *before, State *after, 15 | const std::string &file_name, double dup_rate); 16 | 17 | static void ReportPe(const std::string &json_path, State *pre1, State *pre2, 18 | State *aft1, State *aft2, 19 | const std::string &file1, const std::string &file2, 20 | double dup_rate, int64_t *size_info); 21 | }; 22 | 23 | 24 | #endif //JSON_RQCP_JSONREPOTER_H 25 | -------------------------------------------------------------------------------- /src/main_correct_cpu.h: -------------------------------------------------------------------------------- 1 | #ifndef __MAIN_CORRECT_CPU_H__ 2 | #define __MAIN_CORRECT_CPU_H__ 3 | 4 | 5 | int main_correction(int argc, char** argv, moodycamel::ReaderWriterQueue> *Q1, moodycamel::ReaderWriterQueue> *Q2, std::atomic_int *producerDone, std::atomic_int *careStartWrite, int* changNum); 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /src/nucleotidetree.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by yanli on 2021/7/20. 3 | // 4 | 5 | #ifndef RERABBITQC_NUCLEOTIDETREE_H 6 | #define RERABBITQC_NUCLEOTIDETREE_H 7 | 8 | #include 9 | #include 10 | #include "Globals.h" 11 | 12 | class NucleotideNode { 13 | public: 14 | NucleotideNode(); 15 | 16 | ~NucleotideNode(); 17 | 18 | void dfs(); 19 | 20 | public: 21 | int count; 22 | char base; 23 | NucleotideNode *children[8]; 24 | }; 25 | 26 | class NucleotideTree { 27 | public: 28 | NucleotideTree(); 29 | 30 | ~NucleotideTree(); 31 | 32 | void addSeq(std::string seq); 33 | 34 | std::string getDominantPath(bool &reachedLeaf); 35 | 36 | static bool test(); 37 | 38 | private: 39 | NucleotideNode *mRoot; 40 | }; 41 | 42 | 43 | #endif //RERABBITQC_NUCLEOTIDETREE_H 44 | -------------------------------------------------------------------------------- /src/pigz.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by ylf9811 on 2021/10/14. 3 | // 4 | 5 | #ifndef RERABBITQC_PIGZ_H 6 | #define RERABBITQC_PIGZ_H 7 | 8 | #include "Globals.h" 9 | 10 | 11 | int main_pigz(int argc, char **argv, moodycamel::ReaderWriterQueue> *Q, 12 | std::atomic_int *wDone, std::pair &L, std::atomic_int *qNum=NULL); 13 | 14 | #endif //RERABBITQC_PIGZ_H 15 | -------------------------------------------------------------------------------- /src/polyx.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by ylf9811 on 2021/7/14. 3 | // 4 | 5 | #ifndef RERABBITQC_POLYX_H 6 | #define RERABBITQC_POLYX_H 7 | 8 | 9 | #include "Reference.h" 10 | 11 | class PolyX { 12 | public: 13 | PolyX(); 14 | 15 | ~PolyX(); 16 | 17 | static void trimPolyG(neoReference &r1, neoReference &r2, int compareReq); 18 | 19 | static void trimPolyG(neoReference &ref, int compareReq); 20 | 21 | static void trimPolyX(neoReference &r1, neoReference &r2, int compareReq); 22 | 23 | static void trimPolyX(neoReference &ref, int compareReq); 24 | }; 25 | 26 | 27 | #endif//RERABBITQC_POLYX_H 28 | -------------------------------------------------------------------------------- /src/pragzip.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef RERABBITQC_PRAGZIP_H 3 | #define RERABBITQC_PRAGZIP_H 4 | 5 | 6 | #include "Globals.h" 7 | 8 | 9 | int main_pragzip(int argc, char *argv[], moodycamel::ReaderWriterQueue>*Q, std::atomic_int *producerDone); 10 | 11 | #endif//RERABBITQC_PRAGZIP_H 12 | -------------------------------------------------------------------------------- /src/pugz.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by ylf9811 on 2021/11/3. 3 | // 4 | 5 | #ifndef RERABBITQC_PUGZ_H 6 | #define RERABBITQC_PUGZ_H 7 | 8 | 9 | #include "Globals.h" 10 | 11 | 12 | void main_pugz(std::string in_name, int threads, moodycamel::ReaderWriterQueue> *Q, 13 | std::atomic_int *producerDone); 14 | 15 | #endif//RERABBITQC_PUGZ_H 16 | -------------------------------------------------------------------------------- /src/repoter.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by ylf9811 on 2021/7/12. 3 | // 4 | 5 | #ifndef RERABBITQC_REPOTER_H 6 | #define RERABBITQC_REPOTER_H 7 | 8 | #include "Reference.h" 9 | #include "state.h" 10 | #include "tgsstate.h" 11 | 12 | class Repoter { 13 | public: 14 | Repoter(); 15 | 16 | 17 | static void PrintRef(neoReference &ref); 18 | 19 | static void PrintRef(Reference &ref); 20 | 21 | static void ReportHtmlTGS(std::string html_name, std::string command, TGSStats *tgs_stats, std::string file_name); 22 | 23 | static void ReportHtmlSe(std::string html_name, State *state1, State *state2, std::string file_name, double dup); 24 | 25 | static void 26 | ReportHtmlPe(std::string html_name, State *pre_state1, State *pre_state2, State *aft_state1, State *aft_state2, 27 | std::string file_name1, 28 | std::string file_name2, double dup, int64_t *size_info); 29 | // static void ReportHtmlPe(State *state1, State *state2); 30 | 31 | static Reference GetRevRef(neoReference &ref); 32 | }; 33 | 34 | 35 | #endif//RERABBITQC_REPOTER_H 36 | -------------------------------------------------------------------------------- /src/threadinfo.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by ylf9811 on 2021/7/7. 3 | // 4 | 5 | #ifndef RERABBITQC_THREADINFO_H 6 | #define RERABBITQC_THREADINFO_H 7 | 8 | #include "Globals.h" 9 | #include "cmdinfo.h" 10 | #include "state.h" 11 | #include "tgsstate.h" 12 | 13 | class ThreadInfo { 14 | public: 15 | ThreadInfo(CmdInfo *cmd_info, bool is_pre); 16 | 17 | ~ThreadInfo(); 18 | 19 | public: 20 | bool is_pe_; 21 | CmdInfo *cmd_info_; 22 | TGSStats *TGS_state_; 23 | State *pre_state1_; 24 | State *pre_state2_; 25 | State *aft_state1_; 26 | State *aft_state2_; 27 | int64_t *insert_size_dist_; 28 | }; 29 | 30 | 31 | #endif//RERABBITQC_THREADINFO_H 32 | -------------------------------------------------------------------------------- /src/threadpool.cpp: -------------------------------------------------------------------------------- 1 | // #include 2 | 3 | // namespace care{ 4 | 5 | // ThreadPool threadpool; 6 | 7 | // } 8 | -------------------------------------------------------------------------------- /src/umier.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by ylf9811 on 2021/7/20. 3 | // 4 | 5 | #ifndef RERABBITQC_UMIER_H 6 | #define RERABBITQC_UMIER_H 7 | 8 | #include "Reference.h" 9 | #include "cmdinfo.h" 10 | #include 11 | 12 | class Umier { 13 | public: 14 | Umier(CmdInfo *cmd_info); 15 | 16 | ~Umier(); 17 | 18 | std::string firstIndex(std::string name); 19 | 20 | std::string lastIndex(std::string name); 21 | 22 | void ProcessSe(neoReference &ref); 23 | 24 | void ProcessPe(neoReference &r1, neoReference &r2); 25 | 26 | void addUmiToName(neoReference &ref, std::string umi); 27 | 28 | 29 | private: 30 | CmdInfo *cmd_info_; 31 | }; 32 | 33 | 34 | #endif//RERABBITQC_UMIER_H 35 | -------------------------------------------------------------------------------- /src/utilPigz.c: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2011 Google Inc. All Rights Reserved. 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 | Author: lode.vandevenne@gmail.com (Lode Vandevenne) 17 | Author: jyrki.alakuijala@gmail.com (Jyrki Alakuijala) 18 | */ 19 | 20 | #include "utilPigz.h" 21 | 22 | #include "zopfli.h" 23 | 24 | #include 25 | #include 26 | #include 27 | 28 | void ZopfliInitOptions(ZopfliOptions* options) { 29 | options->verbose = 0; 30 | options->verbose_more = 0; 31 | options->numiterations = 15; 32 | options->blocksplitting = 1; 33 | options->blocksplittinglast = 0; 34 | options->blocksplittingmax = 15; 35 | } 36 | -------------------------------------------------------------------------------- /use_igzip: -------------------------------------------------------------------------------- 1 | 1. download and build libisal, see https://github.com/intel/isa-l 2 | 3 | 2. add -DUSE_IGZIP to CXXFLAGS and -lisal to LIBS in Makefile, then make 4 | 5 | 3. run RabbitQCPlus with --useIgzip 6 | 7 | note : for decompression engines, igzip is more stable than pugz, but there is a performance loss of about 20% 8 | --------------------------------------------------------------------------------