1 |
tim |
970 |
#ifndef _MINIMIZERBASE_H_
|
2 |
|
|
#define _MINIMIZERBASE_H_
|
3 |
|
|
|
4 |
tim |
1000 |
#include <string>
|
5 |
|
|
|
6 |
|
|
#include "MinimizerParameterSet.hpp"
|
7 |
|
|
|
8 |
|
|
using namespace std;
|
9 |
|
|
|
10 |
tim |
970 |
class MinimizerBase{
|
11 |
|
|
public:
|
12 |
|
|
|
13 |
tim |
987 |
virtual void Init() = 0;
|
14 |
tim |
970 |
virtual void Minimize() = 0;
|
15 |
tim |
1000 |
virtual int isConvergenceAchieved() = 0;
|
16 |
tim |
987 |
|
17 |
tim |
970 |
virtual bool isSolvable() = 0;
|
18 |
|
|
|
19 |
tim |
1000 |
virtual void printMinizerInfo() = 0;
|
20 |
tim |
970 |
|
21 |
tim |
1000 |
virtual MinimizerParameterSet* creatParameterSet() = 0;
|
22 |
|
|
|
23 |
|
|
void setInitX(vector<double>& x) { initX = x;}
|
24 |
tim |
970 |
|
25 |
tim |
1000 |
void setMinX(vector<double>& x) { minX = x;}
|
26 |
|
|
vector<double> getMinX() { return minX;}
|
27 |
tim |
970 |
|
28 |
tim |
1000 |
void setPrecMinX(vector<double>& x) { prevMinX = x;}
|
29 |
|
|
vector<double> getPrevMinX() {return prevMinX;}
|
30 |
tim |
970 |
|
31 |
tim |
1000 |
int getMinimizationStatus() {return minimizationStatus;}
|
32 |
|
|
|
33 |
|
|
const string getName() {return minimizerName;}
|
34 |
|
|
void setName(const string& name) { minimizerName = name;}
|
35 |
|
|
|
36 |
|
|
|
37 |
tim |
970 |
protected:
|
38 |
tim |
1000 |
|
39 |
|
|
MinimizerParameterSet* paramSet;
|
40 |
tim |
970 |
|
41 |
tim |
1000 |
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 |
tim |
970 |
};
|
51 |
|
|
#endif
|