Ignore:
Timestamp:
Oct 1, 2008 11:45:12 AM (11 years ago)
Author:
forrest
Message:

changes for factorization and aux region

File:
1 edited

Legend:

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

    r1277 r1286  
    125125extern int * toVub;
    126126extern int * nextDescendent;
     127#endif
     128#ifndef CLP_AUXILIARY_MODEL
     129#define auxiliaryModel_ false
    127130#endif
    128131// dual
     
    499502    nPivots=factorization_->pivots();
    500503#endif
     504    if (!problemStatus_&&factorization_->pivots())
     505      computeDuals(NULL); // need to compute duals
    501506    if (returnCode==-2)
    502507      factorType=3;
    503508  }
    504509#ifdef CLP_INVESTIGATE
     510  // NOTE - can fail if parallel
    505511  if (z_thinks!=-1) {
    506512    assert (z_thinks<4);
     
    39463952  }
    39473953  progressFlag_ = 0; //reset progress flag
     3954  /*if (!numberIterations_&&sumDualInfeasibilities_)
     3955    printf("OBJ %g sumPinf %g sumDinf %g\n",
     3956           objectiveValue(),sumPrimalInfeasibilities_,
     3957           sumDualInfeasibilities_);*/
    39483958  if (handler_->detail(CLP_SIMPLEX_STATUS,messages_)<100) {
    39493959    handler_->message(CLP_SIMPLEX_STATUS,messages_)
     
    41584168        delete [] saveColumnSolution;
    41594169        delete [] saveRowSolution;
    4160       } 
     4170      }
    41614171      if (problemStatus_==-4||problemStatus_==-5) {
    41624172        // may be infeasible - or may be bounds are wrong
     
    41724182          createRim4(false);
    41734183        }
    4174         if (numberChangedBounds<=0||dualBound_>1.0e20||
    4175             (largestPrimalError_>1.0&&dualBound_>1.0e17)) {
     4184        if ((numberChangedBounds<=0||dualBound_>1.0e20||
     4185            (largestPrimalError_>1.0&&dualBound_>1.0e17))&&
     4186            (numberPivots<4||sumPrimalInfeasibilities_>1.0e-6)) {
    41764187          problemStatus_=1; // infeasible
    41774188          if (perturbation_==101) {
     
    46114622    numberFake_--;;
    46124623    setFakeBound(iSequence,noFake);
     4624#ifdef CLP_AUXILIARY_MODEL
    46134625    if (auxiliaryModel_) {
    46144626      // just copy back
     
    46174629      return;
    46184630    }
     4631#endif
    46194632    if (iSequence>=numberColumns_) {
    46204633      // rows
Note: See TracChangeset for help on using the changeset viewer.