TNT::Linear_Algebra::SVD< Real > Class Template Reference

#include <tnt_linalg.h>

Collaboration diagram for TNT::Linear_Algebra::SVD< Real >:
[legend]

List of all members.

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


Detailed Description

template<class Real>
class TNT::Linear_Algebra::SVD< Real >

Singular Value Decomposition.

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.


Constructor & Destructor Documentation

template<class Real >
TNT::Linear_Algebra::SVD< Real >::SVD ( const Matrix< Real > &  Arg  )  [inline]

Definition at line 1879 of file tnt_linalg.h.


Member Function Documentation

template<class Real >
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.

template<class Real >
void TNT::Linear_Algebra::SVD< Real >::getS ( Matrix< Real > &  A  )  [inline]

Return the diagonal matrix of singular values

Returns:
S

Definition at line 2325 of file tnt_linalg.h.

template<class Real >
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.

template<class Real >
void TNT::Linear_Algebra::SVD< Real >::getU ( Matrix< Real > &  A  )  [inline]

Definition at line 2295 of file tnt_linalg.h.

template<class Real >
void TNT::Linear_Algebra::SVD< Real >::getV ( Matrix< Real > &  A  )  [inline]

Definition at line 2309 of file tnt_linalg.h.

template<class Real >
double TNT::Linear_Algebra::SVD< Real >::norm2 (  )  [inline]

Two norm (max(S))

Definition at line 2337 of file tnt_linalg.h.

template<class Real >
int TNT::Linear_Algebra::SVD< Real >::rank (  )  [inline]

Effective numerical matrix rank

Returns:
Number of nonnegligible singular values.

Definition at line 2351 of file tnt_linalg.h.


Member Data Documentation

template<class Real >
int TNT::Linear_Algebra::SVD< Real >::m [private]

Definition at line 1874 of file tnt_linalg.h.

template<class Real >
int TNT::Linear_Algebra::SVD< Real >::n [private]

Definition at line 1874 of file tnt_linalg.h.

template<class Real >
Vector<Real> TNT::Linear_Algebra::SVD< Real >::s [private]

Definition at line 1873 of file tnt_linalg.h.

template<class Real >
Matrix<Real> TNT::Linear_Algebra::SVD< Real >::U [private]

Definition at line 1872 of file tnt_linalg.h.

template<class Real >
Matrix<Real> TNT::Linear_Algebra::SVD< Real >::V [private]

Definition at line 1872 of file tnt_linalg.h.


The documentation for this class was generated from the following file:

Generated on Fri Feb 6 13:30:19 2009 for CorAL by  doxygen 1.5.8