@@ -319,6 +319,9 @@ void HighsPrimalHeuristics::rootReducedCost() {
319319}
320320
321321void HighsPrimalHeuristics::RENS (const std::vector<double >& tmp) {
322+ // return if domain is infeasible
323+ if (mipsolver.mipdata_ ->domain .infeasible ()) return ;
324+
322325 HighsPseudocost pscost (mipsolver.mipdata_ ->pseudocost );
323326 HighsSearch heur (mipsolver, pscost);
324327 HighsDomain& localdom = heur.getLocalDomain ();
@@ -567,7 +570,10 @@ void HighsPrimalHeuristics::RENS(const std::vector<double>& tmp) {
567570}
568571
569572void HighsPrimalHeuristics::RINS (const std::vector<double >& relaxationsol) {
570- if (int (relaxationsol.size ()) != mipsolver.numCol ()) return ;
573+ // return if domain is infeasible
574+ if (mipsolver.mipdata_ ->domain .infeasible ()) return ;
575+
576+ if (relaxationsol.size () != static_cast <size_t >(mipsolver.numCol ())) return ;
571577
572578 intcols.erase (std::remove_if (intcols.begin (), intcols.end (),
573579 [&](HighsInt i) {
@@ -979,7 +985,7 @@ bool HighsPrimalHeuristics::linesearchRounding(
979985
980986void HighsPrimalHeuristics::randomizedRounding (
981987 const std::vector<double >& relaxationsol) {
982- if (int ( relaxationsol.size ()) != mipsolver.numCol ()) return ;
988+ if (relaxationsol.size () != static_cast < size_t >( mipsolver.numCol () )) return ;
983989
984990 auto localdom = mipsolver.mipdata_ ->domain ;
985991
@@ -1158,7 +1164,8 @@ void HighsPrimalHeuristics::feasibilityPump() {
11581164}
11591165
11601166void HighsPrimalHeuristics::centralRounding () {
1161- if (HighsInt (mipsolver.mipdata_ ->analyticCenter .size ()) != mipsolver.numCol ())
1167+ if (mipsolver.mipdata_ ->analyticCenter .size () !=
1168+ static_cast <size_t >(mipsolver.numCol ()))
11621169 return ;
11631170
11641171 if (!mipsolver.mipdata_ ->firstlpsol .empty ())
0 commit comments