PARP Research Group Universidad de Murcia


src/qvmath/qvmatrixalgebra.h File Reference

File from the QVision library. More...

#include <QV3DPointF>
#include <qvmath/qvmatrix.h>
#include <QVSparseBlockMatrix>

Go to the source code of this file.

Enumerations

enum  TQVSVD_Method {
  GSL_THIN_DECOMP_MOD, GSL_THIN_DECOMP, GSL_THIN_DECOMP_JACOBI, LAPACK_FULL_DGESVD,
  LAPACK_FULL_DGESDD, LAPACK_THIN_DGESVD, LAPACK_THIN_DGESDD
}
 

Available methods for Singular Value Decomposition (SVD).

More...
enum  TQVSV_Method {
  GSL_ONLY_DECOMP_MOD, GSL_ONLY_DECOMP, GSL_ONLY_DECOMP_JACOBI, LAPACK_ONLY_DGESVD,
  LAPACK_ONLY_DGESDD
}
 

Available methods for Singular Values only computation (SV).

More...
enum  TQVCholesky_Method { GSL_CHOLESKY, LAPACK_CHOLESKY_DPOTRF }
 

Available methods for Cholesky Decomposition.

More...
enum  TQVQR_Method { GSL_HOUSEHOLDER_THIN_QR, GSL_HOUSEHOLDER_FULL_QR, LAPACK_THIN_DGEQR2, LAPACK_FULL_DGEQR2 }
 

Available methods for QR Decomposition.

More...
enum  TQVLU_Method { GSL_LU, LAPACK_DGETRF }
 

Available methods for LU Decomposition.

More...
enum  TQVEigenDecomposition_Method { GSL_EIGENSYMM, LAPACK_DSYEV }
 

Available methods for EigenDecomposition.

More...
enum  TQVEigenValues_Method { GSL_EIGENSYMM_ONLY, LAPACK_DSYEV_ONLY }
 

Available methods for EigenValues only computation.

More...
enum  TQVSparseSolve_Method {
  QVMKL_DSS = 0, QVMKL_ISS = 1, QVCHOLMOD_DSS = 2, QV_SCG = 3,
  QV_BJPCG = 4, QV_DENSE = 5
}
 

Available methods for sparse linear system solving.

More...

Functions

void singularValueDecomposition (const QVMatrix &M, QVMatrix &U, QVVector &s, QVMatrix &V, const TQVSVD_Method method=DEFAULT_TQVSVD_METHOD)
 Obtains the Singular Value Decomposition (SVD) of a rectangular $ m \times n $ matrix M.
void solveFromSingularValueDecomposition (const QVMatrix &U, const QVVector &s, const QVMatrix &V, QVMatrix &X, const QVMatrix &B)
 Solves the linear system $M X = B$ for the unknown matrix $X$, using the previously obtained singular value decomposition $M = U diag(s) V^T$.
void solveFromSingularValueDecomposition (const QVMatrix &U, const QVVector &s, const QVMatrix &V, QVVector &x, const QVVector &b)
 Solves the linear system $M x = b$ for the unknown vector $x$, using the previously obtained singular value decomposition $M = U diag(s) V^T$.
void solveBySingularValueDecomposition (const QVMatrix &M, QVMatrix &X, const QVMatrix &B, const TQVSVD_Method method=DEFAULT_TQVSVD_METHOD)
 Solves the linear system $M X = B$ for the unknown matrix $X$, using the singular value decomposition $M = U diag(s) V^T$.
void solveBySingularValueDecomposition (const QVMatrix &M, QVVector &x, const QVVector &b, const TQVSVD_Method method=DEFAULT_TQVSVD_METHOD)
 Solves the linear system $M x = b$ for the unknown vector $x$, using the singular value decomposition $M = U diag(s) V^T$.
