ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
fastor_types.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 "algebra/impl/detail/fastor_matrix_wrapper.hpp"
13#include "algebra/impl/detail/fastor_vector_wrapper.hpp"
14#include "algebra/impl/fastor_getter.hpp"
15#include "algebra/impl/fastor_transform3.hpp"
16#include "detray/algebra/concepts.hpp"
17#include "detray/algebra/type_traits.hpp"
18
19// System include(s).
20#include <cstddef>
21
22namespace detray {
23
24namespace algebra::fastor {
25
27using index_type = std::size_t;
29template <concepts::value T>
30using value_type = T;
32template <concepts::value T>
33using scalar_type = T;
35template <concepts::scalar T, index_type N>
36using storage_type = fastor::Vector<T, N>;
38template <concepts::scalar T, index_type N>
39using vector_type = storage_type<T, N>;
41template <concepts::scalar T, index_type ROWS, index_type COLS>
42using matrix_type = fastor::Matrix<T, ROWS, COLS>;
43
45template <concepts::scalar T>
46using vector3 = storage_type<T, 3>;
48template <concepts::scalar T>
49using point3 = vector3<T>;
51template <concepts::scalar T>
52using vector2 = storage_type<T, 2>;
54template <concepts::scalar T>
55using point2 = vector2<T>;
56
58template <concepts::scalar T>
59using transform3 = fastor::math::transform3<T>;
60
62using element_getter = fastor::storage::element_getter;
64using block_getter = fastor::storage::block_getter;
65
66} // namespace algebra::fastor
67
68DETRAY_ALGEBRA_DEFINE_TYPE_TRAITS(algebra::fastor)
69
70} // namespace detray
constexpr double T
Magnetic field, native unit (eV*s)/(e*m²).
Definition Units.hpp:168
Detray include(s).
Definition array_operators.hpp:18