lpinterface
 All Classes Namespaces Files Functions Variables Enumerations Enumerator
lpinterface.hpp
1 #ifndef LPINTERFACE_LPINTERFACE_H
2 #define LPINTERFACE_LPINTERFACE_H
3 
4 #include <vector>
5 
6 #include "common.hpp"
7 #include "data_objects.hpp"
8 #include "errors.hpp"
9 #include "lp.hpp"
10 #include "parameter_type.hpp"
11 
12 namespace lpint {
13 
23  public:
24  LinearProgramSolver() = default;
25  LinearProgramSolver(const LinearProgramSolver&) = default;
27  LinearProgramSolver& operator=(const LinearProgramSolver&) = default;
28  LinearProgramSolver& operator=(LinearProgramSolver&&) = default;
29 
30  virtual ~LinearProgramSolver() = default;
31 
35  virtual const ILinearProgramHandle& linear_program() const = 0;
36 
40  virtual ILinearProgramHandle& linear_program() = 0;
41 
49  virtual bool parameter_supported(const Param param) const = 0;
50 
58  virtual void set_parameter(const Param param, const int value) = 0;
59 
67  virtual void set_parameter(const Param param, const double value) = 0;
68 
72  virtual Status solve() = 0;
73 
77  virtual Status solution_status() const = 0;
78 
84  virtual const Solution<double>& get_solution() const = 0;
85 };
86 
87 } // namespace lpint
88 
89 #endif // LPINTERFACE_LPINTERFACE_H
virtual bool parameter_supported(const Param param) const =0
Check whether the solver backend supports the given parameter.
Interface representing linear program formulation. This interface represents linear programs of the f...
Definition: lp.hpp:53
virtual Status solve()=0
Solve the linear program.
virtual Status solution_status() const =0
Query the LP solver for the solution status.
virtual const ILinearProgramHandle & linear_program() const =0
Get immutable access to the underlying Linear Program object.
virtual const Solution< double > & get_solution() const =0
Get the solution of the linear program. This method will fail with LpError::ModelNotsolvedError if th...
Param
Enum class representing linear solver parameters. The linear solvers this library interfaces with hav...
Definition: parameter_type.hpp:12
virtual void set_parameter(const Param param, const int value)=0
Set an integer-valued parameter in the internal LP solver. This method will fail with LpError::Unsupp...
Status
Enum class representing LP solution status.
Definition: errors.hpp:129
Interface to internal linear program solver. This interface is the most important interface within lp...
Definition: lpinterface.hpp:22