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>
|
|
template<typename Scalar> |
| using | Report = ClampReport |
| | The report: the pivots taken as zero.
|
|
| 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 constexpr bool | canFail = false |
| | every positive semidefinite part has a root
|
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()
◆ 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: