5#ifndef OPTIMIZE_TEMPVAR_H
6#define OPTIMIZE_TEMPVAR_H
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"
34 VarType m_type = Continuous;
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)) {}
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) {}
96 [[nodiscard]]
double lb()
const {
return m_lb; }
102 void set_lb(
double t_lb) { m_lb = t_lb; }
108 [[nodiscard]]
double ub()
const {
return m_ub; }
114 void set_ub(
double t_ub) { m_ub = t_ub; }
120 [[nodiscard]] VarType
type()
const {
return m_type; }
127 if (t_type < 0 || t_type > 2) {
128 throw Exception(
"Variable type out of bounds.");
133 double obj()
const {
return m_obj; }
135 void set_obj(
double t_obj) { m_obj = t_obj; }
TempVar & operator=(TempVar &&t_src)=default
void set_type(VarType t_type)
TempVar(double t_lb, double t_ub, VarType t_type, double t_obj, LinExpr< Ctr > &&t_column)
TempVar(TempVar &&t_src)=default
TempVar(const TempVar &t_src)
LinExpr< Ctr > & column()
const LinExpr< Ctr > & column() const
TempVar & operator=(const TempVar &t_src)=default