EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Emrys::roots::Symmetric Struct Reference

Symmetric axes: the principal square root \( P^{1/2} = U \Lambda^{1/2} U^T \), the one symmetric positive semidefinite root, with a negative eigenvalue taken as zero, so that it never fails. More...

#include <EmrysFilter/Distributions/Roots.h>

Public Types

template<typename Scalar>
using Report = ClampReport
 The report: the eigenvalues taken as zero.

Public Member Functions

template<typename Derived>
internal::SquareMatrixOf< Derived > root (Eigen::MatrixBase< Derived > const &cov) const
template<typename Derived, typename Sink>
internal::SquareMatrixOf< Derived > root (Eigen::MatrixBase< Derived > const &cov, Sink &&sink) const
template<typename Derived>
internal::SquareMatrixOf< Derived > rootFromFactor (Eigen::MatrixBase< Derived > const &factor) const

Static Public Attributes

static constexpr bool canFail = false
 every positive semidefinite part has a root

Detailed Description

Symmetric axes: the principal square root \( P^{1/2} = U \Lambda^{1/2} U^T \), the one symmetric positive semidefinite root, with a negative eigenvalue taken as zero, so that it never fails.

The one choice that does not depend on the coordinates' basis, rotating with them, and the costliest, an eigendecomposition and a product, which is why it is not the default. From a factor it takes the singular value decomposition of its triangular factor, as Principal does.

Its report is a ClampReport of the eigenvalues taken as zero.

See also
symmetric(), Golub and Van Loan (2013), principal square root

Member Function Documentation

◆ root() [1/2]

template<typename Derived>
internal::SquareMatrixOf< Derived > Emrys::roots::Symmetric::root ( Eigen::MatrixBase< Derived > const & cov) const
inlinenodiscard
Returns
the principal square root of cov, of which only the lower triangle is read

◆ root() [2/2]

template<typename Derived, typename Sink>
internal::SquareMatrixOf< Derived > Emrys::roots::Symmetric::root ( Eigen::MatrixBase< Derived > const & cov,
Sink && sink ) const
inlinenodiscard
Returns
the principal square root of cov, calling sink with the ClampReport

◆ rootFromFactor()

template<typename Derived>
internal::SquareMatrixOf< Derived > Emrys::roots::Symmetric::rootFromFactor ( Eigen::MatrixBase< Derived > const & factor) const
inlinenodiscard
Returns
the principal square root of \( F F^T \) for factor, from its singular value decomposition

The documentation for this struct was generated from the following file:
  • EmrysFilter/Distributions/Roots.h