Skip to content

Commit 3adc9bf

Browse files
committed
better fix for bug - superbasic treated as free
1 parent a26d56c commit 3adc9bf

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

Clp/src/ClpSimplexPrimal.cpp

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,6 @@ int ClpSimplexPrimal::primal(int ifValuesPass, int startFinishOptions)
216216

217217
algorithm_ = +1;
218218
moreSpecialOptions_ &= ~16; // clear check replaceColumn accuracy
219-
int numberInverts=0;int lastInvertIteration=-1;
220219
// save data
221220
ClpDataSave data = saveData();
222221
if (problemStatus_ == 10 && sumPrimalInfeasibilities_ == -123456789.0) {
@@ -362,16 +361,6 @@ int ClpSimplexPrimal::primal(int ifValuesPass, int startFinishOptions)
362361
COIN_DETAIL_PRINT(printf("End small model\n"));
363362
}
364363
}
365-
if (numberIterations_>lastInvertIteration) {
366-
lastInvertIteration=numberIterations_;
367-
numberInverts=0;
368-
} else {
369-
numberInverts++;
370-
if (numberInverts>5) {
371-
//printf("WHAT\n");
372-
cleanStatus();
373-
}
374-
}
375364
// may factorize, checks if problem finished
376365
statusOfProblemInPrimal(lastCleaned, factorType, &progress_, true, ifValuesPass, saveModel);
377366
if (initialStatus == 10) {

Clp/src/OsiClp/OsiClpSolverInterface.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1255,6 +1255,18 @@ void OsiClpSolverInterface::resolve()
12551255
#ifdef CBC_STATISTICS
12561256
osi_primal++;
12571257
#endif
1258+
// check free really superbasic
1259+
const double * columnLower = modelPtr_->columnLower();
1260+
const double * columnUpper = modelPtr_->columnUpper();
1261+
int numberColumns = modelPtr_->numberColumns();
1262+
unsigned char * status = modelPtr_->statusArray();
1263+
for (int iColumn = 0; iColumn < numberColumns; iColumn++) {
1264+
if ((status[iColumn]&7)==0) {
1265+
// check not just superBasic
1266+
if (columnLower[iColumn]>-1.0e100||columnUpper[iColumn]<1.0e100)
1267+
status[iColumn] = 4;
1268+
}
1269+
}
12581270
modelPtr_->primal(1, startFinishOptions);
12591271
totalIterations += modelPtr_->numberIterations();
12601272
lastAlgorithm_ = 1; // primal

0 commit comments

Comments
 (0)