void solveBySingularValueDecomposition (const QVMatrix &M, QVMatrix &X, const QVMatrix &B, QVMatrix &U, QVVector &s, QVMatrix &V, const TQVSVD_Method method=DEFAULT_TQVSVD_METHOD)
 Solves the linear system $M X = B$ for the unknown matrix $X$, using the singular value decomposition $M = U diag(s) V^T$.
void solveBySingularValueDecomposition (const QVMatrix &M, QVVector &x, const QVVector &b, QVMatrix &U, QVVector &s, QVMatrix &V, const TQVSVD_Method method=DEFAULT_TQVSVD_METHOD)
 Solves the linear system $M x = b$ for the unknown vector $x$, using the singular value decomposition $M = U diag(s) V^T$.
double singularValueDecompositionResidual (const QVMatrix &M, const QVMatrix &U, const QVVector &s, const QVMatrix &V)
 Checks for correctness of the SVD of a matrix.
void singularValues (const QVMatrix &M, QVVector &s, const TQVSV_Method method=DEFAULT_TQVSV_METHOD)
 Gets the singular values of a matrix.
double singularValuesResidual (const QVMatrix &M, const QVVector &s)
 Checks for correctness of the singular values of a matrix.
void CholeskyDecomposition (const QVMatrix &M, QVMatrix &L, const TQVCholesky_Method method=DEFAULT_TQVCHOLESKY_METHOD)
 Obtains the Cholesky decomposition of a symmetric and positive definite matrix.
void solveFromCholeskyDecomposition (const QVMatrix &L, QVMatrix &X, const QVMatrix &B)
 Solves the linear system $M X = B$ for the unknown matrix $X$, using the previously obtained Cholesky decomposition $ M = L L^{T} $.
void solveFromCholeskyDecomposition (const QVMatrix &L, QVVector &x, const QVVector &b)
 Solves the linear system $M x = b$ for the unknown vector $x$, using the previously obtained Cholesky decomposition $ M = L L^{T} $.
void solveByCholeskyDecomposition (const QVMatrix &M, QVMatrix &X, const QVMatrix &B, const TQVCholesky_Method method=DEFAULT_TQVCHOLESKY_METHOD)
 Solves the linear system $M X = B$ for the unknown matrix $X$, using the Cholesky decomposition $ M = L L^{T} $.
void solveByCholeskyDecomposition (const QVMatrix &M, QVVector &x, const QVVector &b, const TQVCholesky_Method method=DEFAULT_TQVCHOLESKY_METHOD)
 Solves the linear system $M x = b$ for the unknown vector $x$, using the Cholesky decomposition $ M = L L^{T} $.
void solveByCholeskyDecomposition (const QVMatrix &M, QVMatrix &X, const QVMatrix &B, QVMatrix &L, const TQVCholesky_Method method=DEFAULT_TQVCHOLESKY_METHOD)
 Solves the linear system $M X = B$ for the unknown matrix $X$, using the Cholesky decomposition $ M = L L^{T} $.
void solveByCholeskyDecomposition (const QVMatrix &M, QVVector &x, const QVVector &b, QVMatrix &L, const TQVCholesky_Method method=DEFAULT_TQVCHOLESKY_METHOD)
 Solves the linear system $M x = b$ for the unknown vector $x$, using the Cholesky decomposition $ M = L L^{T} $.
double CholeskyDecompositionResidual (const QVMatrix &M, const QVMatrix &L)
 Checks for correctness of the Cholesky decomposition of a matrix.
void LUDecomposition (const QVMatrix &M, QVMatrix &P, QVMatrix &L, QVMatrix &U, const TQVLU_Method method=DEFAULT_TQVLU_METHOD)
 Obtains the LU decomposition of a rectangular $ m \times n $ matrix.
void solveFromLUDecomposition (const QVMatrix &P, const QVMatrix &L, const QVMatrix &U, QVMatrix &X, const QVMatrix &B)
 Solves the linear system $M X = B$ for the unknown matrix $X$, using the previously obtained LU decomposition of M:
