Changeset 702


Ignore:
Timestamp:
Jul 24, 2007 3:52:59 PM (12 years ago)
Author:
forrest
Message:

changes for gcc 4.3

Location:
trunk/Cbc/src
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cbc/src/CbcBranchActual.cpp

    r640 r702  
    19671967  if (beforeSolution) {
    19681968    if (!bestObject_) {
    1969       bestNumberUp_=INT_MAX;
    1970       bestNumberDown_=INT_MAX;
     1969      bestNumberUp_=COIN_INT_MAX;
     1970      bestNumberDown_=COIN_INT_MAX;
    19711971    }
    19721972    // before solution - choose smallest number
     
    21172117       4 - take cheapest up branch if infeasibilities same
    21182118    */
    2119     int bestNumber=INT_MAX;
     2119    int bestNumber=COIN_INT_MAX;
    21202120    double bestCriterion=-1.0e50;
    21212121    double alternativeCriterion = -1.0;
  • trunk/Cbc/src/CbcBranchDynamic.cpp

    r699 r702  
    12661266  if (!bestObject_) {
    12671267    bestCriterion_=-1.0;
    1268     bestNumberUp_=INT_MAX;
    1269     bestNumberDown_=INT_MAX;
     1268    bestNumberUp_=COIN_INT_MAX;
     1269    bestNumberDown_=COIN_INT_MAX;
    12701270  }
    12711271  if (stateOfSearch<=1&&thisOne->model()->currentNode()->depth()>=8) {
  • trunk/Cbc/src/CbcCutGenerator.cpp

    r687 r702  
    479479CbcCutSubsetModifier::CbcCutSubsetModifier ()
    480480  : CbcCutModifier(),
    481     firstOdd_(INT_MAX)
     481    firstOdd_(COIN_INT_MAX)
    482482{
    483483}
  • trunk/Cbc/src/CbcFathomDynamicProgramming.cpp

    r310 r702  
    195195  // check size of array needed
    196196  double size=1.0;
    197   double check = INT_MAX;
     197  double check = COIN_INT_MAX;
    198198  for (i=0;i<numberRows;i++) {
    199199    int n= (int) floor(rhs[i]+0.5);
     
    224224  // set size needed
    225225  if (size>=check)
    226     size_=INT_MAX;
     226    size_=COIN_INT_MAX;
    227227  else
    228228    size_=(int) size;
  • trunk/Cbc/src/CbcFathomDynamicProgramming.hpp

    r39 r702  
    6969  bool tryColumn(int numberElements, const int * rows,
    7070                    const double * coefficients, float cost,
    71                     int upper=INT_MAX);
     71                    int upper=COIN_INT_MAX);
    7272  /// Returns cost array
    7373  inline const float * cost() const
  • trunk/Cbc/src/CbcLinked.cpp

    r700 r702  
    669669              double * solution2 = NULL;
    670670              int numberColumns = quadraticModel_->numberColumns();
    671               int depth=6;
     671              int depth = cbcModel_->currentNode() ? cbcModel_->currentNode()->depth() : 0;
    672672              if (depth<5) {
    673673                ClpSimplex qpTemp(*quadraticModel_);
     
    683683                assert (!qpTemp.problemStatus());
    684684                if (qpTemp.objectiveValue()<bestObjectiveValue_-1.0e-3&&!qpTemp.problemStatus()) {
     685                  solution2 = CoinCopyOfArray(qpTemp.primalColumnSolution(),numberColumns);
    685686                } else {
    686687                  printf("QP says expensive - kill\n");
     688                  modelPtr_->setProblemStatus(1);
     689                  modelPtr_->setObjectiveValue(COIN_DBL_MAX);
     690                  break;
    687691                }
    688692              }
    689               cbcModel_->lockThread();
    690693              const double * solution = getColSolution();
    691694              // add OA cut
    692               double offset=0.0;
    693               double * gradient = new double [numberColumns+1];
    694               // gradient from bilinear
    695               int i;
    696               CoinZeroN(gradient,numberColumns+1);
    697               //const double * objective = modelPtr_->objective();
    698               assert (objectiveRow_>=0);
    699               const double * element = originalRowCopy_->getElements();
    700               const int * column2 = originalRowCopy_->getIndices();
    701               const CoinBigIndex * rowStart = originalRowCopy_->getVectorStarts();
    702               //const int * rowLength = originalRowCopy_->getVectorLengths();
    703               //int numberColumns2 = coinModel_.numberColumns();
    704               for ( i=rowStart[objectiveRow_];i<rowStart[objectiveRow_+1];i++)
    705                 gradient[column2[i]] = element[i];
    706               //const double * columnLower = modelPtr_->columnLower();
    707               //const double * columnUpper = modelPtr_->columnUpper();
    708               for ( i =0;i<numberObjects_;i++) {
    709                 OsiBiLinear * obj = dynamic_cast<OsiBiLinear *> (object_[i]);
    710                 if (obj) {
    711                   int xColumn = obj->xColumn();
    712                   int yColumn = obj->yColumn();
    713                   if (xColumn!=yColumn) {
    714                     double coefficient = /* 2.0* */obj->coefficient();
    715                     gradient[xColumn] += coefficient*solution[yColumn];
    716                     gradient[yColumn] += coefficient*solution[xColumn];
    717                     offset += coefficient*solution[xColumn]*solution[yColumn];
    718                   } else {
    719                     double coefficient = obj->coefficient();
    720                     gradient[xColumn] += 2.0*coefficient*solution[yColumn];
    721                     offset += coefficient*solution[xColumn]*solution[yColumn];
    722                   }
    723                 }
    724               }
    725               // assume convex
    726               double rhs = 0.0;
    727               int * column = new int[numberColumns+1];
    728               int n=0;
    729               for (int i=0;i<numberColumns;i++) {
    730                 double value = gradient[i];
    731                 if (fabs(value)>1.0e-12) {
    732                   gradient[n]=value;
    733                   rhs += value*solution[i];
    734                   column[n++]=i;
    735                 }
    736               }
    737               gradient[n]=-1.0;
    738               assert (objectiveVariable_>=0);
    739               rhs -= solution[objectiveVariable_];
    740               column[n++]=objectiveVariable_;
    741               if (rhs>offset+1.0e-5) {
    742                 gen2->addCut(-COIN_DBL_MAX,offset+1.0e-7,n,column,gradient);
    743                 //printf("added cut with %d elements\n",n);
    744               }
     695              doAOCuts(gen2, solution, solution);
    745696              if (solution2) {
    746697                doAOCuts(gen2, solution, solution2);
    747698                delete [] solution2;
    748699              }
    749               delete [] gradient;
    750               delete [] column;
    751               cbcModel_->unlockThread();
    752700              break;
    753701            }
  • trunk/Cbc/src/CbcMessage.cpp

    r687 r702  
    77
    88#include "CbcMessage.hpp"
     9#include <cstring>
    910
    1011typedef struct {
  • trunk/Cbc/src/CbcModel.cpp

    r699 r702  
    28142814  continuousObjective_(COIN_DBL_MAX),
    28152815  originalContinuousObjective_(COIN_DBL_MAX),
    2816   continuousInfeasibilities_(INT_MAX),
     2816  continuousInfeasibilities_(COIN_INT_MAX),
    28172817  maximumCutPassesAtRoot_(20),
    28182818  maximumCutPasses_(10),
     
    29522952  continuousObjective_(COIN_DBL_MAX),
    29532953  originalContinuousObjective_(COIN_DBL_MAX),
    2954   continuousInfeasibilities_(INT_MAX),
     2954  continuousInfeasibilities_(COIN_INT_MAX),
    29552955  maximumCutPassesAtRoot_(20),
    29562956  maximumCutPasses_(10),
     
    33753375    continuousObjective_=COIN_DBL_MAX;
    33763376    originalContinuousObjective_=COIN_DBL_MAX;
    3377     continuousInfeasibilities_=INT_MAX;
     3377    continuousInfeasibilities_=COIN_INT_MAX;
    33783378    maximumNumberCuts_=0;
    33793379    tree_->cleanTree(this,-COIN_DBL_MAX,bestPossibleObjective_);
  • trunk/Cbc/src/CbcNode.cpp

    r687 r702  
    12311231      // initialize sum of "infeasibilities"
    12321232      sumInfeasibilities_ = 0.0;
    1233       int bestPriority=INT_MAX;
     1233      int bestPriority=COIN_INT_MAX;
    12341234      /*
    12351235        Scan for branching objects that indicate infeasibility. Choose the best
     
    20212021        double averageCostPerIteration=0.0;
    20222022        double totalNumberIterations=1.0;
    2023         int smallestNumberInfeasibilities=INT_MAX;
     2023        int smallestNumberInfeasibilities=COIN_INT_MAX;
    20242024        for (i=0;i<numberStrong;i++) {
    20252025          totalNumberIterations += choice[i].numItersDown +
     
    24062406      // initialize sum of "infeasibilities"
    24072407      sumInfeasibilities_ = 0.0;
    2408       int bestPriority=INT_MAX;
     2408      int bestPriority=COIN_INT_MAX;
    24092409      int number01 = 0;
    24102410      const fixEntry * entry = NULL;
  • trunk/Cbc/src/CbcSolver.cpp

    r701 r702  
    9999#include "OsiColCut.hpp"
    100100#ifndef COIN_HAS_LINK
    101 #ifdef COIN_HAS_ASL
     101//#ifdef COIN_HAS_ASL
    102102#define COIN_HAS_LINK
    103 #endif
     103//#endif
    104104#endif
    105105#ifdef COIN_HAS_LINK
     
    469469  }
    470470}
    471 #ifdef COIN_HAS_LINK
     471#ifdef COIN_HAS_ASL
    472472/*  Returns OsiSolverInterface (User should delete)
    473473    On entry numberKnapsack is maximum number of Total entries
     
    14641464    int * sosPriority=NULL;
    14651465    CglStored storedAmpl;
     1466    CoinModel * coinModel = NULL;
    14661467#ifdef COIN_HAS_ASL
    1467     CoinModel * coinModel = NULL;
    14681468    ampl_info info;
    14691469    CoinModel saveCoinModel;
     
    14841484            noPrinting=false;
    14851485            info.logLevel=atoi(equals+1);
     1486            int log = whichParam(LOGLEVEL,numberParameters,parameters);
     1487            parameters[log].setIntValue(info.logLevel);
    14861488            // mark so won't be overWritten
    14871489            info.numberRows=-1234567;
     
    15591561        // need some relative granularity
    15601562        si->setDefaultBound(100.0);
    1561         si->setDefaultMeshSize(0.01);
     1563        si->setDefaultMeshSize(0.001);
    15621564        si->setDefaultBound(100000.0);
    15631565        si->setIntegerPriority(1000);
    15641566        si->setBiLinearPriority(10000);
    15651567        CoinModel * model2 = (CoinModel *) coinModel;
    1566         si->load(*model2,true,info.logLevel);
     1568        int logLevel = whichParam(LOGLEVEL,numberParameters,parameters);
     1569        si->load(*model2,true,logLevel);
    15671570        // redo
    15681571        solver = model.solver();
     
    15711574        clpSolver->messageHandler()->setLogLevel(0) ;
    15721575        testOsiParameters=0;
     1576        parameters[whichParam(TESTOSI,numberParameters,parameters)].setIntValue(0);
    15731577        complicatedInteger=1;
    15741578        if (info.cut) {
     
    27492753                    // need some relative granularity
    27502754                    si->setDefaultBound(100.0);
    2751                     si->setDefaultMeshSize(0.01);
     2755                    si->setDefaultMeshSize(0.001);
    27522756                    si->setDefaultBound(1000.0);
    27532757                    si->setIntegerPriority(1000);
     
    27552759                    si->setSpecialOptions2(2+4+8);
    27562760                    CoinModel * model2 = (CoinModel *) coinModel;
    2757                     si->load(*model2,true,info.logLevel);
     2761                    si->load(*model2,true, parameters[log].intValue());
    27582762                    // redo
    27592763                    solver = model.solver();
     
    32833287              }
    32843288              int testOsiOptions = parameters[whichParam(TESTOSI,numberParameters,parameters)].intValue();
    3285 #ifdef COIN_HAS_LINK
     3289#ifdef COIN_HAS_ASL
    32863290              // If linked then see if expansion wanted
    32873291              {
     
    49944998                // need some relative granularity
    49954999                si->setDefaultBound(100.0);
    4996                 si->setDefaultMeshSize(0.01);
     5000                si->setDefaultMeshSize(0.001);
    49975001                si->setDefaultBound(100.0);
    49985002                si->setIntegerPriority(1000);
Note: See TracChangeset for help on using the changeset viewer.