CVariableMetric.h
Go to the documentation of this file.00001
00002
00003
00004
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();
00043 };
00044
00045 #endif