|
OpenKalman
|
A matrix with typed rows and columns. More...
#include <forward-class-declarations.hpp>


Public Types | |
| using | Scalar = scalar_type_of_t< NestedMatrix > |
| Scalar type for this matrix. | |
Public Member Functions | |
| template<typename Arg , std::enable_if_t< typed_matrix< Arg > and not std::is_base_of_v< Matrix, std::decay_t< Arg >> and not euclidean_transformed< Arg > and compares_with< vector_space_descriptor_of_t< Arg, 0 >, RowCoefficients > and compares_with< vector_space_descriptor_of_t< Arg, 1 >, ColumnCoefficients > and stdex::constructible_from< NestedMatrix, decltype(nested_object(std::declval< Arg &&>()))>, int > = 0> | |
| Matrix (Arg &&arg) | |
| Construct from a compatible typed_matrix. | |
| template<typename Arg , std::enable_if_t< typed_matrix< Arg > and euclidean_transformed< Arg > and compares_with< vector_space_descriptor_of_t< Arg, 0 >, RowCoefficients > and compares_with< vector_space_descriptor_of_t< Arg, 1 >, ColumnCoefficients > and stdex::constructible_from< NestedMatrix, decltype(from_euclidean< RowCoefficients >(nested_object(std::declval< Arg &&>())))>, int > = 0> | |
| Matrix (Arg &&arg) | |
| Construct from a compatible euclidean_transformed. | |
| template<typename Arg , std::enable_if_t< typed_matrix_nestable< Arg > and(index_dimension_of< Arg, 0 >::value==index_dimension_of< NestedMatrix, 0 >::value) and(index_dimension_of< Arg, 1 >::value==index_dimension_of< NestedMatrix, 1 >::value) and stdex::constructible_from< NestedMatrix, Arg &&>, int > = 0> | |
| Matrix (Arg &&arg) | |
| Construct from compatible typed_matrix_nestable. | |
| template<typename Arg , std::enable_if_t< covariance< Arg > and compares_with< vector_space_descriptor_of_t< Arg, 0 >, RowCoefficients > and compares_with< vector_space_descriptor_of_t< Arg, 0 >, ColumnCoefficients > and stdex::constructible_from< NestedMatrix, dense_writable_matrix_t< Arg >>, int > = 0> | |
| Matrix (Arg &&arg) | |
| Construct from compatible covariance. | |
| template<typename Arg > | |
| auto & | operator= (Arg &&other) |
| Assign from a compatible typed_matrix. | |
| template<typename Arg > | |
| auto & | operator= (Arg &&other) |
| Assign from a compatible euclidean_transformed matrix. | |
| template<typename Arg , std::enable_if_t< typed_matrix_nestable< Arg > and std::is_assignable_v< std::add_lvalue_reference_t< NestedMatrix >, Arg &&>, int > = 0> | |
| auto & | operator= (Arg &&arg) |
| Assign from a compatible typed_matrix_nestable. | |
| auto & | operator+= (const Matrix &other) |
| Increment from another Matrix. | |
| template<typename Arg , std::enable_if_t< typed_matrix< Arg > and compares_with< vector_space_descriptor_of_t< Arg, 0 >, RowCoefficients >and compares_with< vector_space_descriptor_of_t< Arg, 1 >, ColumnCoefficients >, int > = 0> | |
| auto & | operator+= (Arg &&other) |
| Increment from another typed matrix. | |
| template<typename Arg , std::enable_if_t< distribution< Arg > and(coordinates::euclidean_pattern< ColumnCoefficients >) and(compares_with< typename DistributionTraits< Arg >::StaticDescriptor, RowCoefficients >), int > = 0> | |
| auto & | operator+= (const Arg &arg) |
| Add a stochastic value to each column of the matrix, based on a distribution. | |
| auto & | operator-= (const Matrix &other) |
| Decrement from another Matrix. | |
| template<typename Arg , std::enable_if_t< typed_matrix< Arg > and compares_with< vector_space_descriptor_of_t< Arg, 0 >, RowCoefficients >and compares_with< vector_space_descriptor_of_t< Arg, 1 >, ColumnCoefficients >, int > = 0> | |
| auto & | operator-= (Arg &&other) |
| Decrement from another typed matrix. | |
| template<typename Arg , std::enable_if_t< distribution< Arg > and(coordinates::euclidean_pattern< ColumnCoefficients >) and(compares_with< typename DistributionTraits< Arg >::StaticDescriptor, RowCoefficients >), int > = 0> | |
| auto & | operator-= (const Arg &arg) |
| Subtract a stochastic value to each column of the matrix, based on a distribution. | |
A matrix with typed rows and columns.
It is a wrapper for a native matrix type from a supported matrix library such as Eigen. The matrix can be thought of as a tests from X to Y, where the coefficients for each of X and Y are typed. Example declarations:
Matrix<std::tuple<Axis, Axis, angle::Radians>, Dimensions<2>, eigen_matrix_t<double, 3, 2>> x;Matrix<double, std::tuple<Axis, Axis, angle::Radians>, Dimensions<2>, eigen_matrix_t<double, 3, 2>> x; | RowCoefficients | A set of coefficients (e.g., Axis, Spherical, etc.) corresponding to the rows. |
| ColumnCoefficients | Another set of coefficients corresponding to the columns. |
| NestedMatrix | The underlying native matrix or matrix expression. |
1.8.13