singular value decomposition More...
#include <matrix_decomp.h>
Public Member Functions | |
SVD (const Matrix< C > &A) | |
default constructor, perform SVD | |
void | getU (Matrix< C > &U) const |
return U | |
void | getUS (Matrix< C > &US) const |
return U*S | |
void | getS (Vector< C > &S) const |
return singular values diag(S) | |
void | getV (Matrix< C > &V) const |
return V | |
Protected Attributes | |
Matrix< C >::size_type | rowdim_ |
m=A.rowdim(), n=A.coldim() | |
Matrix< C >::size_type | coldim_ |
Matrix< C > | U_ |
storage for the decomposition | |
Matrix< C > | V_ |
Vector< C > | Sdiag_ |
storage for diag(S) |
singular value decomposition
Compute the singular value decomposition of an m-by-n matrix A, in the form A = U*S*V where U is an m-by-n orthogonal matrix, S is an n-by-n diagonal matrix and V is an n-by-n orthogonal matrix. The singular values sigma_k = S(k,k) are ordered such that sigma_0 >= sigma_1 >= ... >= sigma_{n-1}