00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef Minimizer_H
00023 #define Minimizer_H
00024
00025 #include "matrix.h"
00026
00027
00028
00029
00030
00031
00032 namespace matvec {
00033
00034 class Minimizer {
00035 private:
00036 int prtlevel;
00037 void min_first_dir(const int j,const int nits,double* d2,double* x1,
00038 double f1, const int fk,Vector<double> &x,const int n,
00039 const Matrix<double> &v, Vector<double> &w,Matrix<double> &q01);
00040 void quadratic(Vector<double> &x,const int n,const Matrix<double> &v,
00041 Vector<double> &w,Matrix<double> &q01);
00042 protected:
00043 int minfun_indx;
00044
00045 public:
00046 Minimizer(void) {prtlevel = 2; minfun_indx = 0;}
00047 virtual ~Minimizer(void) {;}
00048
00049 virtual double minfun(const Vector<double> &x, const int n) = 0;
00050 void min_prtlevel(const int pl) {prtlevel = pl;}
00051 double praxis(Vector<double> &x,const int n, int& maxfun,
00052 const double tol=1.0e-16,
00053 const double epsilon=1.0e-8,const int pl=2);
00054 };
00055 }
00056 #endif