29    const Model& m_primal;
 
   33    std::function<bool(
const Var&)> m_primal_variable_indicator;
 
   34    std::function<bool(
const Ctr&)> m_primal_constraint_indicator;
 
   35    std::function<bool(
const QCtr&)> m_primal_qconstraint_indicator;
 
   38    std::vector<std::optional<Var>> m_dual_variables_for_constraints; 
 
   39    std::vector<std::optional<Var>> m_dual_variables_for_qconstraints; 
 
   40    std::vector<std::optional<Var>> m_dual_variables_for_lower_bounds; 
 
   41    std::vector<std::optional<Var>> m_dual_variables_for_upper_bounds; 
 
   42    std::vector<std::optional<std::variant<Ctr, QCtr>>> m_dual_constraints; 
 
   44    [[nodiscard]] 
bool primal_is_a_linear_problem() 
const;
 
   46    void create_dual_variables();
 
   47    [[nodiscard]] std::pair<double, double> bounds_for_dual_variable(idol::CtrType t_type) 
const;
 
   48    void create_dual_constraints();
 
   54              const std::function<
bool(
const Var&)>& t_primal_variable_indicator = [](
const Var&) { 
return true; },
 
   55              const std::function<bool(
const Ctr&)>& t_primal_constraint_indicator = [](
const Ctr&) { 
return true; },
 
   56              const std::function<bool(
const QCtr&)>& t_primal_qconstraint_indicator = [](
const QCtr&) { 
return true; });
 
   59                      const std::function<
bool(
const Var&)>& t_primal_variable_indicator = [](
const Var&) { 
return true; },
 
   60                      const std::function<bool(
const Ctr&)>& t_primal_constraint_indicator = [](
const Ctr&) { 
return true; },
 
   61                      const std::function<bool(
const QCtr&)>& t_primal_qconstraint_indicator = [](
const QCtr&) { 
return true; });
 
   65    void set_prefix(std::string t_prefix) { m_prefix = std::move(t_prefix); }
 
   74    void add_coupling_variables(
Model& t_destination);
 
   75    void add_coupling_constraints(
Model& t_destination);
 
   84    void add_dual_variables(
Model& t_destination);
 
   85    void add_dual_constraints(
Model& t_destination);
 
   86    void add_dual_objective(
Model& t_destination);
 
   94    void add_primal_variables(
idol::Model &t_destination);
 
   95    void add_primal_constraints(
idol::Model &t_destination);
 
   96    void add_primal_objective(
idol::Model &t_destination);
 
  116    [[nodiscard]] 
const Var& get_dual_var(
const Ctr& t_ctr) 
const;
 
  117    [[nodiscard]] 
const Var& get_dual_var_lb(
const Var& t_var) 
const;
 
  118    [[nodiscard]] 
const Var& get_dual_var_ub(
const Var& t_var) 
const;
 
  119    const std::variant<Ctr, QCtr>& get_dual_ctr(
const Var& t_var) 
const;