CVariableMetric.h

Go to the documentation of this file.
00001 /* This class implements the Variable Metric method as described in section 6.22.8 p 219 of Inverse Problem Theory
00002  * by Albert Tarantola */
00003  
00004  /* Version 0.1                         Last Modified 7/11/05 */
00005 
00006 #ifndef CVARIABLEMETRIC_H_
00007 #define CVARIABLEMETRIC_H_
00008 
00009 #include "CGeneralLinInversion.h"
00010 #include <boost/numeric/ublas/vector.hpp>
00011 #include <boost/numeric/ublas/matrix.hpp>
00012 
00013 namespace ublas = boost::numeric::ublas;
00014 class CVariableMetric : public CGeneralLinInversion
00015 {
00016 private:
00017         bool FirstIteration;
00018         gplib::rmat DataCovarInv;
00019         gplib::rmat ModelCovarInv;
00020         gplib::rmat F;
00021         gplib::rmat Hinv;
00022         gplib::rmat deltaF;
00023         gplib::rvec gamma;
00024         gplib::rvec CMu;
00025         gplib::rvec oldgamma;
00026         gplib::rvec oldmodel;
00027         gplib::rvec phi;
00028         gplib::rvec b;
00029         gplib::rvec deltagamma;
00030         gplib::rvec deltamodel;
00031         gplib::rvec deltamodelF;
00032         gplib::rmat CMGT;
00033         gplib::rmat CDinvG;
00034         gplib::rvec CDMisfit;
00035         double currentiteration;
00036 public:
00037         double Wolfe2Factor;
00038         double currentstepsize;
00039         CVariableMetric(const unsigned int ndatapoints, const unsigned int nmodel);
00040         virtual ~CVariableMetric();
00041         void virtual Prepare();
00042         void virtual DoIteration(); //This is the main method to be implemented
00043 };
00044 
00045 #endif /*CVARIABLEMETRIC_H_*/

Generated on Tue Aug 4 16:04:06 2009 for GPLIB++ by  doxygen 1.5.8