Skip to content

Commit ffd24f0

Browse files
committed
fix very minor bug in basis difference storing
1 parent 92c7e0c commit ffd24f0

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/CoinWarmStartBasis.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -589,6 +589,12 @@ CoinWarmStartBasis::generateDiff(const CoinWarmStart *const oldCWS) const
589589
const unsigned int *oldStatus = reinterpret_cast< const unsigned int * >(oldBasis->getArtificialStatus());
590590
const unsigned int *newStatus = reinterpret_cast< const unsigned int * >(newBasis->getArtificialStatus());
591591
int numberChanged = 0;
592+
/* Code taken out incorrectly years ago!
593+
When basis expanded all artificials set to basic.
594+
It can happen that last one is basic later - so looks same
595+
and diff is not created. Happens very rarely but better to be correct. */
596+
if (sizeNewArtif == sizeOldArtif)
597+
sizeOldArtif--; // make sure all taken
592598
int i;
593599
for (i = 0; i < sizeOldArtif; i++) {
594600
if (oldStatus[i] != newStatus[i]) {

0 commit comments

Comments
 (0)