ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
algorithm_selector.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/generic/algorithms/matrix/determinant/hard_coded.hpp"
13#include "detray/algebra/generic/algorithms/matrix/determinant/partial_pivot_lud.hpp"
14#include "detray/algebra/generic/algorithms/matrix/inverse/hard_coded.hpp"
15#include "detray/algebra/generic/algorithms/matrix/inverse/partial_pivot_lud.hpp"
16
17namespace detray::algebra::generic {
18
21
22// Default algorithm
23template <std::size_t N, typename... Args>
28
30template <typename... Args>
31struct determinant_selector<2, Args...> {
34};
35
37template <concepts::square_matrix M>
38using determinant_t =
41
44template <std::size_t N, typename... Args>
49
51template <typename... Args>
52struct inversion_selector<2, Args...> {
55};
56
58template <concepts::square_matrix M>
59using inversion_t =
62
63} // namespace detray::algebra::generic
matrix::determinant::hard_coded< Args... > type
Direct determinant implementation selected for rank two.
Definition algorithm_selector.hpp:33
Get the type of determinant algorithm according to matrix dimension.
Definition algorithm_selector.hpp:24
matrix::determinant::partial_pivot_lud< Args... > type
Determinant implementation selected for rank N.
Definition algorithm_selector.hpp:26
matrix::inverse::hard_coded< Args... > type
Direct inversion implementation selected for rank two.
Definition algorithm_selector.hpp:54
Get the type of inversion algorithm according to matrix dimension.
Definition algorithm_selector.hpp:45
matrix::inverse::partial_pivot_lud< Args... > type
Inversion implementation selected for rank N.
Definition algorithm_selector.hpp:47
"Determinant getter", assuming a N X N matrix
Definition hard_coded.hpp:23
Compute a determinant from an LU decomposition with partial pivoting.
Definition partial_pivot_lud.hpp:21
"inverse getter", assuming a N X N matrix
Definition hard_coded.hpp:24
Invert a square matrix using LU decomposition with partial pivoting.
Definition partial_pivot_lud.hpp:21