OpenMD  2.5
Molecular Dynamics in the Open
JAMA::SVD< Real > Class Template Reference

#include <SVD.hpp>

Public Member Functions

 SVD (const DynamicRectMatrix< Real > &Arg)
 
void getU (DynamicRectMatrix< Real > &A)
 
void getV (DynamicRectMatrix< Real > &A)
 
void getSingularValues (DynamicVector< Real > &x)
 
void getS (DynamicRectMatrix< Real > &A)
 
Real norm2 ()
 
Real cond ()
 
int rank ()
 

Private Attributes

DynamicRectMatrix< Real > U
 
DynamicRectMatrix< Real > V
 
DynamicVector< Real > s
 
int m
 
int n
 

Detailed Description

template<class Real>
class JAMA::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 34 of file SVD.hpp.

Constructor & Destructor Documentation

◆ SVD()

template<class Real>
JAMA::SVD< Real >::SVD ( const DynamicRectMatrix< Real > &  Arg)
inline

Member Function Documentation

◆ cond()

template<class Real>
Real JAMA::SVD< Real >::cond ( )
inline

Two norm of condition number (max(S)/min(S))

Definition at line 500 of file SVD.hpp.

◆ getS()

template<class Real>
void JAMA::SVD< Real >::getS ( DynamicRectMatrix< Real > &  A)
inline

Return the diagonal matrix of singular values

Returns
S

Definition at line 484 of file SVD.hpp.

◆ getSingularValues()

template<class Real>
void JAMA::SVD< Real >::getSingularValues ( DynamicVector< Real > &  x)
inline

Return the one-dimensional array of singular values

Definition at line 477 of file SVD.hpp.

Referenced by OpenMD::MolecularRestraint::calcForce(), OpenMD::RMSD::calculate_rmsd(), and OpenMD::RMSD::optimal_superposition().

◆ getU()

template<class Real>
void JAMA::SVD< Real >::getU ( DynamicRectMatrix< Real > &  A)
inline

◆ getV()

template<class Real>
void JAMA::SVD< Real >::getV ( DynamicRectMatrix< Real > &  A)
inline

◆ norm2()

template<class Real>
Real JAMA::SVD< Real >::norm2 ( )
inline

Two norm (max(S))

Definition at line 495 of file SVD.hpp.

◆ rank()

template<class Real>
int JAMA::SVD< Real >::rank ( )
inline

Effective numerical matrix rank

Returns
Number of nonnegligible singular values.

Definition at line 507 of file SVD.hpp.

Member Data Documentation

◆ m

template<class Real>
int JAMA::SVD< Real >::m
private

Definition at line 39 of file SVD.hpp.

◆ n

template<class Real>
int JAMA::SVD< Real >::n
private

Definition at line 39 of file SVD.hpp.

◆ s

template<class Real>
DynamicVector<Real> JAMA::SVD< Real >::s
private

Definition at line 38 of file SVD.hpp.

◆ U

template<class Real>
DynamicRectMatrix<Real> JAMA::SVD< Real >::U
private

Definition at line 37 of file SVD.hpp.

◆ V

template<class Real>
DynamicRectMatrix<Real> JAMA::SVD< Real >::V
private

Definition at line 37 of file SVD.hpp.


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