KrisLibrary  1.0.0
Public Types | Public Member Functions | Public Attributes | List of all members
Math::RobustSVD< T > Class Template Reference

Performs a pre/postconditioned singular value decomposition. More...

#include <SVDecomposition.h>

Public Types

typedef MatrixTemplate< T > MatrixT
 
typedef VectorTemplate< T > VectorT
 
typedef DiagonalMatrixTemplate< T > DiagonalMatrixT
 

Public Member Functions

 RobustSVD (const MatrixT &A)
 
bool set (const MatrixT &A)
 
bool setConditioned (const MatrixT &A)
 
void setIdentity (int m, int n)
 
void setZero (int m, int n)
 
void resize (int m, int n)
 
void clear ()
 
void backSub (const VectorT &b, VectorT &x) const
 
void dampedBackSub (const VectorT &b, T lambda, VectorT &x) const
 
void nullspaceComponent (const VectorT &x, VectorT &xNull) const
 
int getRank () const
 
int getNull () const
 
void getInverse (MatrixT &Ainv) const
 
void getDampedPseudoInverse (MatrixT &Aplus, T lambda) const
 
void getNullspace (MatrixT &N) const
 
void calcConditioning (const MatrixT &A)
 
template<>
bool set (const MatrixT &A)
 
template<>
bool set (const MatrixT &A)
 

Public Attributes

DiagonalMatrixT Pre
 
SVDecomposition< T > svd
 
DiagonalMatrixT Post
 
zeroElementEpsilon
 
bool preMultiply
 
bool postMultiply
 

Detailed Description

template<class T>
class Math::RobustSVD< T >

Performs a pre/postconditioned singular value decomposition.

Performs the SVD on the matrix A' = Pre^-1*A*Post^-1 such that A = Pre*U*W*Vt*Post.

Also zero's out small elements of A' with tolerance zeroElementEpsilon.

See also
SVDecomposition

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