Changeset 680 for branches


Ignore:
Timestamp:
Jul 10, 2007 2:26:49 PM (12 years ago)
Author:
forrest
Message:

small changes for LOS

Location:
branches/devel/Cbc/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/devel/Cbc/src/CbcLinked.cpp

    r678 r680  
    15001500  }
    15011501  delete [] which;
    1502 #if 1
    1503   addTighterConstraints();
    1504 #endif
     1502  if ((specialOptions2_&16)!=0)
     1503    addTighterConstraints();
    15051504}
    15061505// Add reformulated bilinear constraints
     
    15571556  int * addColumn = new int [numberColumns];
    15581557  double * addElement = new double [numberColumns];
     1558  int * addW = new int [numberColumns];
    15591559  assert (objectiveRow_<0); // fix when occurs
    15601560  for (int iRow=0;iRow<numberRows2;iRow++) {
     
    15861586        printf("can add row %d\n",iRow);
    15871587        assert (columnLower[kColumn]>=0); // might be able to fix
    1588         int xColumn=kColumn;
    15891588        n=0;
    15901589        for (j=rowStart[iRow];j<rowStart[iRow]+numberElements;j++) {
     1590          int xColumn=kColumn;
    15911591          int yColumn = column[j];
    15921592          int k;
     
    16021602            yColumn=temp;
    16031603          }
     1604          addW[n/4]=k;
    16041605          int start = wW[k];
    16051606          double value = element[j];
    16061607          for (int kk=0;kk<4;kk++) {
    16071608            // Dummy value
    1608             addElement[n]= 1.0e-19;
     1609            addElement[n]= value;
    16091610            addColumn[n++]=start+kk;
    16101611          }
    1611           // Tell object about this
    1612           objW[k]->addExtraRow(matrix_->getNumRows(),value);
    16131612        }
    16141613        addColumn[n++] = kColumn;
     
    16161615        double up = rowUpper[iRow];
    16171616        if (lo>-1.0e20) {
     1617          // and tell object
     1618          for (j=0;j<n-1;j+=4) {
     1619            int iObject = addW[j/4];
     1620            objW[iObject]->addExtraRow(matrix_->getNumRows(),addElement[j]);
     1621          }
    16181622          addElement[n-1]=-lo;
    16191623          if (lo==up)
     
    16241628        }
    16251629        if (up<1.0e20&&up>lo) {
     1630          // and tell object
     1631          for (j=0;j<n-1;j+=4) {
     1632            int iObject = addW[j/4];
     1633            objW[iObject]->addExtraRow(matrix_->getNumRows(),addElement[j]);
     1634          }
    16261635          addElement[n-1]=-up;
    16271636          addRow(n,addColumn,addElement,-COIN_DBL_MAX,0.0);
     
    16901699  delete [] addColumn;
    16911700  delete [] addElement;
     1701  delete [] addW;
    16921702  delete [] mark;
    16931703  delete [] list;
     
    51655175  tempI[numberExtraRows_]=row;
    51665176  tempD[numberExtraRows_]=multiplier;
     5177  if (numberExtraRows_)
     5178    assert (row>tempI[numberExtraRows_-1]);
    51675179  numberExtraRows_++;
    51685180  delete [] extraRow_;
  • branches/devel/Cbc/src/CbcLinked.hpp

    r678 r680  
    248248     1 bit (2) - quadratic only in objective (add OA cuts)
    249249     2 bit (4) - convex
    250      4 bit (8) - try adding OA cuts
     250     3 bit (8) - try adding OA cuts
     251     4 bit (16) - add linearized constraints
    251252  */
    252253  int specialOptions2_;
Note: See TracChangeset for help on using the changeset viewer.