@@ -342,7 +342,7 @@ void HighsPrimalHeuristics::RENS(HighsMipWorker& worker,
342342 [&](HighsInt i) { return worker.globaldom_ .isFixed (i); }),
343343 intcols.end ());
344344
345- HighsLpRelaxation heurlp (mipsolver. mipdata_ -> lp );
345+ HighsLpRelaxation heurlp (worker. lprelaxation_ );
346346 // only use the global upper limit as LP limit so that dual proofs are valid
347347 heurlp.setObjectiveLimit (mipsolver.mipdata_ ->upper_limit );
348348 heurlp.setAdjustSymmetricBranchingCol (false );
@@ -603,7 +603,7 @@ void HighsPrimalHeuristics::RINS(HighsMipWorker& worker,
603603 HighsDomain& localdom = heur.getLocalDomain ();
604604 heur.setHeuristic (true );
605605
606- HighsLpRelaxation heurlp (mipsolver. mipdata_ -> lp );
606+ HighsLpRelaxation heurlp (worker. lprelaxation_ );
607607 // only use the global upper limit as LP limit so that dual proofs are valid
608608 heurlp.setObjectiveLimit (mipsolver.mipdata_ ->upper_limit );
609609 heurlp.setAdjustSymmetricBranchingCol (false );
@@ -1103,7 +1103,7 @@ void HighsPrimalHeuristics::shifting(HighsMipWorker& worker,
11031103 std::vector<double > current_relax_solution = relaxationsol;
11041104 HighsInt t = 0 ;
11051105 const HighsLp& currentLp = *mipsolver.model_ ;
1106- HighsLpRelaxation lprelax (mipsolver. mipdata_ -> lp );
1106+ HighsLpRelaxation lprelax (worker. lprelaxation_ );
11071107 std::vector<std::pair<HighsInt, double >> current_fractional_integers =
11081108 lprelax.getFractionalIntegers ();
11091109 std::vector<std::tuple<HighsInt, HighsInt, double >> current_infeasible_rows =
@@ -1465,7 +1465,7 @@ void HighsPrimalHeuristics::ziRound(HighsMipWorker& worker,
14651465}
14661466
14671467void HighsPrimalHeuristics::feasibilityPump (HighsMipWorker& worker) {
1468- HighsLpRelaxation lprelax (mipsolver. mipdata_ -> lp );
1468+ HighsLpRelaxation lprelax (worker. lprelaxation_ );
14691469 std::unordered_set<std::vector<HighsInt>, HighsVectorHasher, HighsVectorEqual>
14701470 referencepoints;
14711471 std::vector<double > roundedsol;
0 commit comments