Changeset 202 for branches/pre
- Timestamp:
- Aug 27, 2003 6:30:57 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/pre/ClpSimplexPrimalQuadratic.cpp
r201 r202 507 507 // Now do quadratic 508 508 //ClpPrimalQuadraticDantzig dantzigP(model2,&info); 509 //ClpPrimalColumnDantzig dantzigP;510 //model2->setPrimalColumnPivotAlgorithm(dantzigP);509 ClpPrimalColumnDantzig dantzigP; 510 model2->setPrimalColumnPivotAlgorithm(dantzigP); 511 511 model2->messageHandler()->setLogLevel(63); 512 512 model2->primalQuadratic2(&info,phase); … … 1073 1073 // if stable replace in basis 1074 1074 int updateStatus = 0; 1075 if (result<20) 1075 if (result<20) { 1076 double saveCheck = factorization_->getAccuracyCheck(); 1077 if (cleanupIteration) 1078 factorization_->relaxAccuracyCheck(1.0e3*saveCheck); 1076 1079 updateStatus=factorization_->replaceColumn(rowArray_[2], 1077 1080 pivotRow_, 1078 1081 alpha_); 1082 factorization_->relaxAccuracyCheck(saveCheck); 1083 } 1079 1084 if (result>=10) { 1080 1085 updateStatus = max(updateStatus,result/10); … … 1100 1105 nextSequenceIn=saveSequenceInInfo; 1101 1106 info->setCrucialSj(saveCrucialSjInfo); 1107 if (saveCrucialSjInfo<0&&!phase) 1108 nextSequenceIn=-1; 1102 1109 pivotRow_=-1; 1103 1110 // better to have small tolerance even if slower … … 1115 1122 returnCode=-4; 1116 1123 // retry on return 1117 nextSequenceIn = sequenceIn_; 1124 if (info->crucialSj()>=0) 1125 nextSequenceIn = sequenceIn_; 1118 1126 break; 1119 1127 } else { … … 1791 1799 double alpha=work[iSjRow2]; 1792 1800 printf("Sj alpha %g sol %g ratio %g\n",alpha,solution_[crucialSj2],solution_[crucialSj2]/alpha); 1793 if (fabs(fabs(d1)-fabs(solution_[crucialSj2]/alpha))>1.0e-3 ) {1801 if (fabs(fabs(d1)-fabs(solution_[crucialSj2]/alpha))>1.0e-3*(1.0+fabs(d1))) { 1794 1802 printf("bad test\n"); 1795 1803 if (factorization_->pivots()) … … 1830 1838 double upperTheta = maximumMovement; 1831 1839 bool throwAway=false; 1832 if (numberIterations_== 931) {1840 if (numberIterations_==1750) { 1833 1841 printf("Bad iteration coming up after iteration %d\n",numberIterations_); 1834 1842 } … … 2271 2279 valueOut_ = solution(sequenceOut_); 2272 2280 theta_ = fabs(valueOut_/alpha_); 2273 assert (fabs(maximumMovement-theta_)<1.0e-3* 1.0+maximumMovement);2281 assert (fabs(maximumMovement-theta_)<1.0e-3*(1.0+maximumMovement)); 2274 2282 if (way<0.0) 2275 2283 theta_ = - theta_; … … 3024 3032 // should adjust value? 3025 3033 solution_[jSequence]=0.0; 3026 //value=value2;3034 value=value2; 3027 3035 } else { 3028 3036 //if (fabs(value-value2-dj_[jSequence-start])>1.0e-3)
Note: See TracChangeset
for help on using the changeset viewer.