OpenKalman
Public Types | Public Member Functions | Protected Member Functions | List of all members
OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix > Struct Template Reference
Inheritance diagram for OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >:
Inheritance graph
[legend]
Collaboration diagram for OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >:
Collaboration graph
[legend]

Public Types

using Scalar = scalar_type_of_t< NestedMatrix >
 Scalar type for this matrix.
 

Public Member Functions

template<typename F1 , typename F2 , std::enable_if_t< std::is_invocable_v< F1, NestedMatrix &> and std::is_invocable_v< F2, CholeskyNestedMatrix &>, int > = 0>
auto covariance_op (const F1 &f1, const F2 &f2) const &
 
template<typename F1 , typename F2 , std::enable_if_t< std::is_invocable_v< F1, NestedMatrix &> and std::is_invocable_v< F2, CholeskyNestedMatrix &>, int > = 0>
auto covariance_op (const F1 &f1, const F2 &f2) const &&
 
template<typename F , std::enable_if_t< std::is_invocable_v< F, NestedMatrix &> and std::is_invocable_v< F, CholeskyNestedMatrix &>, int > = 0>
auto covariance_op (const F &f) const &
 
template<typename F , std::enable_if_t< std::is_invocable_v< F, NestedMatrix &> and std::is_invocable_v< F, CholeskyNestedMatrix &>, int > = 0>
auto covariance_op (const F &f) const &&
 
decltype(auto) get_self_adjoint_nested_matrix () &
 
decltype(auto) get_self_adjoint_nested_matrix () const &
 
decltype(auto) get_self_adjoint_nested_matrix () &&
 
decltype(auto) get_self_adjoint_nested_matrix () const &&
 
decltype(auto) get_triangular_nested_matrix () &
 
decltype(auto) get_triangular_nested_matrix () const &
 
decltype(auto) get_triangular_nested_matrix () &&
 
decltype(auto) get_triangular_nested_matrix () const &&
 
auto determinant () const
 
template<typename T = NestedMatrix, std::enable_if_t< writable_by_component< T, 2 > and element_gettable< T, 2 >, int > = 0>
auto operator() (std::size_t i, std::size_t j)
 Get or set element (i, j) of the covariance matrix. More...
 
template<typename T = NestedMatrix, std::enable_if_t< element_gettable< T, 2 >, int > = 0>
auto operator() (std::size_t i, std::size_t j) const
 
template<typename T = NestedMatrix, std::enable_if_t< writable_by_component< T, 1 > and element_gettable< T, 1 >, int > = 0>
auto operator[] (std::size_t i)
 Get or set element i of the covariance matrix, if it is a vector. More...
 
template<typename T = NestedMatrix, std::enable_if_t< element_gettable< T, 1 >, int > = 0>
auto operator[] (std::size_t i) const
 
template<typename T = NestedMatrix, std::enable_if_t< writable_by_component< T, 1 > and element_gettable< T, 1 >, int > = 0>
auto operator() (std::size_t i)
 
template<typename T = NestedMatrix, std::enable_if_t< element_gettable< T, 1 >, int > = 0>
auto operator() (std::size_t i) const
 
template<typename T = NestedMatrix, std::enable_if_t< writable_by_component< T, 2 >, int > = 0>
void set_component (const Scalar s, const std::size_t i, const std::size_t j)
 Set an element of the cholesky nested matrix.
 
template<typename T = NestedMatrix, std::enable_if_t< writable_by_component< T, 1 >, int > = 0>
void set_component (const Scalar s, const std::size_t i)
 Set an element of the cholesky nested matrix.
 

Protected Member Functions

template<bool direct_nested>
decltype(auto) get_nested_matrix_impl () &
 
template<bool direct_nested>
decltype(auto) get_nested_matrix_impl () const &
 
template<bool direct_nested>
decltype(auto) get_nested_matrix_impl () &&
 
template<bool direct_nested>
decltype(auto) get_nested_matrix_impl () const &&
 

Member Function Documentation

◆ covariance_op() [1/3]

template<typename Derived, typename NestedMatrix>
template<typename F1 , typename F2 , std::enable_if_t< std::is_invocable_v< F1, NestedMatrix &> and std::is_invocable_v< F2, CholeskyNestedMatrix &>, int > = 0>
auto OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::covariance_op ( const F1 &  f1,
const F2 &  f2 
) const &&
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ covariance_op() [2/3]

