theplu::yat::utility::SVD Class Reference

Singular Value Decomposition. More...

#include <yat/utility/SVD.h>

List of all members.

Public Types

enum  SVDalgorithm { GolubReinsch, ModifiedGolubReinsch, Jacobi }

Public Member Functions

 SVD (const utility::Matrix &Ain)
 Constructs an SVD object using the matrix Ain as only input. The input matrix is copied for further use in the object.
 ~SVD (void)
 The destructor.
void decompose (SVDalgorithm algo=GolubReinsch)
 This function will perform SVD with the method specified by algo.
const utility::Vectors (void) const
 Access to the s vector.
void solve (const utility::VectorBase &b, utility::Vector &x)
 Solve the system $ Ax=b $ using the decomposition of A.
const utility::MatrixU (void) const
 Access to the U matrix.
const utility::MatrixV (void) const
 Access to the V matrix.


Detailed Description

Singular Value Decomposition.

Class encapsulating GSL methods for singular value decomposition, SVD.

A = U S V' = (MxN)(NxN)(NxN) = (MxN)

A = Matrix to be decomposed, size MxN
U = Orthogonal matrix, size MxN
S = Diagonal matrix of singular values, size NxN
V = Orthogonal matrix, size NxN


Member Enumeration Documentation

A number of SVD algorithms are implemented in GSL. They have their strengths and weaknesses.

See also:
GSL's SVD documentation.


Constructor & Destructor Documentation

theplu::yat::utility::SVD::SVD ( const utility::Matrix Ain  ) 

Constructs an SVD object using the matrix Ain as only input. The input matrix is copied for further use in the object.

Note:
Number of rows must be equal or larger than number of columns.


Member Function Documentation

void theplu::yat::utility::SVD::decompose ( SVDalgorithm  algo = GolubReinsch  ) 

This function will perform SVD with the method specified by algo.

Exceptions:
GSL_error if the underlying GSL function fails.

const utility::Vector& theplu::yat::utility::SVD::s ( void   )  const

Access to the s vector.

Returns:
A copy of the s vector.
Note:
If decompose() has not been run the outcome of the call is undefined.

void theplu::yat::utility::SVD::solve ( const utility::VectorBase b,
utility::Vector x 
)

Solve the system $ Ax=b $ using the decomposition of A.

Note:
If decompose() has not been run the outcome of the call is undefined.
Exceptions:
GSL_error if the underlying GSL function fails.

const utility::Matrix& theplu::yat::utility::SVD::U ( void   )  const

Access to the U matrix.

Returns:
A copy of the U matrix.
Note:
If decompose() has not been run the outcome of the call is undefined.

const utility::Matrix& theplu::yat::utility::SVD::V ( void   )  const

Access to the V matrix.

Returns:
A copy of the V matrix.
Note:
If decompose() has not been run the outcome of the call is undefined.


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

Generated on Mon Nov 7 02:25:53 2011 for yat by  doxygen 1.5.9