OpenKalman
linear-algebra.hpp
Go to the documentation of this file.
1 /* This file is part of OpenKalman, a header-only C++ library for
2  * Kalman filters and other recursive filters.
3  *
4  * Copyright (c) 2020-2026 Christopher Lee Ogden <ogden@gatech.edu>
5  *
6  * This Source Code Form is subject to the terms of the Mozilla Public
7  * License, v. 2.0. If a copy of the MPL was not distributed with this
8  * file, You can obtain one at https://mozilla.org/MPL/2.0/.
9  */
10 
20 #ifndef OPENKALMAN_LINEAR_ALGEBRA_HPP
21 #define OPENKALMAN_LINEAR_ALGEBRA_HPP
22 
23 #include "patterns/patterns.hpp"
24 
25 #include "enumerations.hpp"
26 
27 // interfaces
28 
32 
33 // mdspan-derived traits
34 
35 #include "concepts/indexible.hpp"
36 #include "traits/get_mdspan.hpp"
37 
38 #include "traits/count_indices.hpp"
39 #include "traits/index_count.hpp"
40 
42 
43 #include "traits/layout_of.hpp"
44 
45 // extents and patterns
46 
49 
53 
57 
58 #include "traits/tensor_order.hpp"
60 
62 
63 // shapes
64 
70 
73 
76 
78 
79 #include "traits/is_vector.hpp"
80 #include "concepts/vector.hpp"
81 
82 // indices and access
83 
85 #include "traits/access.hpp"
86 #include "traits/access_at.hpp"
87 
88 // special matrices
89 
90 #include "concepts/zero.hpp"
95 //#include "traits/hermitian_adapter_type_of.hpp"
96 
97 // constants
98 
101 #include "traits/constant_value.hpp"
104 
105 // linear algebra functions:
106 
108 #include "functions/copy_from.hpp"
109 
112 
114 #include "functions/make_zero.hpp"
115 
116 #include "functions/to_diagonal.hpp"
119 #include "functions/diagonal_of.hpp"
120 
121 #include "functions/conjugate.hpp"
122 #include "functions/transpose.hpp"
124 
125 /*
126 
127 #include "functions/internal/make_fixed_size_adapter.hpp"
128 #include "functions/internal/make_fixed_size_adapter_like.hpp"
129 #include "functions/internal/make_fixed_square_adapter_like.hpp"
130 
131 #include "functions/internal/may_hold_components.hpp"
132 #include "functions/fill_components.hpp"
133 
134 
135 #include "functions/make_dense_object.hpp"
136 #include "functions/to_dense_object.hpp"
137 #include "functions/make_dense_object_from.hpp"
138 
139 #include "functions/make_diagonal_adapter.hpp"
140 
141 #include "functions/make_triangular_matrix.hpp"
142 #include "functions/make_hermitian_matrix.hpp"
143 
144 #include "functions/internal/to_covariance_nestable.hpp"
145 
146 #include "functions/to_euclidean.hpp"
147 #include "functions/from_euclidean.hpp"
148 #include "functions/wrap_angles.hpp"
149 
150 #include "functions/broadcast.hpp"
151 #include "functions/n_ary_operation.hpp"
152 #include "functions/randomize.hpp"
153 
154 #include "functions/scalar_product.hpp"
155 #include "functions/scalar_quotient.hpp"
156 
157 #include "functions/internal/get_reduced_vector_space_descriptor.hpp"
158 #include "functions/internal/count_reduced_dimensions.hpp"
159 #include "functions/reduce.hpp"
160 #include "functions/average_reduce.hpp"
161 
162 #include "functions/internal/check_block_limits.hpp"
163 #include "functions/get_slice.hpp"
164 #include "functions/set_slice.hpp"
165 #include "functions/get_chip.hpp"
166 #include "functions/set_chip.hpp"
167 #include "functions/internal/set_triangle.hpp"
168 #include "functions/internal/clip_square_shaped.hpp"
169 
170 #include "functions/tile.hpp"
171 #include "functions/concatenate.hpp"
172 #include "functions/split.hpp"
173 #include "functions/chipwise_operation.hpp"
174 
175 #include "functions/determinant.hpp"
176 #include "functions/trace.hpp"
177 #include "functions/sum.hpp"
178 
179 #include "functions/contract.hpp"
180 #include "functions/contract_in_place.hpp"
181 
182 #include "functions/LQ_decomposition.hpp"
183 #include "functions/QR_decomposition.hpp"
184 
185 #include "functions/cholesky_square.hpp"
186 #include "functions/cholesky_factor.hpp"
187 
188 #include "functions/internal/make_writable_square_matrix.hpp"
189 #include "functions/rank_update_hermitian.hpp"
190 #include "functions/rank_update_triangular.hpp"
191 
192 #include "functions/solve.hpp"
193 */
194 
195 // adapters:
196 
200 
201 #include "concepts/has_untyped_index.hpp" // Is this necessary?
202 #include "concepts/all_fixed_indices_are_euclidean.hpp" // Is this necessary?
203 #include "concepts/wrappable.hpp"
204 #include "traits/get_wrappable.hpp"
205 
207 
208 #include "traits/nested_object.hpp"
210 #include "traits/nested_object_of.hpp"
211 
213 #include "concepts/internal/has_nested_vector.hpp"
215 
216 #include "concepts/object-types.hpp"
217 
218 #include "adapters/adapters.hpp"
219 
220 
224 
225 
226 #endif
Definition for indexible_impl.
Definition for layout_of.
Definition for has_dynamic_dimensions.
Definition for constant_value.
Definition for all_fixed_indices_are_euclidean.
Definition for constant_object.
Definition for patterns_may_match_with.
Definitions for attach_patterns.
Forward declarations for OpenKalman classes and related traits.
Definition for triangular_matrix.
Definition for square_shaped.
Definition for constant_diagonal_object.
Definition for index_collection_for.
Definition for pattern_collection_type_of.
Definition of get_index_extent function.
Definition of count_indices.
Enumerations relating to linear algebra.
Definition for diagonal_matrix.
Definition for dynamic_dimension.
Definition for dynamic_index_count.
Definition for dimension_size_of_index_is.
Definition for get_wrappable function.
Definition for element_type_of.
Forward declaration of object_traits, which must be defined for all objects used in OpenKalman...
Definition of conjugate_transpose function.
Definition of is_one_dimensional function.
Forward declaration of library_interface, which must be defined for all objects used in OpenKalman...
Definition for pattern_adapter.
Definition of copy_from function.
Definition for patterns_match_with.
Definition of transpose function.
Definition of patterns_match function.
Definition of various object types.
Definition of object_traits for C++ arrays.
Definition for index_dimension_of.
Definition of object_traits for std::mdspan.
Definition for access function.
Definition of get_mdspan function.
Definition for max_tensor_order.
Definition of object_traits for std::mdspan.
Definition for index_count.
Definition for pattern_collection_for.
Definition for triangular_adapter.
Definition of get_index_pattern function.
Definition for is_vector function.
Definitions for make_zero.
Definitions for make_constant_diagonal.
Definition for hermitian_adapter.
Definition for empty_object.
Definition of get_pattern_collection function.
Definition for hermitian_matrix.
Definition for indexible.
Definition for compares_with_pattern_collection.
Definition for vector.
Definition for diagonal_of function.
Definition for constant_value_of.
Definition for triangle_type_of.
Definition of tensor_order function.
Concepts for testing whether object_traits or library_interface definitions exist for a particular ob...
Definition for access_at function.
Definition of is_square_shaped function.
Definition for has_nested_object.
Definition for one_dimensional.
Definition for identity_matrix.
Definition for has_untyped_index.
Definition of conjugate function.
Definition for zero.
Definitions for make_identity_matrix.
Definitions for make_constant.
Definition for to_diagonal function.