Ignore:
Timestamp:
Aug 25, 2011 6:17:49 AM (8 years ago)
Author:
forrest
Message:

patches to try and make parametrics faster

File:
1 edited

Legend:

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

    r1780 r1785  
    12231223                    bestPossiblePivot = dualColumn(rowArray_[0], columnArray_[0], rowArray_[3],
    12241224                                                   columnArray_[1], acceptablePivot, dubiousWeights);
     1225#if CAN_HAVE_ZERO_OBJ>1
     1226                    if ((specialOptions_&2097152)!=0)
     1227                      theta_=0.0;
     1228#endif
    12251229               } else {
    12261230                    // Make sure direction plausible
     
    13991403                    //columnArray_[0]->cleanAndPackSafe(1.0e-60);
    14001404                    if (candidate == -1) {
     1405#if CLP_CAN_HAVE_ZERO_OBJ>1
     1406                    if ((specialOptions_&2097152)==0) {
     1407#endif
    14011408                         // make sure incoming doesn't count
    14021409                         Status saveStatus = getStatus(sequenceIn_);
     
    14061413                                                      objectiveChange, false);
    14071414                         setStatus(sequenceIn_, saveStatus);
     1415#if CLP_CAN_HAVE_ZERO_OBJ>1
     1416                    } else {
     1417                      rowArray_[0]->clear();
     1418                      rowArray_[2]->clear();
     1419                      columnArray_[0]->clear();
     1420                    }
     1421#endif
    14081422                    } else {
    14091423                         updateDualsInValuesPass(rowArray_[0], columnArray_[0], theta_);
     
    37783792                              if (value > dualTolerance_) {
    37793793                                   thisIncrease = true;
     3794#if CLP_CAN_HAVE_ZERO_OBJ<2
    37803795#define MODIFYCOST 2
     3796#endif
    37813797#if MODIFYCOST
    37823798                                   // modify cost to hit new tolerance
     
    46664682                         if (lastCleaned < numberIterations_ && numberTimesOptimal_ < 4 &&
    46674683                                   (numberChanged_ || (specialOptions_ & 4096) == 0)) {
     4684#if CLP_CAN_HAVE_ZERO_OBJ
    46684685                           if ((specialOptions_&2097152)==0) {
     4686#endif
    46694687                              doOriginalTolerance = 2;
    46704688                              numberTimesOptimal_++;
     
    46814699                              }
    46824700                              cleanDuals = 2; // If nothing changed optimal else primal
     4701#if CLP_CAN_HAVE_ZERO_OBJ
    46834702                           } else {
    46844703                             // no cost - skip checks
    46854704                             problemStatus_=0;
    46864705                           }
     4706#endif
    46874707                         } else {
    46884708                              problemStatus_ = 0; // optimal
     
    49394959                    if (givenDuals)
    49404960                         dualTolerance_ = 1.0e50;
     4961#if CLP_CAN_HAVE_ZERO_OBJ>1
     4962                    if ((specialOptions_&2097152)==0) {
     4963#endif
    49414964                    updateDualsInDual(rowArray_[0], columnArray_[0], rowArray_[1],
    49424965                                      0.0, objectiveChange, true);
     4966#if CLP_CAN_HAVE_ZERO_OBJ>1
     4967                    } else {
     4968                      rowArray_[0]->clear();
     4969                      rowArray_[1]->clear();
     4970                      columnArray_[0]->clear();
     4971                    }
     4972#endif
    49434973                    dualTolerance_ = saveTolerance;
    49444974#if 0
     
    49715001                    if (givenDuals)
    49725002                         dualTolerance_ = 1.0e50;
     5003#if CLP_CAN_HAVE_ZERO_OBJ>1
     5004                    if ((specialOptions_&2097152)==0) {
     5005#endif
    49735006                    updateDualsInDual(rowArray_[0], columnArray_[0], rowArray_[1],
    49745007                                      0.0, objectiveChange, true);
     5008#if CLP_CAN_HAVE_ZERO_OBJ>1
     5009                    } else {
     5010                      rowArray_[0]->clear();
     5011                      rowArray_[1]->clear();
     5012                      columnArray_[0]->clear();
     5013                    }
     5014#endif
    49755015                    dualTolerance_ = saveTolerance;
    49765016                    if (!numberIterations_ && sumPrimalInfeasibilities_ >
Note: See TracChangeset for help on using the changeset viewer.