EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Triangularization.h File Reference

Triangularization: the triangular factor of a stacked matrix by Householder reflections, in place and without forming the orthogonal factor. More...

#include <algorithm>
#include <concepts>
#include <type_traits>
#include <Eigen/Core>
#include <Eigen/Householder>
#include <EmrysFilter/Core/Macros.h>

Go to the source code of this file.

Functions

template<typename M, typename Derived = std::remove_cvref_t<M>>
requires std::derived_from<Derived, Eigen::MatrixBase<Derived>> && (!std::is_const_v<std::remove_reference_t<M>>) &&
((Derived::Flags & Eigen::LvalueBit) != 0)
void Emrys::triangularize (M &&m)
 Reduces m to upper-triangular form in place by Householder reflections from the left, with a nonnegative diagonal.

Detailed Description

Triangularization: the triangular factor of a stacked matrix by Householder reflections, in place and without forming the orthogonal factor.

The square-root forms of the Gaussian (decisions.md [gaussian-forms]) use it wherever the covariance form adds matrices: a sum \( A A^T + B B^T \) is \( L L^T \) for the triangular factor \( L \) of \( [\,A \;\; B\,] \), so no covariance is formed. Read Multiply.h next.