void solveFromLUDecomposition (const QVMatrix &P, const QVMatrix &L, const QVMatrix &U, QVVector &x, const QVVector &b)
 Solves the linear system $M x = b$ for the unknown vector $x$, using the previously obtained LU decomposition $ M = P L U $.
void solveByLUDecomposition (const QVMatrix &M, QVMatrix &X, const QVMatrix &B, const TQVLU_Method method=DEFAULT_TQVLU_METHOD)
 Solves the linear system $M X = B$ for the unknown matrix $X$, using the LU decomposition $ M = P L U $.
void solveByLUDecomposition (const QVMatrix &M, QVVector &x, const QVVector &b, const TQVLU_Method method=DEFAULT_TQVLU_METHOD)
 Solves the linear system $M x = b$ for the unknown vector $x$, using the LU decomposition $ M = P L U $.
void solveByLUDecomposition (const QVMatrix &M, QVMatrix &X, const QVMatrix &B, QVMatrix &P, QVMatrix &L, QVMatrix &U, const TQVLU_Method method=DEFAULT_TQVLU_METHOD)
 Solves the linear system $M X = B$ for the unknown matrix $X$, using the LU decomposition $ M = P L U $.
void solveByLUDecomposition (const QVMatrix &M, QVVector &x, const QVVector &b, QVMatrix &P, QVMatrix &L, QVMatrix &U, const TQVLU_Method method=DEFAULT_TQVLU_METHOD)
 Solves the linear system $M x = b$ for the unknown vector $x$, using the LU decomposition $ M = P L U $.
double LUDecompositionResidual (const QVMatrix &M, const QVMatrix &P, const QVMatrix &L, const QVMatrix &U)
 Checks for correctness of the LU decomposition of a matrix.
void QRDecomposition (const QVMatrix &M, QVMatrix &Q, QVMatrix &R, const TQVQR_Method method=DEFAULT_TQVQR_METHOD)
 Obtains the QR decomposition of a rectangular $ m \times n $ matrix.
double QRDecompositionResidual (const QVMatrix &M, const QVMatrix &Q, const QVMatrix &R)
 Checks for correctness of the QR decomposition of a matrix.
void QLDecomposition (const QVMatrix &M, QVMatrix &Q, QVMatrix &L, const TQVQR_Method method=DEFAULT_TQVQR_METHOD)
 Obtains the QL decomposition of a rectangular $ m \times n $ matrix.
double QLDecompositionResidual (const QVMatrix &M, const QVMatrix &Q, const QVMatrix &L)
 Checks for correctness of the QL decomposition of a matrix.
void RQDecomposition (const QVMatrix &M, QVMatrix &R, QVMatrix &Q, const TQVQR_Method method=DEFAULT_TQVQR_METHOD)
 Obtains the RQ decomposition of a rectangular $ m \times n $ matrix.
double RQDecompositionResidual (const QVMatrix &M, const QVMatrix &R, const QVMatrix &Q)
 Checks for correctness of the RQ decomposition of a matrix.
void LQDecomposition (const QVMatrix &M, QVMatrix &L, QVMatrix &Q, const TQVQR_Method method=DEFAULT_TQVQR_METHOD)
 Obtains the LQ decomposition of a rectangular $ m \times n $ matrix.
double LQDecompositionResidual (const QVMatrix &M, const QVMatrix &L, const QVMatrix &Q)
 Checks for correctness of the LQ decomposition of a matrix.
void solveFromQRDecomposition (const QVMatrix &Q, const QVMatrix &R, QVMatrix &X, const QVMatrix &B)
 Solves the linear system $M X = B$ for the unknown matrix $X$, using the previously obtained QR decomposition of M:
void solveFromQRDecomposition (const QVMatrix &Q, const QVMatrix &R, QVVector &x, const QVVector &b)
 Solves the linear system $M x = b$ for the unknown vector $x$, using the previously obtained QR decomposition of M:
