5 * Created by Dario Izzo on 6/4/08.
6 * Copyright 2008 __MyCompanyName__. All rights reserved.
17 //Legacy constructor - when using it, remember than all members must be properly initialised afterwards
19 //Constructor with vector bounds initialisers
20 GOProblem(int dimension
, const std::vector
<double>& lower
, const std::vector
<double>& upper
);
21 //Constructor with array bounds initialisers
22 GOProblem(int dimension
, const double lower
[], const double upper
[]);
23 //Virtual destructor - required because the class contains a pure virtual member function
24 virtual ~GOProblem() { };
26 //Bounds getters and setters (via copy)
27 void getBounds(std::vector
<double>& lower
, std::vector
<double>& upper
) const;
28 void setBounds(const std::vector
<double>& lower
, const std::vector
<double>& upper
);
29 void setBounds(const double lower
[], const double upper
[]); //this requires setDimension to be called first
31 //Bounds geeters and setters via reference
33 const std::vector
<double>& getLB() const { return LB
; }
34 const std::vector
<double>& getUB() const { return UB
; }
36 std::vector
<double>& getLB() { return LB
; }
37 std::vector
<double>& getUB() { return UB
; }
39 //Dimension getter and setter
40 int getDimension() const { return dimension
; };
41 void setDimension(const int D
) { dimension
= D
; };
43 //The objective function - must be implemented in subclasses
44 virtual double objfun(const std::vector
<double>&) = 0;
48 std::vector
<double> LB
;
49 std::vector
<double> UB
;
51 }; //end class GOProblems