![]() |
QR decomposition is a best known decomposition from a whole family of orthogonal factorizations, which includes QR, LQ, RQ and QL decompositions. Here Q denotes orthogonal matrix, R and L denote upper and lower triangular matrices. ALGLIB package contains implementations of two most popular decompositions: QR and LQ. These decompositions may be used to solve full rank least squares problem, as preliminary step in the construction of the SVD decomposition, or for other tasks. QL and RQ decompositions are less popular and they are not implemented in the ALGLIB.
Contents |
QR(LQ) decomposition is implemented in LAPACK-similar manner:
Unlike triangular factorization algorithms (LU, Cholesky), QR/LQ are not implemented in cache oblivious manner. Nevertheless, ALGLIB implementation of QR/LQ is still efficient enough without CPU-specific tuning. Algorithm makes use of ALGLIB BLAS, mostly of rank-k updates.
From performance point of view matrices being factorized may be divided into two classes:
ALGLIB package contains both real and complex QR(LQ) decomposition subroutines. Real subroutines are listed below:
Complex versions of subroutines have similar names:
| C++ | ortfac.h | |
| C# | ortfac.cs | |
| MPFR | ortfac.h | |
| Delphi | ortfac.pas | |
| FreePascal | ortfac.pas | |
| VBA | ortfac.bas |
This article is intended for personal use only.
C# source.
C++ source.
C++ source. MPFR/GMP is used.
GMP source is available from gmplib.org. MPFR source is available from www.mpfr.org.
FreePascal source.
Delphi source.
VBA source.
|
ALGLIB project, 1999-2010 |