idol
A C++ Framework for Optimization
Loading...
Searching...
No Matches
TempVar.h
1//
2// Created by henri on 16/09/22.
3//
4
5#ifndef OPTIMIZE_TEMPVAR_H
6#define OPTIMIZE_TEMPVAR_H
7
8#include "idol/mixed-integer/modeling/expressions/LinExpr.h"
9#include "idol/mixed-integer/modeling/constraints/Ctr.h"
10#include "idol/mixed-integer/modeling/Types.h"
11
12namespace idol {
13 class TempVar;
14}
15
32 double m_lb = 0.;
33 double m_ub = Inf;
34 VarType m_type = Continuous;
35 double m_obj = 0.;
36 LinExpr<Ctr> m_column;
37public:
43 TempVar() = default;
44
54 TempVar(double t_lb, double t_ub, VarType t_type, double t_obj, LinExpr<Ctr>&& t_column) : m_lb(t_lb), m_ub(t_ub), m_type(t_type), m_obj(t_obj), m_column(std::move(t_column)) {}
55
60 TempVar(TempVar&& t_src) = default;
61
66 TempVar(const TempVar& t_src) : m_lb(t_src.m_lb), m_ub(t_src.m_ub), m_type(t_src.m_type), m_obj(t_src.m_obj), m_column(t_src.m_column) {}
67
72 TempVar& operator=(TempVar&& t_src) = default;
73
78 TempVar& operator=(const TempVar& t_src) = default;
79
84 [[nodiscard]] const LinExpr<Ctr>& column() const { return m_column; }
85
90 LinExpr<Ctr>& column() { return m_column; }
91
96 [[nodiscard]] double lb() const { return m_lb; }
97
102 void set_lb(double t_lb) { m_lb = t_lb; }
103
108 [[nodiscard]] double ub() const { return m_ub; }
109
114 void set_ub(double t_ub) { m_ub = t_ub; }
115
120 [[nodiscard]] VarType type() const { return m_type; }
121
126 void set_type(VarType t_type) {
127 if (t_type < 0 || t_type > 2) {
128 throw Exception("Variable type out of bounds.");
129 }
130 m_type = t_type;
131 }
132
133 double obj() const { return m_obj; }
134
135 void set_obj(double t_obj) { m_obj = t_obj; }
136};
137
138#endif //OPTIMIZE_TEMPVAR_H
TempVar & operator=(TempVar &&t_src)=default
void set_lb(double t_lb)
Definition TempVar.h:102
void set_type(VarType t_type)
Definition TempVar.h:126
TempVar()=default
VarType type() const
Definition TempVar.h:120
double ub() const
Definition TempVar.h:108
TempVar(double t_lb, double t_ub, VarType t_type, double t_obj, LinExpr< Ctr > &&t_column)
Definition TempVar.h:54
void set_ub(double t_ub)
Definition TempVar.h:114
TempVar(TempVar &&t_src)=default
double lb() const
Definition TempVar.h:96
TempVar(const TempVar &t_src)
Definition TempVar.h:66
LinExpr< Ctr > & column()
Definition TempVar.h:90
const LinExpr< Ctr > & column() const
Definition TempVar.h:84
TempVar & operator=(const TempVar &t_src)=default