|
Developer Documentation |
|
Centre for Vision, Speech & Signal Processing |
|
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)
|
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
|