Skip to content

Commit 5fe357b

Browse files
committed
added constructors
1 parent c4fb2d9 commit 5fe357b

File tree

2 files changed

+32
-7
lines changed

2 files changed

+32
-7
lines changed

src/mip/HighsMipSolver.cpp

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,24 @@
2727

2828
using std::fabs;
2929

30+
HighsMipSolver::HighsMipSolver(const HighsMipSolver& mip_solver_)
31+
: HighsMipSolver(mip_solver_.callback_, mip_solver_.options_mip_,
32+
mip_solver_.model_) {}
33+
34+
HighsMipSolver::HighsMipSolver(HighsCallback* callback,
35+
const HighsOptions* options, const HighsLp* lp)
36+
: callback_(callback),
37+
options_mip_(options),
38+
model_(lp),
39+
orig_model_(lp),
40+
solution_objective_(kHighsInf),
41+
submip(false),
42+
submip_level(0),
43+
rootbasis(nullptr),
44+
pscostinit(nullptr),
45+
clqtableinit(nullptr),
46+
implicinit(nullptr) {}
47+
3048
HighsMipSolver::HighsMipSolver(HighsCallback& callback,
3149
const HighsOptions& options, const HighsLp& lp,
3250
const HighsSolution& solution, bool submip,
@@ -260,16 +278,16 @@ void HighsMipSolver::run() {
260278

261279
// I'd like to do this, since it extends to multiple workers...
262280
//
263-
// std::vector<HighsMipSolver> worker_mipsolvers;
264-
// worker_mipsolvers.push_back(HighsMipSolver{*callback_, *options_mip_,
265-
// *model_,
266-
// null_solution, false, 0});
267-
// HighsMipSolver& worker_mipsolver = worker_mipsolvers[0];
281+
std::vector<HighsMipSolver> worker_mipsolvers;
282+
worker_mipsolvers.push_back(HighsMipSolver{
283+
*callback_, *options_mip_, *model_, null_solution, false, 0});
284+
HighsMipSolver& worker_mipsolver = worker_mipsolvers[0];
268285

269286
// ... but currently can only do this
270287
//
271-
HighsMipSolver worker_mipsolver(*callback_, *options_mip_, *model_,
272-
null_solution, false, 0);
288+
// HighsMipSolver worker_mipsolver(*callback_, *options_mip_, *model_,
289+
// null_solution, false, 0);
290+
273291
worker_mipsolver.rootbasis = this->rootbasis;
274292
HighsPseudocostInitialization pscostinit(mipdata_->pseudocost, 1);
275293
worker_mipsolver.pscostinit = &pscostinit;

src/mip/HighsMipSolver.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,13 @@ class HighsMipSolver {
8383
return model_->integrality_[col];
8484
}
8585

86+
// Contstructor from reference.
87+
HighsMipSolver(const HighsMipSolver& mip_solver_);
88+
89+
// Constructor without solution.
90+
HighsMipSolver(HighsCallback* callback,
91+
const HighsOptions* options, const HighsLp* lp);
92+
8693
HighsMipSolver(HighsCallback& callback, const HighsOptions& options,
8794
const HighsLp& lp, const HighsSolution& solution,
8895
bool submip = false, HighsInt submip_level = 0);

0 commit comments

Comments
 (0)