Changeset 612
- Timestamp:
- May 15, 2007 6:11:44 AM (14 years ago)
- Location:
- branches/devel/Cbc/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/devel/Cbc/src/CbcLinked.cpp
r604 r612 6483 6483 double upperColumn=columnUpper(iColumn); 6484 6484 double gap = upperColumn-lowerColumn; 6485 if (gap>1.0e8) 6486 gap=1.0e8; 6485 6487 assert (fabs(floor(gap+0.5)-gap)<1.0e-5); 6486 6488 whichColumn[numJ]=iColumn; … … 6891 6893 if (jColumn>=0) { 6892 6894 columnQuadratic[numberQuadratic]=jColumn; 6893 elementQuadratic[numberQuadratic++]=2.0*value; // convention 6895 //? elementQuadratic[numberQuadratic++]=2.0*value; // convention 6896 elementQuadratic[numberQuadratic++]=value; // ? what about diagonal 6894 6897 largestColumn = CoinMax(largestColumn,jColumn); 6895 6898 } else if (jColumn==-2) { -
branches/devel/Cbc/src/CbcSolver.cpp
r606 r612 475 475 int * knapsackRow, int &numberKnapsack, 476 476 CglStored & stored, int logLevel, 477 int fixedPriority, int SOSPriority )477 int fixedPriority, int SOSPriority,CoinModel & tightenedModel) 478 478 { 479 479 int maxTotal = numberKnapsack; … … 514 514 CoinModel coinModel=*si->coinModel(); 515 515 assert(coinModel.numberRows()>0); 516 tightenedModel = coinModel; 516 517 int numberRows = coinModel.numberRows(); 517 518 // Mark variables … … 953 954 si=NULL; 954 955 if (!badModel) { 956 finalModel->setDblParam(OsiObjOffset,coinModel.objectiveOffset()); 955 957 return finalModel; 956 958 } else { … … 1300 1302 #ifdef COIN_HAS_ASL 1301 1303 CoinModel * coinModel = NULL; 1304 <<<<<<< .mine 1305 CglStored storedAmpl; 1306 ======= 1307 >>>>>>> .r611 1302 1308 ampl_info info; 1303 CglStored storedAmpl;1304 1309 CoinModel saveCoinModel; 1310 CoinModel saveTightenedModel; 1305 1311 int * whichColumn = NULL; 1306 1312 int * knapsackStart=NULL; … … 1407 1413 complicatedInteger=1; 1408 1414 if (info.cut) { 1409 printf("warning - cuts with LOS\n"); 1415 printf("Sorry - can't do cuts with LOS as ruins delicate row order\n"); 1416 abort(); 1410 1417 int numberRows = info.numberRows; 1411 1418 int * whichRow = new int [numberRows]; … … 1429 1436 } 1430 1437 solver->deleteRows(nDelete,whichRow); 1438 // and special matrix 1439 si->cleanMatrix()->deleteRows(nDelete,whichRow); 1431 1440 delete [] whichRow; 1432 1441 } … … 3157 3166 OsiSolverInterface * solver = expandKnapsack(saveCoinModel,whichColumn,knapsackStart, 3158 3167 knapsackRow,numberKnapsack, 3159 storedAmpl,logLevel,extra1,extra2); 3168 storedAmpl,logLevel,extra1,extra2, 3169 saveTightenedModel); 3160 3170 if (solver) { 3161 3171 clpSolver = dynamic_cast< OsiClpSolverInterface*> (solver); … … 4457 4467 info.primalSolution = (double *) malloc(numberColumns*sizeof(double)); 4458 4468 // Fills in original solution (coinModel length) 4459 afterKnapsack(save CoinModel, whichColumn, knapsackStart,4469 afterKnapsack(saveTightenedModel, whichColumn, knapsackStart, 4460 4470 knapsackRow, numberKnapsack, 4461 4471 lpSolver->primalColumnSolution(), info.primalSolution,1);
Note: See TracChangeset
for help on using the changeset viewer.