vnl_sparse_symmetric_eigensystem Class Reference

#include <vnl_sparse_symmetric_eigensystem.h>

List of all members.


Detailed Description

Find the eigenvalues of a sparse symmetric matrix.

Solve the eigenproblem $A x = \lambda x$, with $A$ symmetric and sparse. The block Lanczos algorithm is used to allow the recovery of a number of eigenvalue/eigenvector pairs from either end of the spectrum, to a required accuracy.

Uses the dnlaso routine from the LASO package of netlib.

Definition at line 29 of file vnl_sparse_symmetric_eigensystem.h.


Public Member Functions

 vnl_sparse_symmetric_eigensystem ()
 ~vnl_sparse_symmetric_eigensystem ()
int CalculateNPairs (vnl_sparse_matrix< double > &M, int n, bool smallest=true, long nfigures=10)
 Here is where the fortran converted code gets called.
vnl_vector< double > get_eigenvector (int i) const
 Return a calculated eigenvector.
double get_eigenvalue (int i) const
int CalculateProduct (int n, int m, const double *p, double *q)
 Callback from solver to calculate the product A p.
int SaveVectors (int n, int m, const double *q, int base)
 Callback to store vectors for dnlaso.
int RestoreVectors (int n, int m, double *q, int base)
 Callback to restore vectors for dnlaso.

Protected Attributes

int nvalues
vnl_vector< double > * vectors
double * values
vnl_sparse_matrix< double > * mat
vcl_vector< double * > temp_store

Constructor & Destructor Documentation

vnl_sparse_symmetric_eigensystem::vnl_sparse_symmetric_eigensystem (  ) 

Definition at line 59 of file vnl_sparse_symmetric_eigensystem.cxx.

vnl_sparse_symmetric_eigensystem::~vnl_sparse_symmetric_eigensystem (  ) 

Definition at line 64 of file vnl_sparse_symmetric_eigensystem.cxx.


Member Function Documentation

int vnl_sparse_symmetric_eigensystem::CalculateNPairs ( vnl_sparse_matrix< double > &  M,
int  n,
bool  smallest = true,
long  nfigures = 10 
)

Here is where the fortran converted code gets called.

The sparse matrix M is assumed to be symmetric. The n smallest eigenvalues and their corresponding eigenvectors are calculated if smallest is true (the default). Otherwise the n largest eigenpairs are found. The accuracy of the eigenvalues is to nfigures decimal digits. Returns 0 if successful, non-zero otherwise.

Definition at line 80 of file vnl_sparse_symmetric_eigensystem.cxx.

vnl_vector< double > vnl_sparse_symmetric_eigensystem::get_eigenvector ( int  i  )  const

Return a calculated eigenvector.

Definition at line 265 of file vnl_sparse_symmetric_eigensystem.cxx.

double vnl_sparse_symmetric_eigensystem::get_eigenvalue ( int  i  )  const

Definition at line 271 of file vnl_sparse_symmetric_eigensystem.cxx.

int vnl_sparse_symmetric_eigensystem::CalculateProduct ( int  n,
int  m,
const double *  p,
double *  q 
)

Callback from solver to calculate the product A p.

Definition at line 206 of file vnl_sparse_symmetric_eigensystem.cxx.

int vnl_sparse_symmetric_eigensystem::SaveVectors ( int  n,
int  m,
const double *  q,
int  base 
)

Callback to store vectors for dnlaso.

Definition at line 218 of file vnl_sparse_symmetric_eigensystem.cxx.

int vnl_sparse_symmetric_eigensystem::RestoreVectors ( int  n,
int  m,
double *  q,
int  base 
)

Callback to restore vectors for dnlaso.

Definition at line 243 of file vnl_sparse_symmetric_eigensystem.cxx.


Member Data Documentation

Definition at line 51 of file vnl_sparse_symmetric_eigensystem.h.

Definition at line 52 of file vnl_sparse_symmetric_eigensystem.h.

Definition at line 53 of file vnl_sparse_symmetric_eigensystem.h.

Definition at line 55 of file vnl_sparse_symmetric_eigensystem.h.

vcl_vector<double*> vnl_sparse_symmetric_eigensystem::temp_store [protected]

Definition at line 57 of file vnl_sparse_symmetric_eigensystem.h.


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

Generated on Sun Nov 22 06:17:28 2009 for core/vnl by  doxygen 1.5.5