Changeset 1428 for trunk/Clp


Ignore:
Timestamp:
Sep 7, 2009 8:38:58 AM (10 years ago)
Author:
forrest
Message:

fix for Marc

Location:
trunk/Clp/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Clp/src/ClpSimplex.cpp

    r1427 r1428  
    15311531          }
    15321532        }
     1533#if 0
    15331534        if (numberBasic<numberRows_) {
    15341535          // add some slacks in case odd warmstart
     
    15491550          }
    15501551        }
     1552#endif
    15511553      } else {
    15521554        // all slack basis
     
    51495151      startFinishOptions |= 2;
    51505152    baseIteration_=numberIterations_;
     5153    // Say second call
     5154    moreSpecialOptions_ |= 256;
    51515155    if ((matrix_->generalExpanded(this,4,dummy)&1)!=0)
    51525156      returnCode = static_cast<ClpSimplexPrimal *> (this)->primal(1,startFinishOptions);
    51535157    else
    51545158      returnCode = static_cast<ClpSimplexDual *> (this)->dual(0,startFinishOptions);
     5159    // Say not second call
     5160    moreSpecialOptions_ &= ~256;
    51555161    baseIteration_=0;
    51565162    if (saveObjective != objective_) {
     
    54715477    int dummy;
    54725478    baseIteration_=numberIterations_;
     5479    // Say second call
     5480    moreSpecialOptions_ |= 256;
    54735481    if ((matrix_->generalExpanded(this,4,dummy)&2)!=0&&(specialOptions_&8192)==0) {
    54745482      double saveBound = dualBound_;
     
    54805488      returnCode = static_cast<ClpSimplexPrimal *> (this)->primal(0,startFinishOptions);
    54815489    }
     5490    // Say not second call
     5491    moreSpecialOptions_ &= ~256;
    54825492    baseIteration_=0;
    54835493    setInitialDenseFactorization(denseFactorization);
  • trunk/Clp/src/ClpSimplex.hpp

    r1426 r1428  
    952952      64 bit - give up easily in dual (and say infeasible)
    953953      128 bit - no objective, 0-1 and in B&B
     954      256 bit - in primal from dual or vice versa
    954955  */
    955956  inline int moreSpecialOptions() const
     
    964965      64 bit - give up easily in dual (and say infeasible)
    965966      128 bit - no objective, 0-1 and in B&B
     967      256 bit - in primal from dual or vice versa
    966968  */
    967969  inline void setMoreSpecialOptions(int value)
  • trunk/Clp/src/ClpSimplexPrimal.cpp

    r1402 r1428  
    12141214          numberDualInfeasibilities_=1; // carry on
    12151215          problemStatus_=-1;
    1216         } else if (numberDualInfeasibilities_==0&&largestDualError_>1.0e-2) {
     1216        } else if (numberDualInfeasibilities_==0&&largestDualError_>1.0e-2&&
     1217                   (moreSpecialOptions_&256)==0) {
    12171218          goToDual=true;
    12181219          factorization_->pivotTolerance(CoinMax(0.9,factorization_->pivotTolerance()));
     
    12621263        goToDual=unPerturb(); // stop any further perturbation
    12631264        if (numberRows_>20000&&!numberTimesOptimal_)
    1264           goToDual=0; // Better to carry on a bit longer
     1265          goToDual=false; // Better to carry on a bit longer
    12651266        lastCleaned=-1; // carry on
    12661267      }
Note: See TracChangeset for help on using the changeset viewer.