Ignore:
Timestamp:
Mar 15, 2007 1:48:04 PM (14 years ago)
Author:
forrest
Message:

add time and try two level bilinear

File:
1 edited

Legend:

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

    r578 r579  
    14101410    if (obj) {
    14111411      int xyRow = obj->xyRow();
    1412       if (rowLength[xyRow]==4) {
     1412      if (rowLength[xyRow]==4&&false) {
    14131413        // we have simple bound
    14141414        nQ++;
     
    14701470// Set all biLinear priorities on x-x variables
    14711471void
    1472 OsiSolverLink::setBiLinearPriorities(int value)
    1473 {
     1472OsiSolverLink::setBiLinearPriorities(int value,double meshSize)
     1473{
     1474  OsiObject ** newObject = new OsiObject * [numberObjects_];
     1475  int numberOdd=0;
    14741476  int i;
    14751477  for ( i =0;i<numberObjects_;i++) {
     
    14771479    if (obj) {
    14781480      if (obj->xMeshSize()<1.0&&obj->yMeshSize()<1.0) {
    1479         obj->setPriority(value);
    1480       }
    1481     }
    1482   }
     1481        OsiBiLinear * objNew = new OsiBiLinear(*obj);
     1482        newObject[numberOdd++]=objNew;
     1483        objNew->setXSatisfied(0.5*meshSize);
     1484        objNew->setXMeshSize(meshSize);
     1485        objNew->setYSatisfied(0.5*meshSize);
     1486        objNew->setYMeshSize(meshSize);
     1487        objNew->setXYSatisfied(0.5*meshSize);
     1488        objNew->setPriority(value);
     1489        objNew->setBranchingStrategy(8);
     1490      }
     1491    }
     1492  }
     1493  addObjects(numberOdd,newObject);
     1494  for (i=0;i<numberOdd;i++)
     1495    delete newObject[i];
     1496  delete [] newObject;
    14831497}
    14841498// Say convex (should work it out)
     
    44344448      xSatisfied =  (fabs(xNew-x)<xSatisfied_);
    44354449    }
     4450    // but if first coarse grid then only if gap small
     4451    if ((branchingStrategy_&8)!=0&&xSatisfied&&
     4452        xB[1]-xB[0]>=xMeshSize_) {
     4453      xNew = 0.5*(xB[0]+xB[1]);
     4454      x = xNew;
     4455      xSatisfied=false;
     4456    }
    44364457  } else {
    44374458    xSatisfied=true;
     
    44524473      assert (yNew>=yB[0]-ySatisfied_);
    44534474      ySatisfied =  (fabs(yNew-y)<ySatisfied_);
     4475    }
     4476    // but if first coarse grid then only if gap small
     4477    if ((branchingStrategy_&8)!=0&&ySatisfied&&
     4478        yB[1]-yB[0]>=yMeshSize_) {
     4479      yNew = 0.5*(yB[0]+yB[1]);
     4480      y = yNew;
     4481      ySatisfied=false;
    44544482    }
    44554483  } else {
Note: See TracChangeset for help on using the changeset viewer.