Ignore:
Timestamp:
Oct 20, 2008 6:07:32 AM (11 years ago)
Author:
forrest
Message:

allow for small elements coming in

File:
1 edited

Legend:

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

    r1270 r1292  
    11111111
    11121112  const CoinBigIndex * start = m->getVectorStarts();
    1113   const int * length = m->getVectorLengths();
    11141113  const int * row = m->getIndices();
    11151114  const double * element = m->getElements();
    11161115  int icol,nel=0;
    11171116  mcstrt_[0]=0;
     1117  ClpDisjointCopyN(m->getVectorLengths(),ncols_,  hincol_);
    11181118  for (icol=0;icol<ncols_;icol++) {
    1119     int j;
    1120     for (j=start[icol];j<start[icol]+length[icol];j++) {
     1119    CoinBigIndex j;
     1120    for (j=start[icol];j<start[icol]+hincol_[icol];j++) {
    11211121      hrow_[nel]=row[j];
    1122       colels_[nel++]=element[j];
     1122      if (fabs(element[j])>ZTOLDP)
     1123        colels_[nel++]=element[j];
    11231124    }
    11241125    mcstrt_[icol+1]=nel;
    1125   }
    1126   assert(mcstrt_[ncols_] == nelems_);
    1127   ClpDisjointCopyN(m->getVectorLengths(),ncols_,  hincol_);
     1126    hincol_[icol]=nel-mcstrt_[icol];
     1127  }
    11281128
    11291129  // same thing for row rep
     
    11581158  hinrow_ = new int[nrows_in+1];
    11591159  ClpDisjointCopyN(len, nrows_,  hinrow_);
     1160  if (nelems_>nel) {
     1161    nelems_ = nel;
     1162    // Clean any small elements
     1163    int irow;
     1164    nel=0;
     1165    CoinBigIndex start=0;
     1166    for (irow=0;irow<nrows_;irow++) {
     1167      CoinBigIndex j;
     1168      for (j=start;j<start+hinrow_[irow];j++) {
     1169        hcol_[nel]=hcol_[j];
     1170        if (fabs(rowels_[j])>ZTOLDP)
     1171          rowels_[nel++]=rowels_[j];
     1172      }
     1173      start=mrstrt_[irow+1];
     1174      mrstrt_[irow+1]=nel;
     1175      hinrow_[irow]=nel-mrstrt_[irow];
     1176    }
     1177  }
    11601178
    11611179  delete mRow;
Note: See TracChangeset for help on using the changeset viewer.