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