Changeset 202 for branches


Ignore:
Timestamp:
Aug 27, 2003 6:30:57 AM (16 years ago)
Author:
forrest
Message:

getting better

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/pre/ClpSimplexPrimalQuadratic.cpp

    r201 r202  
    507507  // Now do quadratic
    508508  //ClpPrimalQuadraticDantzig dantzigP(model2,&info);
    509   //ClpPrimalColumnDantzig dantzigP;
    510   //model2->setPrimalColumnPivotAlgorithm(dantzigP);
     509  ClpPrimalColumnDantzig dantzigP;
     510  model2->setPrimalColumnPivotAlgorithm(dantzigP);
    511511  model2->messageHandler()->setLogLevel(63);
    512512  model2->primalQuadratic2(&info,phase);
     
    10731073          // if stable replace in basis
    10741074          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);
    10761079            updateStatus=factorization_->replaceColumn(rowArray_[2],
    10771080                                                       pivotRow_,
    10781081                                                       alpha_);
     1082            factorization_->relaxAccuracyCheck(saveCheck);
     1083          }
    10791084          if (result>=10) {
    10801085            updateStatus = max(updateStatus,result/10);
     
    11001105            nextSequenceIn=saveSequenceInInfo;
    11011106            info->setCrucialSj(saveCrucialSjInfo);
     1107            if (saveCrucialSjInfo<0&&!phase)
     1108              nextSequenceIn=-1;
    11021109            pivotRow_=-1;
    11031110            // better to have small tolerance even if slower
     
    11151122              returnCode=-4;
    11161123              // retry on return
    1117               nextSequenceIn = sequenceIn_;
     1124              if (info->crucialSj()>=0)
     1125                nextSequenceIn = sequenceIn_;
    11181126              break;
    11191127            } else {
     
    17911799          double alpha=work[iSjRow2];
    17921800          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))) {
    17941802            printf("bad test\n");
    17951803            if (factorization_->pivots())
     
    18301838  double upperTheta = maximumMovement;
    18311839  bool throwAway=false;
    1832   if (numberIterations_==931) {
     1840  if (numberIterations_==1750) {
    18331841    printf("Bad iteration coming up after iteration %d\n",numberIterations_);
    18341842  }
     
    22712279        valueOut_ = solution(sequenceOut_);
    22722280        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));
    22742282        if (way<0.0)
    22752283          theta_ = - theta_;
     
    30243032          // should adjust value?
    30253033          solution_[jSequence]=0.0;
    3026           //value=value2;
     3034          value=value2;
    30273035        } else {
    30283036          //if (fabs(value-value2-dj_[jSequence-start])>1.0e-3)
Note: See TracChangeset for help on using the changeset viewer.