Changeset 1533 for trunk/Clp


Ignore:
Timestamp:
Mar 23, 2010 11:26:32 AM (10 years ago)
Author:
forrest
Message:

make it easier to play with multiple Lp solutions

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/Clp/src/ClpEventHandler.hpp

    r1525 r1533  
    3737          treeStatus, // for Cbc
    3838          solution, // for Cbc
    39           theta // hit in parametrics
     39          theta, // hit in parametrics
     40          pivotRow // used to choose pivot row
    4041     };
    4142     /**@name Virtual method that the derived classe should provide.
  • trunk/Clp/src/ClpSimplex.hpp

    r1525 r1533  
    642642                                    const double * lower, const double * gradient);
    643643     /// dual row pivot choice
    644      ClpDualRowPivot * dualRowPivot() const {
     644     inline ClpDualRowPivot * dualRowPivot() const {
    645645          return dualRowPivot_;
     646     }
     647     /// primal column pivot choice
     648     inline ClpPrimalColumnPivot * primalColumnPivot() const {
     649          return primalColumnPivot_;
    646650     }
    647651     /// Returns true if model looks OK
     
    972976          return valueOut_;
    973977     }
     978     /// Set value of out variable
     979     inline void setValueOut(double value) {
     980          valueOut_=value;
     981     }
     982     /// Set lower of out variable
     983     inline void setLowerOut(double value) {
     984          lowerOut_=value;
     985     }
     986     /// Set upper of out variable
     987     inline void setUpperOut(double value) {
     988          upperOut_=value;
     989     }
     990     /// Set theta of out variable
     991     inline void setTheta(double value) {
     992          theta_=value;
     993     }
    974994     /// Returns 1 if sequence indicates column
    975995     inline int isColumn(int sequence) const {
     
    10501070         128 bit - no objective, 0-1 and in B&B
    10511071         256 bit - in primal from dual or vice versa
     1072         512 bit - alternative use of solveType_
    10521073     */
    10531074     inline int moreSpecialOptions() const {
     
    10641085         128 bit - no objective, 0-1 and in B&B
    10651086         256 bit - in primal from dual or vice versa
     1087         512 bit - alternative use of solveType_
    10661088     */
    10671089     inline void setMoreSpecialOptions(int value) {
  • trunk/Clp/src/ClpSimplexPrimal.cpp

    r1525 r1533  
    27562756          matrix_->extendUpdated(this, rowArray_[1], 0);
    27572757          // do ratio test and re-compute dj
    2758           primalRow(rowArray_[1], rowArray_[3], rowArray_[2],
     2758#ifdef CLP_USER_DRIVEN
     2759          if (solveType_!=2||(moreSpecialOptions_&512)==0) {
     2760#endif
     2761              primalRow(rowArray_[1], rowArray_[3], rowArray_[2],
    27592762                    ifValuesPass);
     2763#ifdef CLP_USER_DRIVEN
     2764          } else {
     2765              int status = eventHandler_->event(ClpEventHandler::pivotRow);
     2766              if (status>=0) {
     2767                  problemStatus_=5;
     2768                  secondaryStatus_=ClpEventHandler::pivotRow;
     2769                  break;
     2770              }
     2771          }
     2772#endif
    27602773          if (ifValuesPass) {
    27612774               saveDj = dualIn_;
     
    28532866          }
    28542867          if (pivotRow_ >= 0) {
    2855                if (solveType_ == 2) {
     2868               if (solveType_==2&&(moreSpecialOptions_&512)==0) {
    28562869                    // **** Coding for user interface
    28572870                    // do ray
     
    29312944                         clearAll();
    29322945                         pivotRow_ = -1;
    2933                          if (solveType_ == 1) {
     2946                         if (solveType_==1||(moreSpecialOptions_&512)!=0) {
    29342947                              returnCode = -4;
    29352948                              break;
     
    29923005                         // do ray
    29933006                         primalRay(rowArray_[1]);
    2994                     } else if (solveType_ == 2) {
     3007                    } else if (solveType_==2&&(moreSpecialOptions_&512)==0) {
    29953008                         // refactorize
    29963009                         int lastCleaned = 0;
     
    30993112          }
    31003113     }
    3101      if (solveType_ == 2 && (returnCode == -2 || returnCode == -3)) {
     3114     if ((solveType_==2&&(moreSpecialOptions_&512)==0)&&
     3115         (returnCode == -2||returnCode==-3)) {
    31023116          // refactorize here
    31033117          int lastCleaned = 0;
Note: See TracChangeset for help on using the changeset viewer.