Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-27 07:24:25

0001 // This file is part of the ACTS project.
0002 //
0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project
0004 //
0005 // This Source Code Form is subject to the terms of the Mozilla Public
0006 // License, v. 2.0. If a copy of the MPL was not distributed with this
0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
0008 
0009 #pragma once
0010 
0011 // detray core
0012 #include "detray/definitions/indexing.hpp"
0013 #include "detray/utils/ranges.hpp"
0014 
0015 // vecmem core
0016 #include "vecmem/containers/device_vector.hpp"
0017 
0018 namespace detray {
0019 
0020 /// Test type
0021 struct uint_holder {
0022   dindex ui = 0u;
0023 };
0024 
0025 /// Test @c detray::views::single
0026 void test_single(const dindex value, dindex& check);
0027 
0028 /// Test @c detray::views::pointer
0029 void test_pointer(const dindex value, dindex& check);
0030 
0031 /// Test @c detray::views::iota
0032 void test_iota(const darray<dindex, 2> range,
0033                vecmem::data::vector_view<dindex> check_data);
0034 
0035 /// Test @c detray::views::cartesian_product
0036 void test_cartesian_product(
0037     const darray<dindex, 2> range1, const darray<dindex, 2> range2,
0038     const darray<dindex, 2> range3,
0039     vecmem::data::vector_view<std::tuple<dindex, dindex, dindex>> check_data);
0040 
0041 /// Test @c detray::views::enumerate
0042 void test_enumerate(vecmem::data::vector_view<uint_holder> seq_data,
0043                     vecmem::data::vector_view<dindex> check_idx_data,
0044                     vecmem::data::vector_view<dindex> check_value_data);
0045 
0046 /// Test @c detray::views::pick
0047 void test_pick(vecmem::data::vector_view<uint_holder> seq_data,
0048                vecmem::data::vector_view<dindex> idx_data,
0049                vecmem::data::vector_view<dindex> check_idx_data,
0050                vecmem::data::vector_view<dindex> check_value_data);
0051 
0052 /// Test @c detray::views::join
0053 void test_join(vecmem::data::vector_view<uint_holder> seq_data_1,
0054                vecmem::data::vector_view<uint_holder> seq_data_2,
0055                vecmem::data::vector_view<dindex> check_value_data);
0056 
0057 /// Test @c detray::views::static_join
0058 void test_static_join(vecmem::data::vector_view<uint_holder> seq_data_1,
0059                       vecmem::data::vector_view<uint_holder> seq_data_2,
0060                       vecmem::data::vector_view<dindex> check_value_data);
0061 
0062 /// Test @c detray::views::subrange
0063 void test_subrange(vecmem::data::vector_view<int> seq_data,
0064                    vecmem::data::vector_view<int> check_value_data,
0065                    const std::size_t begin, const std::size_t end);
0066 
0067 }  // namespace detray