Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

linalg::SVD Class Reference

#include <svd.h>

Collaboration diagram for linalg::SVD:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SVD (const Matrix &A)
void cut_off (const double min_sig)
const Matrixq_U (void) const
const Matrixq_V (void) const
const Vectorq_sig (void) const
 operator MinMax (void) const
double q_cond_number (void) const
void info (void) const

Private Member Functions

double left_householder (Matrix &A, const int i)
double right_householder (Matrix &A, const int i)
double bidiagonalize (Vector &super_diag, const Matrix &__A)
void rotate (Matrix &U, const int i, const int j, const double cos_ph, const double sin_ph)
void rip_through (Vector &super_diag, const int k, const int l, const double eps)
int get_submatrix_to_work_on (Vector &super_diag, const int k, const double eps)
void diagonalize (Vector &super_diag, const double eps)

Private Attributes

const int M
const int N
Matrix U
Matrix V
Vector sig

Constructor & Destructor Documentation

linalg::SVD::SVD const Matrix A  ) 
 

Definition at line 490 of file svd.cpp.

References linalg::_error(), bidiagonalize(), diagonalize(), linalg::Matrix::info(), M, N, U, linalg::Matrix::unit_matrix(), and V.

Here is the call graph for this function:


Member Function Documentation

double linalg::SVD::bidiagonalize Vector super_diag,
const Matrix __A
[private]
 

Definition at line 269 of file svd.cpp.

References left_householder(), linalg::max(), linalg::DimSpec::q_ncols(), linalg::DimSpec::q_nrows(), REAL, linalg::Matrix::resize_to(), right_householder(), and sig.

Referenced by SVD().

Here is the call graph for this function:

void linalg::SVD::cut_off const double  min_sig  ) 
 

void linalg::SVD::diagonalize Vector super_diag,
const double  eps
[private]
 

Definition at line 417 of file svd.cpp.

References linalg::AREALStreamIn::eof(), linalg::AREALStreamOut::get(), get_submatrix_to_work_on(), REAL, rotate(), sig, U, and V.

Referenced by SVD().

Here is the call graph for this function:

int linalg::SVD::get_submatrix_to_work_on Vector super_diag,
const int  k,
const double  eps
[inline, private]
 

Definition at line 402 of file svd.cpp.

References rip_through(), and sig.

Referenced by diagonalize().

Here is the call graph for this function:

void linalg::SVD::info void   )  const
 

Definition at line 514 of file svd.cpp.

References linalg::Matrix::is_valid(), M, linalg::message(), N, and U.

Here is the call graph for this function:

double linalg::SVD::left_householder Matrix A,
const int  i
[inline, private]
 

Definition at line 104 of file svd.cpp.

References linalg::IRange::from(), linalg::AREALStrideStreamOut::get(), linalg::DimSpec::q_col_lwb(), REAL, linalg::AREALStrideStreamIn::rewind(), linalg::sqr(), and U.

Referenced by bidiagonalize().

Here is the call graph for this function:

linalg::SVD::operator MinMax void   )  const
 

Definition at line 521 of file svd.cpp.

References linalg::AREALStreamIn::eof(), linalg::AREALStreamIn::get(), and sig.

Here is the call graph for this function:

double linalg::SVD::q_cond_number void   )  const
 

Definition at line 531 of file svd.cpp.

const Vector& linalg::SVD::q_sig void   )  const [inline]
 

Definition at line 72 of file svd.h.

Referenced by linalg::SVD_inv_mult::fill_in().

const Matrix& linalg::SVD::q_U void   )  const [inline]
 

Definition at line 70 of file svd.h.

Referenced by linalg::SVD_inv_mult::fill_in().

const Matrix& linalg::SVD::q_V void   )  const [inline]
 

Definition at line 71 of file svd.h.

Referenced by linalg::SVD_inv_mult::fill_in().

double linalg::SVD::right_householder Matrix A,
const int  i
[inline, private]
 

Definition at line 206 of file svd.cpp.

References linalg::AREALStrideStreamIn::eof(), linalg::IRange::from(), linalg::AREALStrideStreamOut::get(), linalg::AREALStrideStreamOut::peek(), linalg::DimSpec::q_row_lwb(), REAL, linalg::AREALStrideStreamIn::rewind(), linalg::sqr(), and V.

Referenced by bidiagonalize().

Here is the call graph for this function:

void linalg::SVD::rip_through Vector super_diag,
const int  k,
const int  l,
const double  eps
[inline, private]
 

Definition at line 371 of file svd.cpp.

References rotate(), sig, and U.

Referenced by get_submatrix_to_work_on().

Here is the call graph for this function:

void linalg::SVD::rotate Matrix U,
const int  i,
const int  j,
const double  cos_ph,
const double  sin_ph
[inline, private]
 

Definition at line 342 of file svd.cpp.

References linalg::AREALStreamIn::eof(), linalg::AREALStreamOut::get(), and REAL.

Referenced by diagonalize(), and rip_through().

Here is the call graph for this function:


Member Data Documentation

const int linalg::SVD::M [private]
 

Definition at line 41 of file svd.h.

Referenced by info(), and SVD().

const int linalg::SVD::N [private]
 

Definition at line 41 of file svd.h.

Referenced by info(), and SVD().

Vector linalg::SVD::sig [private]
 

Definition at line 44 of file svd.h.

Referenced by bidiagonalize(), diagonalize(), get_submatrix_to_work_on(), operator MinMax(), and rip_through().

Matrix linalg::SVD::U [private]
 

Definition at line 42 of file svd.h.

Referenced by diagonalize(), info(), left_householder(), rip_through(), and SVD().

Matrix linalg::SVD::V [private]
 

Definition at line 43 of file svd.h.

Referenced by diagonalize(), right_householder(), and SVD().


The documentation for this class was generated from the following files:
Generated on Wed Dec 15 21:22:12 2004 for vuVolume by  doxygen 1.3.9.1