Changeset 1585 for trunk/Clp


Ignore:
Timestamp:
Aug 11, 2010 8:28:46 AM (9 years ago)
Author:
forrest
Message:

changes to help SCIP

Location:
trunk/Clp/src
Files:
3 edited

Legend:

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

    r1525 r1585  
    53135313               perturbation_ = savePerturbation;
    53145314               baseIteration_ = numberIterations_;
     5315               // Say second call
     5316               moreSpecialOptions_ |= 256;
    53155317               returnCode = static_cast<ClpSimplexPrimal *> (this)->primal(0);
     5318               // Say not second call
     5319               moreSpecialOptions_ &= ~256;
    53165320               baseIteration_ = 0;
    53175321               computeObjectiveValue();
  • trunk/Clp/src/ClpSimplexDual.cpp

    r1525 r1585  
    58145814          int status = fastDual(alwaysFinish);
    58155815          CoinAssert (problemStatus_ || objectiveValue_ < 1.0e50);
     5816#ifdef CLP_DEBUG
     5817          printf("first status %d obj %g\n",problemStatus_,objectiveValue_);
     5818#endif
     5819          if(problemStatus_==10)
     5820              problemStatus_=3;
    58165821          // make sure plausible
    58175822          double obj = CoinMax(objectiveValue_, saveObjectiveValue);
     
    58265831               status = problemStatus_;
    58275832          }
     5833          if (problemStatus_ == 3)
     5834               status = 2;
    58285835          if (status || (problemStatus_ == 0 && !isDualObjectiveLimitReached())) {
    58295836               objectiveChange = obj - saveObjectiveValue;
     
    58325839               status = 1;
    58335840          }
    5834           if (problemStatus_ == 3)
    5835                status = 2;
    58365841
    58375842          if (scalingFlag_ <= 0) {
     
    58795884          // Start of fast iterations
    58805885          status = fastDual(alwaysFinish);
     5886          CoinAssert (problemStatus_||objectiveValue_<1.0e50);
     5887#ifdef CLP_DEBUG
     5888          printf("second status %d obj %g\n",problemStatus_,objectiveValue_);
     5889#endif
     5890          if(problemStatus_==10)
     5891              problemStatus_=3;
    58815892          // make sure plausible
    58825893          obj = CoinMax(objectiveValue_, saveObjectiveValue);
     
    58915902               status = problemStatus_;
    58925903          }
     5904          if (problemStatus_ == 3)
     5905               status = 2;
    58935906          if (status || (problemStatus_ == 0 && !isDualObjectiveLimitReached())) {
    58945907               objectiveChange = obj - saveObjectiveValue;
     
    58975910               status = 1;
    58985911          }
    5899           if (problemStatus_ == 3)
    5900                status = 2;
    59015912          if (scalingFlag_ <= 0) {
    59025913               CoinMemcpyN(solution_, numberColumns_, outputSolution[iSolution]);
     
    71427153                         jSequence -= numberColumns_;
    71437154                    }
     7155#ifdef CLP_INVESTIGATE
    71447156                    double lowerValue = tempLower[iSequence];
    71457157                    double upperValue = tempUpper[iSequence];
    7146 #ifdef CLP_INVESTIGATE
    71477158                    printf("*** movement>1.0e30 for  %c%d %g <= %g <= %g true %g, %g - status %d\n",
    71487159                           RC, jSequence, lower_[iSequence], solution_[iSequence],
  • trunk/Clp/src/ClpSimplexPrimal.cpp

    r1551 r1585  
    14561456          problemStatus_ = 10; // try dual
    14571457          // See if second call
    1458           if ((moreSpecialOptions_ & 256) != 0) {
     1458          if ((moreSpecialOptions_ & 256) != 0||nonLinearCost_->numberInfeasibilities()>1.0e2) {
    14591459               numberPrimalInfeasibilities_ = nonLinearCost_->numberInfeasibilities();
    14601460               sumPrimalInfeasibilities_ = nonLinearCost_->sumInfeasibilities();
Note: See TracChangeset for help on using the changeset viewer.