28 std::list<std::unique_ptr<Callback>> m_callbacks;
31 void* m_cbdata =
nullptr;
32 double m_best_obj = Inf;
33 double m_best_bound = -Inf;
35 struct GurobiTempConstr {
36 std::vector<int> indices;
37 std::vector<double> coefficients;
42 GurobiTempConstr gurobi_temp_constr(
const TempCtr& t_temp_ctr)
const;
46 void add_callback(
Callback* t_callback);
49 friend int idol::impl::grb_callback(GRBmodel *t_model,
void *t_cbdata,
int t_where,
void *t_usrdata);
51 [[nodiscard]]
const Model& original_model()
const override;
52 void add_lazy_cut(
const TempCtr& t_lazy_cut)
override;
53 void add_user_cut(
const TempCtr& t_user_cut)
override;
54 void submit_heuristic_solution(
PrimalPoint t_solution)
override;
55 [[nodiscard]]
PrimalPoint primal_solution()
const override;
56 [[nodiscard]]
const Timer &time()
const override;
57 [[nodiscard]]
double best_obj()
const override;
58 [[nodiscard]]
double best_bound()
const override;
59 void terminate()
override;