template<typename Derived, typename NestedMatrix>
template<typename F , std::enable_if_t< std::is_invocable_v< F, NestedMatrix &> and std::is_invocable_v< F, CholeskyNestedMatrix &>, int > = 0>
auto OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::covariance_op ( const F &  f) const &
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ covariance_op() [3/3]

template<typename Derived, typename NestedMatrix>
template<typename F , std::enable_if_t< std::is_invocable_v< F, NestedMatrix &> and std::is_invocable_v< F, CholeskyNestedMatrix &>, int > = 0>
auto OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::covariance_op ( const F &  f) const &&
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ determinant()

template<typename Derived, typename NestedMatrix>
auto OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::determinant ( ) const
inline
Returns
The determinant.

◆ get_self_adjoint_nested_matrix() [1/4]

template<typename Derived, typename NestedMatrix>
decltype(auto) OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::get_self_adjoint_nested_matrix ( ) &
inline
Returns
The nested matrix, potentially converted to self-adjoint form.

◆ get_self_adjoint_nested_matrix() [2/4]

template<typename Derived, typename NestedMatrix>
decltype(auto) OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::get_self_adjoint_nested_matrix ( ) const &
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ get_self_adjoint_nested_matrix() [3/4]

template<typename Derived, typename NestedMatrix>
decltype(auto) OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::get_self_adjoint_nested_matrix ( ) &&
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ get_self_adjoint_nested_matrix() [4/4]

template<typename Derived, typename NestedMatrix>
decltype(auto) OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::get_self_adjoint_nested_matrix ( ) const &&
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ get_triangular_nested_matrix() [1/4]

template<typename Derived, typename NestedMatrix>
decltype(auto) OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::get_triangular_nested_matrix ( ) &
inline
Returns
The nested matrix, potentially converted to triangular form.

◆ get_triangular_nested_matrix() [2/4]

template<typename Derived, typename NestedMatrix>
decltype(auto) OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::get_triangular_nested_matrix ( ) const &
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ get_triangular_nested_matrix() [3/4]

template<typename Derived, typename NestedMatrix>
decltype(auto) OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::get_triangular_nested_matrix ( ) &&
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ get_triangular_nested_matrix() [4/4]

template<typename Derived, typename NestedMatrix>
decltype(auto) OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::get_triangular_nested_matrix ( ) const &&
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator()() [1/4]

template<typename Derived, typename NestedMatrix>
template<typename T = NestedMatrix, std::enable_if_t< writable_by_component< T, 2 > and element_gettable< T, 2 >, int > = 0>
auto OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::operator() ( std::size_t  i,
std::size_t  j 
)
inline

Get or set element (i, j) of the covariance matrix.

Parameters
iThe row.
jThe column.
Returns
An ElementAccessor object.

◆ operator()() [2/4]

template<typename Derived, typename NestedMatrix>
template<typename T = NestedMatrix, std::enable_if_t< element_gettable< T, 2 >, int > = 0>
auto OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::operator() ( std::size_t  i,
std::size_t  j 
) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator()() [3/4]

template<typename Derived, typename NestedMatrix>
template<typename T = NestedMatrix, std::enable_if_t< writable_by_component< T, 1 > and element_gettable< T, 1 >, int > = 0>
auto OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::operator() ( std::size_t  i)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator()() [4/4]

template<typename Derived, typename NestedMatrix>
template<typename T = NestedMatrix, std::enable_if_t< element_gettable< T, 1 >, int > = 0>
auto OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::operator() ( std::size_t  i) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ operator[]() [1/2]

template<typename Derived, typename NestedMatrix>
template<typename T = NestedMatrix, std::enable_if_t< writable_by_component< T, 1 > and element_gettable< T, 1 >, int > = 0>
auto OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::operator[] ( std::size_t  i)
inline

Get or set element i of the covariance matrix, if it is a vector.

Parameters
iThe row.
Returns
An ElementAccessor object.

◆ operator[]() [2/2]

template<typename Derived, typename NestedMatrix>
template<typename T = NestedMatrix, std::enable_if_t< element_gettable< T, 1 >, int > = 0>
auto OpenKalman::internal::CovarianceImpl< Derived, NestedMatrix >::operator[] ( std::size_t  i) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.


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