yat  0.13.2pre
Public Types | Public Member Functions | List of all members
theplu::yat::utility::SVD Class Reference

Singular Value Decomposition. More...

#include <yat/utility/SVD.h>

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. More...
 
 ~SVD (void)
 The destructor.
 
void decompose (SVDalgorithm algo=GolubReinsch)
 This function will perform SVD with the method specified by algo. More...
 
const utility::Vectors (void) const
 Access to the s vector. More...
 
void solve (const utility::VectorBase &b, utility::Vector &x)
 Solve the system $ Ax=b $ using the decomposition of A. More...
 
const utility::MatrixU (void) const
 Access to the U matrix. More...
 
const utility::MatrixV (void) const
 Access to the V matrix. More...
 

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_errorif 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_errorif 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 Wed Jan 4 2017 02:23:09 for yat by  doxygen 1.8.5