Thibault Barnouin Optimization Method Algorithm
costfunctions.h
Go to the documentation of this file.
1 #ifndef COSTFUNCTIONS_H
2 #define COSTFUNCTIONS_H
3 
4 #include<vector>
5 
6 /*
7  * Cost Functions
8  */
9 
11  public:
12  //Virtual Constructor & Destructor for any cost function
15  virtual ~CostFunction(){};
16  //Virtual getter for the values of any cost function
17  virtual double get() const = 0;
18 };
19 
20 /*
21  * Least squared cost
22  */
23 
24 class Khi2 : public CostFunction{
25  public:
26  //Constructor & Destructor for a Khi2 type cost
27  Khi2();
28  Khi2(const Khi2&);
29  Khi2(std::vector<std::vector<double>>,std::vector<std::vector<double>>);
30  ~Khi2(){};
31  //Set new data sets
32  void setData(std::vector<std::vector<double>>,std::vector<std::vector<double>>);
33  //Get the value of this cost
34  double get() const;
35  private:
36  std::vector<std::vector<double>> k_exp;
37  std::vector<std::vector<double>> k_mod;
38 };
39 
40 /*
41  * Total distance
42  */
43 
44 class Distance : public CostFunction{
45  public:
46  //Constructor & Destructor for a Distance type cost
47  Distance();
48  Distance(const Distance&);
49  Distance(std::vector<std::vector<double>>,std::vector<int>);
50  ~Distance(){};
51  //Set new data sets
52  void setData(std::vector<std::vector<double>>,std::vector<int>);
53  //Get the value of this cost
54  double get() const;
55  private:
56  std::vector<std::vector<double>> d_pos;
57  std::vector<int> d_ord;
58 };
59 
60 #endif
Khi2
Definition: costfunctions.h:24
Khi2::setData
void setData(std::vector< std::vector< double >>, std::vector< std::vector< double >>)
Definition: costfunctions.cpp:20
Distance
Definition: costfunctions.h:44
Khi2::~Khi2
~Khi2()
Definition: costfunctions.h:30
CostFunction::~CostFunction
virtual ~CostFunction()
Definition: costfunctions.h:15
CostFunction
Definition: costfunctions.h:10
Distance::~Distance
~Distance()
Definition: costfunctions.h:50
CostFunction::CostFunction
CostFunction(const CostFunction &)
Definition: costfunctions.h:14
Distance::setData
void setData(std::vector< std::vector< double >>, std::vector< int >)
Definition: costfunctions.cpp:49
Khi2::Khi2
Khi2()
Definition: costfunctions.cpp:9
CostFunction::get
virtual double get() const =0
Distance::Distance
Distance()
Definition: costfunctions.cpp:38
CostFunction::CostFunction
CostFunction()
Definition: costfunctions.h:13
Khi2::get
double get() const
Definition: costfunctions.cpp:25
Distance::get
double get() const
Definition: costfunctions.cpp:54