Ignore:
Timestamp:
Jan 11, 2008 5:03:37 PM (12 years ago)
Author:
forrest
Message:

try and make a bit faster

File:
1 edited

Legend:

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

    r1147 r1150  
    10641064        sequenceIn_=-1;
    10651065        // put row of tableau in rowArray[0] and columnArray[0]
    1066         matrix_->transposeTimes(this,-1.0,
    1067                               rowArray_[0],rowArray_[3],columnArray_[0]);
     1066        if (!scaledMatrix_) {
     1067          matrix_->transposeTimes(this,-1.0,
     1068                                  rowArray_[0],rowArray_[3],columnArray_[0]);
     1069        } else {
     1070          double * saveR = rowScale_;
     1071          double * saveC = columnScale_;
     1072          rowScale_=NULL;
     1073          columnScale_=NULL;
     1074          scaledMatrix_->transposeTimes(this,-1.0,
     1075                                  rowArray_[0],rowArray_[3],columnArray_[0]);
     1076          rowScale_=saveR;
     1077          columnScale_=saveC;
     1078        }
    10681079        // do ratio test for normal iteration
    10691080        bestPossiblePivot = dualColumn(rowArray_[0],columnArray_[0],rowArray_[3],
     
    10931104        factorization_->updateColumnTranspose(rowArray_[1],rowArray_[0]);
    10941105        // put row of tableau in rowArray[0] and columnArray[0]
    1095         matrix_->transposeTimes(this,-1.0,
    1096                               rowArray_[0],rowArray_[3],columnArray_[0]);
     1106        if (!scaledMatrix_) {
     1107          matrix_->transposeTimes(this,-1.0,
     1108                                  rowArray_[0],rowArray_[3],columnArray_[0]);
     1109        } else {
     1110          double * saveR = rowScale_;
     1111          double * saveC = columnScale_;
     1112          rowScale_=NULL;
     1113          columnScale_=NULL;
     1114          scaledMatrix_->transposeTimes(this,-1.0,
     1115                                  rowArray_[0],rowArray_[3],columnArray_[0]);
     1116          rowScale_=saveR;
     1117          columnScale_=saveC;
     1118        }
    10971119        acceptablePivot *= 10.0;
    10981120        // do ratio test
     
    43664388  int minLength=numberRows_;
    43674389  double averageCost = 0.0;
     4390#if 0
    43684391  // look at element range
    43694392  double smallestNegative;
     
    43764399  largestPositive = CoinMax(fabs(largestNegative),largestPositive);
    43774400  double elementRatio = largestPositive/smallestPositive;
     4401#endif
    43784402  int numberNonZero=0;
    43794403  if (!numberIterations_&&perturbation_>=50) {
     
    44144438    //                                                                elementRatio);
    44154439    //number=0;
    4416     if (number*4>numberColumns_||elementRatio>1.0e12) {
     4440    //if (number*4>numberColumns_||elementRatio>1.0e12) {
     4441    if (number*4>numberColumns_) {
    44174442      perturbation_=100;
    44184443      return; // good enough
Note: See TracChangeset for help on using the changeset viewer.