|
OpenKalman
|
A triangular_adapter, where components above or below the diagonal (or both) are zero. 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> | |
| TriangularAdapter () | |
| Default constructor. | |
| template<typename Arg > | |
| TriangularAdapter (Arg &&arg) | |
| Construct from a triangular adapter if NestedObject is non-diagonal. | |
| template<typename Arg , std::enable_if_t< square_shaped< Arg, applicability::permitted > and(not triangular_matrix< Arg, tri >) and(not diagonal_matrix< NestedObject >) and dimensions_match< Arg > and stdex::constructible_from< NestedObject, Arg &&>, int > = 0> | |
| TriangularAdapter (Arg &&arg) | |
| Construct from a non-triangular or square matrix if NestedObject is non-diagonal. | |
| template<typename Arg , std::enable_if_t< triangular_matrix< Arg, tri > and(not triangular_adapter< Arg >) and(not has_nested_object< Arg > or(diagonal_matrix< NestedObject > and diagonal_matrix< Arg >)) and dimensions_match< Arg > and std::is_constructible< NestedObject, Arg &&>::value, int > = 0> | |
| TriangularAdapter (Arg &&arg) | |
| Construct from a triangular, non-adapter matrix. | |
| template<typename Arg > | |
| TriangularAdapter (Arg &&arg) | |
| Construct from a diagonal matrix if NestedObject is diagonal. | |
| template<typename Arg , std::enable_if_t< square_shaped< Arg, applicability::permitted > and(not triangular_matrix< Arg >) and diagonal_matrix< NestedObject > and dimensions_match< Arg > and std::is_constructible< NestedObject, decltype(diagonal_of(std::declval< Arg &&>()))>::value, int > = 0> | |
| TriangularAdapter (Arg &&arg) | |
| Construct from a non-triangular square matrix if NestedObject is diagonal. | |
| template<typename... Args, std::enable_if_t< std::conjunction_v< std::is_convertible< Args, const Scalar >... > and(sizeof...(Args) > 0> | |
| TriangularAdapter (Args...args) | |
| Construct from a list of scalar coefficients, in row-major order. More... | |
| template<typename ... Args, std::enable_if_t< std::conjunction_v< std::is_convertible< Args, const Scalar >... > and(sizeof...(Args) > 0> | |
| TriangularAdapter (Args...args) | |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
| template<typename Arg > | |
| auto & | operator= (Arg &&arg) |
| Assign from another triangular_matrix. | |
| template<typename Arg , triangle_type t, std::enable_if_t< vector_space_descriptors_may_match_with< Arg, NestedObject >, int > = 0> | |
| auto & | operator+= (const TriangularAdapter< Arg, tri > &arg) |
| template<typename Arg , triangle_type t, std::enable_if_t< vector_space_descriptors_may_match_with< Arg, NestedObject >, int > = 0> | |
| auto & | operator-= (const TriangularAdapter< Arg, tri > &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< vector_space_descriptors_may_match_with< Arg, NestedObject >, int > = 0> | |
| auto & | operator*= (const TriangularAdapter< Arg, tri > &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 >, TriangularAdapter > 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 >, TriangularAdapter > 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 >, TriangularAdapter > 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< TriangularAdapter< NestedObject, tri >, 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 && |
A triangular_adapter, where components above or below the diagonal (or both) are zero.
The matrix may be a diagonal matrix if tri is triangle_type::diagonal. Implicit conversions are available from any triangular_matrix of compatible size.
|
inline |
Construct from a list of scalar coefficients, in row-major order.
This assumes, without checking, that the coefficients represent a triangular matrix.
| Args | List of scalar values. |
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Construct diagonal matrix from a list of scalar coefficients defining the diagonal.
1.8.13