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-2024 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 "coordinates/coordinates.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 
51 
55 
56 #include "traits/tensor_order.hpp"
58 
60 
61 // shapes
62 
68 
71 
74 
76 
77 #include "traits/is_vector.hpp"
78 #include "concepts/vector.hpp"
79 
80 // indices and access
81 
83 #include "traits/access.hpp"
84 #include "traits/access_at.hpp"
85 
86 // special matrices
87 
88 #include "concepts/zero.hpp"
93 //#include "traits/hermitian_adapter_type_of.hpp"
94 
95 // constants
96 
102 
103 // linear algebra functions:
104 
106 #include "functions/copy_from.hpp"
107 
108 #include "adapters/pattern_adapter.hpp"
110 
111 #include "functions/to_diagonal.hpp"
112 
114 #include "functions/make_zero.hpp"
116 
117 #include "functions/conjugate.hpp"
118 #include "functions/transpose.hpp"
119 #include "functions/adjoint.hpp"
120 
121 /*
122 
123 #include "functions/internal/make_fixed_size_adapter.hpp"
124 #include "functions/internal/make_fixed_size_adapter_like.hpp"
125 #include "functions/internal/make_fixed_square_adapter_like.hpp"
126 
127 #include "functions/internal/may_hold_components.hpp"
128 #include "functions/fill_components.hpp"
129 
130 
131 #include "functions/make_dense_object.hpp"
132 #include "functions/to_dense_object.hpp"
133 #include "functions/make_dense_object_from.hpp"
134 
135 #include "functions/make_diagonal_adapter.hpp"
136 
137 #include "functions/internal/make_constant_diagonal_from_descriptors.hpp"
138 #include "functions/make_identity_matrix_like.hpp"
139 
140 #include "functions/diagonal_of.hpp"
141 
142 #include "functions/make_triangular_matrix.hpp"
143 #include "functions/make_hermitian_matrix.hpp"
144 
145 #include "functions/internal/to_covariance_nestable.hpp"
146 
147 #include "functions/to_euclidean.hpp"
148 #include "functions/from_euclidean.hpp"
149 #include "functions/wrap_angles.hpp"
150 
151 #include "functions/broadcast.hpp"
152 #include "functions/n_ary_operation.hpp"
153 #include "functions/randomize.hpp"
154 
155 #include "functions/scalar_product.hpp"
156 #include "functions/scalar_quotient.hpp"
157 
158 #include "functions/internal/get_reduced_vector_space_descriptor.hpp"
159 #include "functions/internal/count_reduced_dimensions.hpp"
160 #include "functions/reduce.hpp"
161 #include "functions/average_reduce.hpp"
162 
163 #include "functions/internal/check_block_limits.hpp"
164 #include "functions/get_slice.hpp"
165 #include "functions/set_slice.hpp"
166 #include "functions/get_chip.hpp"
167 #include "functions/set_chip.hpp"
168 #include "functions/internal/set_triangle.hpp"
169 #include "functions/internal/clip_square_shaped.hpp"
170 
171 #include "functions/tile.hpp"
172 #include "functions/concatenate.hpp"
173 #include "functions/split.hpp"
174 #include "functions/chipwise_operation.hpp"
175 
176 #include "functions/determinant.hpp"
177 #include "functions/trace.hpp"
178 #include "functions/sum.hpp"
179 
180 #include "functions/contract.hpp"
181 #include "functions/contract_in_place.hpp"
182 
183 #include "functions/LQ_decomposition.hpp"
184 #include "functions/QR_decomposition.hpp"
185 
186 #include "functions/cholesky_square.hpp"
187 #include "functions/cholesky_factor.hpp"
188 
189 #include "functions/internal/make_writable_square_matrix.hpp"
190 #include "functions/rank_update_hermitian.hpp"
191 #include "functions/rank_update_triangular.hpp"
192 
193 #include "functions/solve.hpp"
194 */
195 
196 // adapters:
197 
201 
202 #include "concepts/has_untyped_index.hpp" // Is this necessary?
203 #include "concepts/all_fixed_indices_are_euclidean.hpp" // Is this necessary?
204 #include "concepts/wrappable.hpp"
205 #include "traits/get_wrappable.hpp"
206 
208 
209 #include "traits/nested_object.hpp"
212 
216 
217 #include "concepts/object-types.hpp"
218 
219 #include "adapters/adapters.hpp"
220 
221 
225 
226 
227 #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.
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 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.
Definition of transpose function.
Forward declaration of object_traits, which must be defined for all objects used in OpenKalman...
Definition of is_one_dimensional function.
Forward declaration of library_interface, which must be defined for all objects used in OpenKalman...
Definitions for attach_pattern.
Definition of copy_from function.
Definition for patterns_match_with.
Definition of patterns_match function.
Definition of various object types.
Definition of adjoint function.
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 has_nested_vector.
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 to_diagonal function.
Definition for vector.
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 nested_object_of.
Definition for has_untyped_index.
Definition of conjugate function.
Definition for zero.
Definitions for make_constant.
Definition for nested_object function.