19 mutable std::optional<Annotation<unsigned int>> m_stages;
20 Map<Ctr, LinExpr<Var, LinExpr<Var>>> m_uncertain_mat_coeff;
23 std::unique_ptr<Model> m_uncertainty_set;
25 explicit Description(
const Model& t_uncertainty_set) : m_uncertainty_set(t_uncertainty_set.clone()) {}
31 void set_stage(
const Var& t_var,
unsigned int t_stage);
33 unsigned int stage(
const Var& t_var)
const;
35 unsigned int stage(
const Ctr& t_var)
const;
37 const Model& uncertainty_set()
const {
return *m_uncertainty_set; }
41 auto uncertain_rhs()
const {
return m_uncertain_rhs; }
43 auto uncertain_obj()
const {
return m_uncertain_obj; }
53 void set_uncertain_mat_coeff(
const Ctr& t_ctr,
const Var& t_var,
const LinExpr<Var>& t_coeff) {
54 m_uncertain_mat_coeff[t_ctr].set(t_var, t_coeff);
58 m_uncertain_rhs.set(t_ctr, t_rhs);
62 m_uncertain_obj.set(t_var, t_obj);
66 m_uncertain_obj = std::move(t_obj);
70 m_uncertain_rhs = std::move(t_rhs);
75 const Model& m_deterministic_model;
79 [[nodiscard]]
const Description& description()
const {
return m_description; }
81 [[nodiscard]]
const Model& deterministic_model()
const {
return m_deterministic_model; }