ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
transport_jacobian.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#include "detray/propagator/detail/codegen/transport_jacobian.hpp"
12
13namespace detray {
14
15namespace concepts {
16
17template <typename T>
19 requires { typename T::algebra_type; } &&
20 (std::same_as<T, detray::detail::transport_jacobian_matrix_with_gradient<
21 typename T::algebra_type>> ||
22 std::same_as<T, detray::detail::transport_jacobian_matrix_without_gradient<
23 typename T::algebra_type>>);
24
25} // namespace concepts
26
27namespace matrix {
28
29template <concepts::transport_jacobian matrix_type>
30DETRAY_HOST_DEVICE constexpr auto identity() {
31 return matrix_type::identity();
32}
33
34} // namespace matrix
35
36namespace traits {
37
39template <typename algebra_t>
41 ::detray::detail::transport_jacobian_matrix_with_gradient<algebra_t>> {
43 using size_type = std::size_t;
44
46 static constexpr size_type _dim{2};
48 static constexpr size_type _rows{8};
50 static constexpr size_type _columns{8};
51};
52
54template <typename algebra_t>
56 ::detray::detail::transport_jacobian_matrix_without_gradient<algebra_t>> {
58 using size_type = std::size_t;
59
61 static constexpr size_type _dim{2};
63 static constexpr size_type _rows{8};
65 static constexpr size_type _columns{8};
66};
67
69template <typename algebra_t>
70struct index<
71 ::detray::detail::transport_jacobian_matrix_with_gradient<algebra_t>> {
73 using type = std::size_t;
74};
75
77template <typename algebra_t>
78struct index<
79 ::detray::detail::transport_jacobian_matrix_without_gradient<algebra_t>> {
81 using type = std::size_t;
82};
83
84} // namespace traits
85} // namespace detray
Definition transport_jacobian.hpp:18
Type list concepts.
Definition concepts.hpp:17
Detray include(s).
Definition array_operators.hpp:18
std::size_t size_type
Integer type used for matrix dimensions.
Definition transport_jacobian.hpp:43
static constexpr size_type _dim
Number of dimensions of this matrix.
Definition transport_jacobian.hpp:46
static constexpr size_type _columns
Number of columns in the full transport matrix.
Definition transport_jacobian.hpp:50
static constexpr size_type _rows
Number of rows in the full transport matrix.
Definition transport_jacobian.hpp:48
std::size_t size_type
Integer type used for matrix dimensions.
Definition transport_jacobian.hpp:58
static constexpr size_type _columns
Number of columns in the full transport matrix.
Definition transport_jacobian.hpp:65
static constexpr size_type _rows
Number of rows in the full transport matrix.
Definition transport_jacobian.hpp:63
static constexpr size_type _dim
Number of dimensions of this matrix.
Definition transport_jacobian.hpp:61
Matrix dimensions.
Definition type_traits.hpp:82
std::size_t type
Type used to index matrix elements.
Definition transport_jacobian.hpp:73
std::size_t type
Type used to index matrix elements.
Definition transport_jacobian.hpp:81
Matrix traits.
Definition type_traits.hpp:26