@@ -1010,15 +1010,24 @@ int CbcHeuristic::smallBranchAndBound(OsiSolverInterface *solver, int numberNode
10101010 returnCode = 2 ; // so will be infeasible
10111011 } else {
10121012 setPreProcessingMode (solver2,0 );
1013- #ifdef COIN_DEVELOP_z
1013+ #ifdef CHECK_KNOWN_SOLUTION
10141014 // Only way to get to work on restart
10151015 if (numberNodes < 0 && solver->getRowCutDebugger ()) {
1016- printf (" TRying rowcutdebugger - need sol from /tmp/after2.mps in tmp/after2.sol\n " );
1016+ #if defined(_MSC_VER)
1017+ printf (" Trying rowcutdebugger on restart - need sol from after2.mps in tmp/after2.sol\n " );
1018+ FILE * fp= fopen (" after2.sol" ," r" );
1019+ if (!fp) {
1020+ solver->writeMpsNative (" before2.mps" , NULL , NULL , 2 , 1 );
1021+ solver2->writeMpsNative (" after2.mps" , NULL , NULL , 2 , 1 );
1022+ printf (" Solve after2.mps and re-run\n " );
1023+ #else
1024+ printf (" Trying rowcutdebugger on restart - need sol from /tmp/after2.mps in tmp/after2.sol\n " );
10171025 FILE * fp= fopen (" /tmp/after2.sol" ," r" );
10181026 if (!fp) {
10191027 solver->writeMpsNative (" /tmp/before2.mps" , NULL , NULL , 2 , 1 );
10201028 solver2->writeMpsNative (" /tmp/after2.mps" , NULL , NULL , 2 , 1 );
1021- printf (" Solve after2 and re-run\n " );
1029+ printf (" Solve /tmp/after2.mps and re-run\n " );
1030+ #endif
10221031 exit (77 );
10231032 } else {
10241033 int ncols = solver2->getNumCols ();
@@ -1037,6 +1046,10 @@ int CbcHeuristic::smallBranchAndBound(OsiSolverInterface *solver, int numberNode
10371046 charB++;
10381047 *charB=' \0 ' ;
10391048 int sequence = atoi (charA);
1049+ if (sequence>=ncols) {
1050+ printf (" mismatch on after2.sol - delete and try again\n " );
1051+ exit (77 );
1052+ }
10401053 // skip name
10411054 charB++;
10421055 while (*charB!=' ' )
0 commit comments