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 std::is_constructible_v< 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 std::is_constructible_v< 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 std::is_constructible_v< 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 std::is_constructible_v< 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. |