|
ConicBundle
|
Abstract interface to Lanzcos methods for computing a few extremal eigenvalues given via a Lanczosmatrix. More...
#include <lanczos.hxx>
Public Member Functions | |
| virtual int | compute (const Lanczosmatrix *bigmat, Matrix &eigval, Matrix &eigvec, Integer nreig, Integer in_blocksz=0, Integer maxcol=0)=0 |
| compute the nreig maximum eigenvalues of the matrix specified by bigmat More... | |
Set and Get Parameters | |
There should be no need to set any parameters, default values should be available and reasonable. | |
| virtual void | set_mineig (Real ie)=0 |
| set a guess on the value of the smallest | |
| virtual void | set_maxmult (Integer mop)=0 |
| set an upper bound on the number of matrix vector multiplications | |
| virtual void | set_maxiter (Integer mi)=0 |
| set an upper bpound on the number of restarts | |
| virtual void | set_relprec (Real relprec)=0 |
| set relative precision requirement for termination | |
| virtual void | set_nblockmult (Integer nb)=0 |
| set maximum number of block multiplications within one restart | |
| virtual void | set_nchebit (Integer nc)=0 |
| set the degree of the Chebycheff polynomial for the spectral transformation | |
| virtual void | enable_stop_above (Real ub)=0 |
| allow the algorithm to stop as soon as the maximum Ritz value exceeds the value ub | |
| virtual void | disable_stop_above ()=0 |
| do not allow premature termination as in enable_stop_above() | |
| virtual void | set_retlanvecs (Integer nl)=0 |
| set an upper bound on the number of vectors returned in get_lanczosvecs() | |
| virtual int | get_lanczosvecs (Matrix &val, Matrix &vecs) const =0 |
| returns the first neigfound+blocksz Lanczos vectors and their Ritz values of the last call | |
| virtual Real | get_relprec (void)=0 |
| returns current relative precision requirement | |
| virtual int | get_err () const =0 |
| returns the error code of the last call | |
| virtual Integer | get_iter () const =0 |
| returns the number of restarts of the last call | |
| virtual Integer | get_nmult () const =0 |
| returns the number of matrix-vector multiplications of the last call | |
Input/Output | |
| virtual void | set_out (std::ostream *out=0, int print_level=1)=0 |
| set output stream and level of detail of log output (for debugging) | |
| virtual std::ostream & | save (std::ostream &out) const =0 |
| save all data in out so that the current state can be recovered completely by restore() | |
| virtual std::istream & | restore (std::istream &in)=0 |
| restore the data from in where it was stored by save() | |
Abstract interface to Lanzcos methods for computing a few extremal eigenvalues given via a Lanczosmatrix.
|
pure virtual |
compute the nreig maximum eigenvalues of the matrix specified by bigmat
| bigmat | the symmetric matrix |
| eigval | on output: converged eigenvalues |
| eigvec | on output: eigenvectors to eigval, on input (optional): starting vectors |
| nreig | number of maximal eigenvalues to be computed |
| in_blocksz | size of a block, if block Lanczos is used |
| maxcol | maximum number of columns that may be used |
Implemented in CH_Matrix_Classes::LanczMaxEig, and CH_Matrix_Classes::Lanczpol.
1.8.13