1 |
#ifndef _MINIMIZERBASE_H_
|
2 |
#define _MINIMIZERBASE_H_
|
3 |
|
4 |
#include <string>
|
5 |
|
6 |
#include "MinimizerParameterSet.hpp"
|
7 |
|
8 |
using namespace std;
|
9 |
|
10 |
class MinimizerBase{
|
11 |
public:
|
12 |
|
13 |
virtual void Init() = 0;
|
14 |
virtual void Minimize() = 0;
|
15 |
virtual int isConvergenceAchieved() = 0;
|
16 |
|
17 |
virtual bool isSolvable() = 0;
|
18 |
|
19 |
virtual void printMinizerInfo() = 0;
|
20 |
|
21 |
virtual MinimizerParameterSet* creatParameterSet() = 0;
|
22 |
|
23 |
void setInitX(vector<double>& x) { initX = x;}
|
24 |
|
25 |
void setMinX(vector<double>& x) { minX = x;}
|
26 |
vector<double> getMinX() { return minX;}
|
27 |
|
28 |
void setPrecMinX(vector<double>& x) { prevMinX = x;}
|
29 |
vector<double> getPrevMinX() {return prevMinX;}
|
30 |
|
31 |
int getMinimizationStatus() {return minimizationStatus;}
|
32 |
|
33 |
const string getName() {return minimizerName;}
|
34 |
void setName(const string& name) { minimizerName = name;}
|
35 |
|
36 |
|
37 |
protected:
|
38 |
|
39 |
MinimizerParameterSet* paramSet;
|
40 |
|
41 |
int minimizationStatus;
|
42 |
|
43 |
string minimizerName;
|
44 |
|
45 |
// Coordinates yielding the minimum value of the function.
|
46 |
vector<double> minX;
|
47 |
|
48 |
// Vector holding the previous point.
|
49 |
vector<double> prevMinX;
|
50 |
};
|
51 |
#endif
|