lanczos.hxx

Go to the documentation of this file.
00001 
00002 
00003 #ifndef CH_MATRIX_CLASSES__LANCZOS_HXX
00004 #define CH_MATRIX_CLASSES__LANCZOS_HXX
00005 
00014 #ifndef CH_MATRIX_CLASSES__MATRIX_HXX
00015 #include "matrix.hxx"
00016 #endif
00017 
00018 namespace CH_Matrix_Classes {
00019 
00024 
00033   class Lanczosmatrix
00034   {
00035   public:
00036     virtual ~Lanczosmatrix(){}
00037 
00039     virtual Integer lanczosdim() const=0;
00040   
00042     virtual Integer lanczosflops() const=0;
00043 
00045     virtual int lanczosmult(const Matrix& A,Matrix& B) const=0;
00046   };
00047 
00048 
00053   class Lanczos
00054   {
00055   public:
00057     virtual ~Lanczos(){}
00058     
00065   
00067     virtual void set_mineig(Real ie)=0;
00069     virtual void set_maxmult(Integer mop)=0;
00071     virtual void set_maxiter(Integer mi)=0;
00073     virtual void set_relprec(Real relprec)=0; 
00075     virtual void set_nblockmult(Integer nb)=0;
00077     virtual void set_nchebit(Integer nc)=0;
00079     virtual void enable_stop_above(Real ub)=0;
00081     virtual void disable_stop_above()=0;
00082 
00084     virtual void set_retlanvecs(Integer nl)=0; 
00085 
00087     virtual int get_lanczosvecs(Matrix& val,Matrix& vecs) const=0;
00088     
00090     virtual Real get_relprec(void)=0;
00091 
00093     virtual int get_err() const=0;
00094     
00096     virtual Integer get_iter() const=0;
00097     
00099     virtual Integer get_nmult() const=0;
00100 
00102     
00104     virtual int compute(const Lanczosmatrix* bigmat, 
00105                         Matrix& eigval,        
00106                         Matrix& eigvec,        
00107                         Integer nreig,         
00108                         Integer in_blocksz=0,  
00109                         Integer maxcol=0       
00110                         )=0;
00111 
00116   
00118     virtual void set_out(std::ostream* out=0,int print_level=1)=0;
00119 
00121     virtual std::ostream& save(std::ostream& out) const =0;
00122 
00124     virtual std::istream& restore(std::istream& in) =0;
00125 
00127   };
00128 
00130   
00131 }
00132 
00133 #endif
00134 

Generated on Tue May 3 16:52:53 2011 for ConicBundle by  doxygen 1.5.6