OpenKalman
Public Types | Public Member Functions | List of all members
OpenKalman::Matrix< RowCoefficients, ColumnCoefficients, NestedMatrix > Struct Template Reference

A matrix with typed rows and columns. More...

#include <forward-class-declarations.hpp>

Inheritance diagram for OpenKalman::Matrix< RowCoefficients, ColumnCoefficients, NestedMatrix >:
Inheritance graph
[legend]
Collaboration diagram for OpenKalman::Matrix< RowCoefficients, ColumnCoefficients, NestedMatrix >:
Collaboration graph
[legend]

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.
 

Detailed Description

template<typename RowCoefficients, typename ColumnCoefficients, typename NestedMatrix>
struct OpenKalman::Matrix< RowCoefficients, ColumnCoefficients, NestedMatrix >

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:


The documentation for this struct was generated from the following files: