Changeset 1835 for trunk/Clp/src/ClpSimplexOther.cpp
- Timestamp:
- Dec 13, 2011 11:00:41 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Clp/src/ClpSimplexOther.cpp
r1833 r1835 3108 3108 } 3109 3109 } 3110 assert (!problemStatus_);3111 3110 if (!problemStatus_) { 3111 if (nLowerChange||nUpperChange) { 3112 3112 #ifndef ALL_DANTZIG 3113 // Dantzig 3114 savePivot = dualRowPivot_; 3115 dualRowPivot_ = new ClpDualRowDantzig(); 3116 dualRowPivot_->setModel(this); 3117 #endif 3118 //for (int i=0;i<numberRows_+numberColumns_;i++) 3119 //setFakeBound(i, noFake); 3120 // Now do parametrics 3121 handler_->message(CLP_PARAMETRICS_STATS, messages_) 3122 << startingTheta << objectiveValue() << CoinMessageEol; 3123 bool canSkipFactorization=true; 3124 while (!returnCode) { 3125 paramData.startingTheta=startingTheta; 3126 paramData.endingTheta=endingTheta; 3127 returnCode = parametricsLoop(paramData, 3128 data,canSkipFactorization); 3129 startingTheta=paramData.startingTheta; 3130 endingTheta=paramData.endingTheta; 3131 canSkipFactorization=false; 3132 if (!returnCode) { 3133 //startingTheta = endingTheta; 3134 //endingTheta = saveEndingTheta; 3135 handler_->message(CLP_PARAMETRICS_STATS, messages_) 3136 << startingTheta << objectiveValue() << CoinMessageEol; 3137 if (startingTheta >= endingTheta-primalTolerance_ 3138 ||problemStatus_==2) 3139 break; 3140 } else if (returnCode == -1) { 3141 // trouble - do external solve 3142 abort(); //needToDoSomething = true; 3143 } else if (problemStatus_==1) { 3144 // can't move any further 3145 handler_->message(CLP_PARAMETRICS_STATS, messages_) 3146 << endingTheta << objectiveValue() << CoinMessageEol; 3147 problemStatus_=0; 3113 // Dantzig 3114 savePivot = dualRowPivot_; 3115 dualRowPivot_ = new ClpDualRowDantzig(); 3116 dualRowPivot_->setModel(this); 3117 #endif 3118 //for (int i=0;i<numberRows_+numberColumns_;i++) 3119 //setFakeBound(i, noFake); 3120 // Now do parametrics 3121 handler_->message(CLP_PARAMETRICS_STATS, messages_) 3122 << startingTheta << objectiveValue() << CoinMessageEol; 3123 bool canSkipFactorization=true; 3124 while (!returnCode) { 3125 paramData.startingTheta=startingTheta; 3126 paramData.endingTheta=endingTheta; 3127 returnCode = parametricsLoop(paramData, 3128 data,canSkipFactorization); 3129 startingTheta=paramData.startingTheta; 3130 endingTheta=paramData.endingTheta; 3131 canSkipFactorization=false; 3132 if (!returnCode) { 3133 //startingTheta = endingTheta; 3134 //endingTheta = saveEndingTheta; 3135 handler_->message(CLP_PARAMETRICS_STATS, messages_) 3136 << startingTheta << objectiveValue() << CoinMessageEol; 3137 if (startingTheta >= endingTheta-primalTolerance_ 3138 ||problemStatus_==2) 3139 break; 3140 } else if (returnCode == -1) { 3141 // trouble - do external solve 3142 abort(); //needToDoSomething = true; 3143 } else if (problemStatus_==1) { 3144 // can't move any further 3145 handler_->message(CLP_PARAMETRICS_STATS, messages_) 3146 << endingTheta << objectiveValue() << CoinMessageEol; 3147 problemStatus_=0; 3148 } 3148 3149 } 3149 3150 } 3150 } 3151 dualBound_ = saveDualBound; 3152 //reinterpret_cast<ClpSimplexDual *> (this)->gutsOfDual(0, saveDuals, -1, data); 3153 } else { 3154 // check if empty 3155 //if (!numberRows_||!matrix_->getNumElements()) { 3151 dualBound_ = saveDualBound; 3152 //reinterpret_cast<ClpSimplexDual *> (this)->gutsOfDual(0, saveDuals, -1, data); 3153 } else { 3154 // check if empty 3155 //if (!numberRows_||!matrix_->getNumElements()) { 3156 3156 // success 3157 3157 #ifdef CLP_USER_DRIVEN 3158 //theta_ = endingTheta; 3159 //eventHandler_->event(ClpEventHandler::theta); 3160 #endif 3161 //} 3158 //theta_ = endingTheta; 3159 //eventHandler_->event(ClpEventHandler::theta); 3160 #endif 3161 //} 3162 } 3162 3163 } 3163 3164 if (problemStatus_==2) {
Note: See TracChangeset
for help on using the changeset viewer.