Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • stable/2.8/Cbc/src/CbcNode.cpp

    r2055 r2098  
    699699                        if (saveUpper[iColumn] > saveLower[iColumn]) {
    700700                            double value = saveSolution[iColumn];
     701                            // clean
     702                            value = CoinMin(value,saveUpper[iColumn]);
     703                            value = CoinMax(value,saveLower[iColumn]);
    701704                            if (hotstartPriorities)
    702705                                priorityLevel = hotstartPriorities[iColumn];
     
    14121415                        choice[i].possibleBranch = NULL;
    14131416                        const OsiObject * object = model->object(thisChoice.objectNumber);
    1414                         int preferredWay;
    1415                         double infeasibility = object->infeasibility(&usefulInfo, preferredWay);
     1417                        double infeasibility = object->checkInfeasibility(&usefulInfo);
    14161418                        if (!infeasibility) {
    14171419                            // take out
     
    16261628            CbcObject * obj =   dynamic_cast <CbcObject *>(object) ;
    16271629            if (!obj || !obj->optionalObject()) {
    1628                 int preferredWay;
    1629                 double infeasibility = object->infeasibility(&usefulInfo, preferredWay);
     1630                double infeasibility = object->checkInfeasibility(&usefulInfo);
    16301631                if (infeasibility) {
    16311632                    useOldWay = true;
     
    20472048                CbcSimpleIntegerDynamicPseudoCost * dynamicObject =
    20482049                    dynamic_cast <CbcSimpleIntegerDynamicPseudoCost *>(object) ;
    2049                 int preferredWay;
    2050                 double infeasibility = object->infeasibility(&usefulInfo, preferredWay);
     2050                double infeasibility = object->checkInfeasibility(&usefulInfo);
    20512051                int priorityLevel = object->priority();
    20522052                if (hotstartSolution) {
     
    20752075                                    //else
    20762076                                    infeasibility = fabs(value - targetValue);
    2077                                     //if (targetValue==1.0)
    2078                                     //infeasibility += 1.0;
    2079                                     if (value > targetValue) {
    2080                                         preferredWay = -1;
    2081                                     } else {
    2082                                         preferredWay = 1;
    2083                                     }
    20842077                                    priorityLevel = CoinAbs(priorityLevel);
    20852078                                } else if (priorityLevel < 0) {
    20862079                                    priorityLevel = CoinAbs(priorityLevel);
    2087                                     if (targetValue == saveLower[iColumn]) {
     2080                                    if (targetValue == saveLower[iColumn] ||
     2081                                    targetValue == saveUpper[iColumn]) {
    20882082                                        infeasibility = integerTolerance + 1.0e-12;
    2089                                         preferredWay = -1;
    2090                                     } else if (targetValue == saveUpper[iColumn]) {
    2091                                         infeasibility = integerTolerance + 1.0e-12;
    2092                                         preferredWay = 1;
    20932083                                    } else {
    20942084                                        // can't
     
    35883578            if (branch_) {
    35893579                 const OsiObject * object = model->object(bestChoice);
    3590                  int preferredWay;
    3591                  double infeasibility = object->infeasibility(&usefulInfo, preferredWay);
     3580                 double infeasibility = object->checkInfeasibility(&usefulInfo);
    35923581                 if (!infeasibility) {
    35933582                   // take out
     
    35953584                   branch_ = NULL;
    35963585                 } else {
     3586                   // get preferred way
     3587                   int preferredWay;
     3588                   object->infeasibility(&usefulInfo, preferredWay);
    35973589                   CbcBranchingObject * branchObj =
    35983590                     dynamic_cast <CbcBranchingObject *>(branch_) ;
     
    38293821        if (!dynamicObject)
    38303822            continue;
    3831         int preferredWay;
    3832         double infeasibility = object->infeasibility(&usefulInfo, preferredWay);
     3823        double infeasibility = object->checkInfeasibility(&usefulInfo);
    38333824        int iColumn = dynamicObject->columnNumber();
    38343825        if (saveUpper[iColumn] == saveLower[iColumn])
Note: See TracChangeset for help on using the changeset viewer.