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

Pivoted axes: \( \Pi^T L D^{1/2} \) from Eigen's pivoted LDL decomposition \( P = \Pi^T L D L^T \Pi \), with a negative pivot, which rounding can give a singular matrix, taken as zero. More...

#include <EmrysFilter/Distributions/Roots.h>

Public Types

template<typename Scalar>
using Report = ClampReport
 The report: the pivots 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

Static Public Attributes

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

Detailed Description

Pivoted axes: \( \Pi^T L D^{1/2} \) from Eigen's pivoted LDL decomposition \( P = \Pi^T L D L^T \Pi \), with a negative pivot, which rounding can give a singular matrix, taken as zero.

It never fails: a semidefinite \( P \), such as one with a block known exactly, gets an exact root, and an indefinite one a root of its positive semidefinite part. The fallback of the default, cholesky(pivoted()). The pivots follow the diagonal, so the axes jump when two candidates swap, which is why it is not the first choice.

Its report is a ClampReport of the pivots taken as zero. A covariance with NaN or infinity gives a root with them.

See also
pivoted()

Member Function Documentation

◆ root() [1/2]

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

◆ root() [2/2]

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

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