void solveByQRDecomposition (const QVMatrix &M, QVMatrix &X, const QVMatrix &B, const TQVQR_Method method=DEFAULT_TQVQR_METHOD)
 Solves the linear system $M X = B$ for the unknown matrix $X$, using the QR decomposition of M:
void solveByQRDecomposition (const QVMatrix &M, QVVector &x, const QVVector &b, const TQVQR_Method method=DEFAULT_TQVQR_METHOD)
 Solves the linear system $M x = b$ for the unknown vector $x$, using the QR decomposition of M:
void solveByQRDecomposition (const QVMatrix &M, QVMatrix &X, const QVMatrix &B, QVMatrix &Q, QVMatrix &R, const TQVQR_Method method=DEFAULT_TQVQR_METHOD)
 Solves the linear system $M X = B$ for the unknown matrix $X$, using the QR decomposition of M:
void solveByQRDecomposition (const QVMatrix &M, QVVector &x, const QVVector &b, QVMatrix &Q, QVMatrix &R, const TQVQR_Method method=DEFAULT_TQVQR_METHOD)
 Solves the linear system $M x = b$ for the unknown vector $x$, using the QR decomposition of M:
void eigenDecomposition (const QVMatrix &M, QVVector &lambda, QVMatrix &Q, const TQVEigenDecomposition_Method method=DEFAULT_TQVEIGENDECOMPOSITION_METHOD)
 Obtains the eigen-decomposition of a symmetric matrix.
double eigenDecompositionResidual (const QVMatrix &M, const QVVector &lambda, const QVMatrix &Q)
 Checks for correctness of the eigendecomposition of a matrix.
void eigenValues (const QVMatrix &M, QVVector &lambda, const TQVEigenValues_Method method=DEFAULT_TQVEIGENVALUES_METHOD)
 Gets the eigenvalues of a matrix.
double eigenValuesResidual (const QVMatrix &M, const QVVector &lambda)
 Checks for correctness of the eigenvalues of a symmetric matrix.
QVMatrix pseudoInverse (const QVMatrix &M, const TQVSVD_Method method=DEFAULT_TQVSVD_METHOD, const double epsilon=1.0E-10)
 Obtains the Moore–Penrose pseudoinverse of a matrix.
double determinant (const QVMatrix &M, const TQVLU_Method method=DEFAULT_TQVLU_METHOD)
 Obtains the determinant of a square matrix.
void solveHomogeneous (const QVMatrix &A, QVector< double > &x, const TQVSVD_Method method=DEFAULT_TQVSVD_METHOD)
 Solves an homogeneous linear system of equations.
double solveResidual (const QVMatrix &M, const QVMatrix &X, const QVMatrix &B)
 Returns the residual of the solution to a linear matrix equation.
double solveResidual (const QVMatrix &M, const QVVector &x, const QVVector &b)
 Returns the residual of the solution to a linear vector equation.
double sparseSolve (const QVSparseBlockMatrix &M, QVVector &x, const QVVector &b, const bool isSymmetric=false, const bool isPosDefinite=false, const TQVSparseSolve_Method method=DEFAULT_TQVSPARSESOLVE_METHOD, const bool start_from_x=false, const bool iters_or_resid=true, const int iters=0, const double resid=1.0E-10, int &final_iter_count=dummy)
 Solves a sparse system of linear equations, taking advantage of sparseness to accelerate the computation.
bool solveHomogeneous (const QVSparseBlockMatrix &A, QVVector &x, const int maxIterations=10, const double minRelativeError=0.0, const TQVSparseSolve_Method method=QVMKL_DSS)
 Solves a sparse homogeneous linear system using the inverse iteration algorithm and the MKL sparse routines.

Detailed Description

File from the QVision library.

Author:
PARP Research Group. University of Murcia, Spain.

Definition in file qvmatrixalgebra.h.




QVision framework. PARP research group. Copyright © 2007, 2008, 2009, 2010, 2011.