|
OpenKalman
|
An adapter for creating a diagonal matrix or tensor. More...
#include <forward-class-declarations.hpp>


Public Types | |
| using | Scalar = scalar_type_of_t< NestedObject > |
Public Member Functions | |
| template<bool Enable = true, std::enable_if_t< Enable and stdex::default_initializable< NestedObject > and(not has_dynamic_dimensions< NestedObject >), int > = 0> | |
| constexpr | diagonal_adapter () |
| Default constructor. | |
| template<typename Arg > | |
| constexpr | diagonal_adapter (Arg &&arg) |
| Construct from a vector, matrix, or other tensor reflecting the diagonal. | |
| template<typename Arg > | |
| constexpr auto & | operator= (Arg &&arg) |
| Assign from another diagonal_matrix. | |
| template<typename Arg , std::enable_if_t< diagonal_matrix< Arg > and(dynamic_dimension< Arg, 0 > or dynamic_dimension< NestedObject, 0 > or index_dimension_of< Arg, 0 >::value==dim), int > = 0> | |
| auto & | operator+= (Arg &&arg) |
| template<typename Arg , std::enable_if_t< diagonal_matrix< Arg > and(dynamic_dimension< Arg, 0 > or dynamic_dimension< NestedObject, 0 > or index_dimension_of< Arg, 0 >::value==dim), int > = 0> | |
| auto & | operator-= (Arg &&arg) |
| template<typename S , std::enable_if_t< stdex::convertible_to< S, Scalar >, int > = 0> | |
| auto & | operator*= (const S s) |
| template<typename S , std::enable_if_t< stdex::convertible_to< S, Scalar >, int > = 0> | |
| auto & | operator/= (const S s) |
| template<typename Arg , std::enable_if_t<(index_dimension_of< Arg, 0 >::value==dim), int > = 0> | |
| auto & | operator*= (const diagonal_adapter< Arg > &arg) |
| decltype(auto) | operator- () const & |
| decltype(auto) | operator- () const && |
| template<typename Arg , typename S , std::enable_if_t< std::is_same_v< std::decay_t< Arg >, diagonal_adapter > and stdex::convertible_to< S, const scalar_type_of_t< Arg >>> > | |
| decltype(auto) friend | operator* (Arg &&arg, S s) |
| template<typename Arg , typename S , std::enable_if_t< std::is_same_v< std::decay_t< Arg >, diagonal_adapter > and stdex::convertible_to< S, const scalar_type_of_t< Arg >>> > | |
| decltype(auto) friend | operator* (S s, Arg &&arg) |
| template<typename Arg , typename S , std::enable_if_t< std::is_same_v< std::decay_t< Arg >, diagonal_adapter > and stdex::convertible_to< S, const scalar_type_of_t< Arg >>> > | |
| decltype(auto) friend | operator/ (Arg &&arg, S s) |
Public Member Functions inherited from OpenKalman::internal::AdapterBase< diagonal_adapter< NestedObject >, NestedObject > | |
| constexpr | AdapterBase ()=default |
| Default constructor. | |
| constexpr | AdapterBase (Arg &&arg) |
| Construct from the nested type. | |
| constexpr NestedObject & | nested_object () & |
| Get the nested object. | |
| constexpr const NestedObject & | nested_object () const & |
| constexpr NestedObject && | nested_object () && |
| constexpr const NestedObject && | nested_object () const && |
An adapter for creating a diagonal matrix or tensor.
The matrix is guaranteed to be diagonal. Implicit conversions are available from any diagonal_matrix of compatible size.
| NestedMatrix | A column vector expression defining the diagonal elements. object_traits outside the diagonal are automatically 0. |
1.8.13