#include <tnt_linalg.h>
Public Member Functions | |
SVD (const Matrix< Real > &Arg) | |
void | getU (Matrix< Real > &A) |
void | getV (Matrix< Real > &A) |
void | getSingularValues (Vector< Real > &x) |
void | getS (Matrix< Real > &A) |
double | norm2 () |
double | cond () |
int | rank () |
Private Attributes | |
Matrix< Real > | U |
Matrix< Real > | V |
Vector< Real > | s |
int | m |
int | n |
For an m-by-n matrix A with m >= n, the singular value decomposition is an m-by-n orthogonal matrix U, an n-by-n diagonal matrix S, and an n-by-n orthogonal matrix V so that A = U*S*V'.
The singular values, sigma[k] = S[k][k], are ordered so that sigma[0] >= sigma[1] >= ... >= sigma[n-1].
The singular value decompostion always exists, so the constructor will never fail. The matrix condition number and the effective numerical rank can be computed from this decomposition.
(Adapted from JAMA, a Java Matrix Library, developed by jointly by the Mathworks and NIST; see http://math.nist.gov/javanumerics/jama).
Definition at line 1868 of file tnt_linalg.h.
TNT::Linear_Algebra::SVD< Real >::SVD | ( | const Matrix< Real > & | Arg | ) | [inline] |
Definition at line 1879 of file tnt_linalg.h.
double TNT::Linear_Algebra::SVD< Real >::cond | ( | ) | [inline] |
Two norm of condition number (max(S)/min(S))
Definition at line 2343 of file tnt_linalg.h.
void TNT::Linear_Algebra::SVD< Real >::getS | ( | Matrix< Real > & | A | ) | [inline] |
Return the diagonal matrix of singular values
Definition at line 2325 of file tnt_linalg.h.
void TNT::Linear_Algebra::SVD< Real >::getSingularValues | ( | Vector< Real > & | x | ) | [inline] |
Return the one-dimensional array of singular values
Definition at line 2316 of file tnt_linalg.h.
void TNT::Linear_Algebra::SVD< Real >::getU | ( | Matrix< Real > & | A | ) | [inline] |
Definition at line 2295 of file tnt_linalg.h.
void TNT::Linear_Algebra::SVD< Real >::getV | ( | Matrix< Real > & | A | ) | [inline] |
Definition at line 2309 of file tnt_linalg.h.
double TNT::Linear_Algebra::SVD< Real >::norm2 | ( | ) | [inline] |
Two norm (max(S))
Definition at line 2337 of file tnt_linalg.h.
int TNT::Linear_Algebra::SVD< Real >::rank | ( | ) | [inline] |
Effective numerical matrix rank
Definition at line 2351 of file tnt_linalg.h.
int TNT::Linear_Algebra::SVD< Real >::m [private] |
Definition at line 1874 of file tnt_linalg.h.
int TNT::Linear_Algebra::SVD< Real >::n [private] |
Definition at line 1874 of file tnt_linalg.h.
Vector<Real> TNT::Linear_Algebra::SVD< Real >::s [private] |
Definition at line 1873 of file tnt_linalg.h.
Matrix<Real> TNT::Linear_Algebra::SVD< Real >::U [private] |
Definition at line 1872 of file tnt_linalg.h.
Matrix<Real> TNT::Linear_Algebra::SVD< Real >::V [private] |
Definition at line 1872 of file tnt_linalg.h.