Developer Documentation
Centre for Vision, Speech & Signal Processing
USER IN NAMESPACE AMMA TREE ROOT AMMA SEARCH AMMA HOME
 

  PUBLIC
SVDC::SVDC(const MatrixC &)
SVDC::cut_off(const double)
SVDC::GetU(void) const
SVDC::GetV(void) const
SVDC::GetSig(void) const
SVDC::left_hausholder(MatrixC &,const int)
SVDC::right_hausholder(MatrixC &,const int)
SVDC::bidiagonalize(VectorC &,const MatrixC &)
SVDC::rotate(MatrixC &,const int,const int,const double,const double)
SVDC::rip_through(VectorC &,const int,const int,const double)
SVDC::get_submatrix_to_work_on(VectorC &,const int,const double)
SVDC::diagonalize(VectorC &,const double)
SVDC
 
Singular Value Decomposition --- Don;t use!!!!!!
 
include "amma/SVD.hh"
User Level:Default
Library:Mlalg
Example:exEndPoint.cc
Section:Basic Types.Numerical Geometry.N-D
In Scope:std

Comments:
This is an attempt to replace the numerical recipies code. its is not as good, so it is suggested you use the routine in MatrixC. A class that holds U,V,Sig - the singular value decomposition of a matrix

Variables:
const int M;
Dimensions of the problem (M>=N)

const int N;
Dimensions of the problem (M>=N)

MatrixC U;
M*M orthogonal matrix U

MatrixC V;
N*N orthogonal matrix V

VectorC sig;
Vector(1:N) of N onordered singular values Internal procedures used in SVD

Methods:
SVDC(const MatrixC & A)
Decompose Matrix A, of M rows and N columns, M>=N

void cut_off(const double min_sig)
Regularization: make all sig(i) that are smaller than min_sig exactly zeros Inquiries

const MatrixC & GetU(void) const
Access U matrix.

const MatrixC & GetV(void) const
Access V matrix.

const VectorC & GetSig(void) const
operator MinMax(void) const; // Return min and max singular values double q_cond_number(void) const; sig_max/sig_min

double left_hausholder(MatrixC & A,const int i)

double right_hausholder(MatrixC & A,const int i)

double bidiagonalize(VectorC & super_diag,const MatrixC & _A)

void rotate(MatrixC & U,const int i,const int j,const double cos_ph,const double sin_ph)

void rip_through(VectorC & super_diag,const int k,const int l,const double eps)

int get_submatrix_to_work_on(VectorC & super_diag,const int k,const double eps)

void diagonalize(VectorC & super_diag,const double eps)


Programmer:Charles Galambos, Documentation by CxxDoc: Tue Mar 20 10:49:27 2001