- Timestamp:
- Sep 7, 2009 8:38:58 AM (12 years ago)
- Location:
- trunk/Clp/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Clp/src/ClpSimplex.cpp
r1427 r1428 1531 1531 } 1532 1532 } 1533 #if 0 1533 1534 if (numberBasic<numberRows_) { 1534 1535 // add some slacks in case odd warmstart … … 1549 1550 } 1550 1551 } 1552 #endif 1551 1553 } else { 1552 1554 // all slack basis … … 5149 5151 startFinishOptions |= 2; 5150 5152 baseIteration_=numberIterations_; 5153 // Say second call 5154 moreSpecialOptions_ |= 256; 5151 5155 if ((matrix_->generalExpanded(this,4,dummy)&1)!=0) 5152 5156 returnCode = static_cast<ClpSimplexPrimal *> (this)->primal(1,startFinishOptions); 5153 5157 else 5154 5158 returnCode = static_cast<ClpSimplexDual *> (this)->dual(0,startFinishOptions); 5159 // Say not second call 5160 moreSpecialOptions_ &= ~256; 5155 5161 baseIteration_=0; 5156 5162 if (saveObjective != objective_) { … … 5471 5477 int dummy; 5472 5478 baseIteration_=numberIterations_; 5479 // Say second call 5480 moreSpecialOptions_ |= 256; 5473 5481 if ((matrix_->generalExpanded(this,4,dummy)&2)!=0&&(specialOptions_&8192)==0) { 5474 5482 double saveBound = dualBound_; … … 5480 5488 returnCode = static_cast<ClpSimplexPrimal *> (this)->primal(0,startFinishOptions); 5481 5489 } 5490 // Say not second call 5491 moreSpecialOptions_ &= ~256; 5482 5492 baseIteration_=0; 5483 5493 setInitialDenseFactorization(denseFactorization); -
trunk/Clp/src/ClpSimplex.hpp
r1426 r1428 952 952 64 bit - give up easily in dual (and say infeasible) 953 953 128 bit - no objective, 0-1 and in B&B 954 256 bit - in primal from dual or vice versa 954 955 */ 955 956 inline int moreSpecialOptions() const … … 964 965 64 bit - give up easily in dual (and say infeasible) 965 966 128 bit - no objective, 0-1 and in B&B 967 256 bit - in primal from dual or vice versa 966 968 */ 967 969 inline void setMoreSpecialOptions(int value) -
trunk/Clp/src/ClpSimplexPrimal.cpp
r1402 r1428 1214 1214 numberDualInfeasibilities_=1; // carry on 1215 1215 problemStatus_=-1; 1216 } else if (numberDualInfeasibilities_==0&&largestDualError_>1.0e-2) { 1216 } else if (numberDualInfeasibilities_==0&&largestDualError_>1.0e-2&& 1217 (moreSpecialOptions_&256)==0) { 1217 1218 goToDual=true; 1218 1219 factorization_->pivotTolerance(CoinMax(0.9,factorization_->pivotTolerance())); … … 1262 1263 goToDual=unPerturb(); // stop any further perturbation 1263 1264 if (numberRows_>20000&&!numberTimesOptimal_) 1264 goToDual= 0; // Better to carry on a bit longer1265 goToDual=false; // Better to carry on a bit longer 1265 1266 lastCleaned=-1; // carry on 1266 1267 }
Note: See TracChangeset
for help on using the changeset viewer.