MyraMath
|
Routines to compute a Householder LQ decomposition. More...
#include <myramath/MYRAMATH_EXPORT.h>
#include <myramath/utility/Number.h>
#include <myramath/dense/Vector.h>
Go to the source code of this file.
Classes | |
class | myra::CMatrixRange< Number > |
Represents a const MatrixRange. More... | |
class | myra::MatrixRange< Number > |
Represents a mutable MatrixRange. More... | |
Routines to compute a Householder LQ decomposition.
The orthogonal matrix Q is not tabulated explicitly, rather it is stored in factored form (a rank-K perturbation of the identity, a product of rank-1 Householder reflectors). This factored form overwrites the strictly upper triangle portion of the input A. The triangular (or trapezoidal) matrix L is tabulated explicity and overwrites the lower triangle of A. There are three shapes to consider: Case 1 (A tall/skinny), I > J: [\ R ] A = L * Q [ \ ] IxJ IxJ JxJ [ \ ] (rank J) [ \] [ H ] [ ] [ ] Case 2 (A short/fat), I < J: A = L * Q [\ ] IxJ IxJ JxJ [ \ H ] (rank I) [L \ ] Case 3 (A square), I = J = K: [\ H] A = L * Q [ \ ] KxK KxK KxK [ \ ] (rank K) [L \] In all cases, if K = min(I,J), then Q is a rank-K pertubation of the JxJ identity, and L is IxJ.