ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
vc_aos_getter.hpp
1// This file is part of the ACTS project.
2//
3// Copyright (C) 2016 CERN for the benefit of the ACTS project
4//
5// This Source Code Form is subject to the terms of the Mozilla Public
6// License, v. 2.0. If a copy of the MPL was not distributed with this
7// file, You can obtain one at https://mozilla.org/MPL/2.0/.
8
9#pragma once
10
11// Project include(s).
12#include "detray/algebra/common/matrix_getter.hpp"
13#include "detray/algebra/concepts.hpp"
14#include "detray/definitions/detail/qualifiers.hpp"
15
16namespace detray::algebra::vc_aos::storage {
17
18using algebra::storage::block;
19using algebra::storage::element;
20using algebra::storage::set_block;
21
23template <std::size_t SIZE, std::size_t ROW, std::size_t COL,
24 concepts::scalar scalar_t,
25 template <typename, std::size_t> class array_t>
26DETRAY_HOST_DEVICE constexpr decltype(auto) vector(
27 const algebra::storage::matrix<array_t, scalar_t, ROW, COL> &m,
28 const std::size_t row, const std::size_t col) noexcept {
29 return algebra::storage::block_getter{}.template vector<SIZE>(m, row, col);
30}
31
32} // namespace detray::algebra::vc_aos::storage