Changeset 871 for trunk


Ignore:
Timestamp:
Feb 13, 2008 3:52:57 PM (12 years ago)
Author:
forrest
Message:

add diving heuristics

Location:
trunk
Files:
12 edited

Legend:

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

    r868 r871  
    2626  :CbcHeuristic(model)
    2727{
     28  downLocks_ =NULL;
     29  upLocks_ = NULL;
    2830  // Get a copy of original matrix
    2931  assert(model.solver());
    30   matrix_ = *model.solver()->getMatrixByCol();
    31   validate();
     32  // model may have empty matrix - wait until setModel
     33  const CoinPackedMatrix * matrix = model.solver()->getMatrixByCol();
     34  if (matrix) {
     35    matrix_ = *matrix;
     36  }
    3237  percentageToFix_ = 0.2;
    3338  maxIterations_ = 100;
     
    5863  CbcHeuristic::generateCpp(fp,"heuristicDiveCoefficient");
    5964  if (percentageToFix_!=other.percentageToFix_)
    60     fprintf(fp,"3  heuristicDiveCoefficient.setPercentageToFix(%d);\n",percentageToFix_);
     65    fprintf(fp,"3  heuristicDiveCoefficient.setPercentageToFix(%.2f);\n",percentageToFix_);
    6166  else
    62     fprintf(fp,"4  heuristicDiveCoefficient.setPercentageToFix(%d);\n",percentageToFix_);
     67    fprintf(fp,"4  heuristicDiveCoefficient.setPercentageToFix(%.2f);\n",percentageToFix_);
    6368  if (maxIterations_!=other.maxIterations_)
    6469    fprintf(fp,"3  heuristicDiveCoefficient.setMaxIterations(%d);\n",maxIterations_);
     
    6671    fprintf(fp,"4  heuristicDiveCoefficient.setMaxIterations(%d);\n",maxIterations_);
    6772  if (maxTime_!=other.maxTime_)
    68     fprintf(fp,"3  heuristicDiveCoefficient.setMaxTime(%d);\n",maxTime_);
     73    fprintf(fp,"3  heuristicDiveCoefficient.setMaxTime(%.2f);\n",maxTime_);
    6974  else
    70     fprintf(fp,"4  heuristicDiveCoefficient.setMaxTime(%d);\n",maxTime_);
     75    fprintf(fp,"4  heuristicDiveCoefficient.setMaxTime(%.2f);\n",maxTime_);
    7176  fprintf(fp,"3  cbcModel->addHeuristic(&heuristicDiveCoefficient);\n");
    7277}
     
    8287{
    8388  int numberIntegers = model_->numberIntegers();
    84   downLocks_ = CoinCopyOfArray(rhs.downLocks_,numberIntegers);
    85   upLocks_ = CoinCopyOfArray(rhs.upLocks_,numberIntegers);
     89  if (rhs.downLocks_) {
     90    int numberIntegers = model_->numberIntegers();
     91    downLocks_ = CoinCopyOfArray(rhs.downLocks_,numberIntegers);
     92    upLocks_ = CoinCopyOfArray(rhs.upLocks_,numberIntegers);
     93  } else {
     94    downLocks_ = NULL;
     95    upLocks_ = NULL;
     96  }
    8697}
    8798
     
    98109    delete [] downLocks_;
    99110    delete [] upLocks_;
    100     int numberIntegers = model_->numberIntegers();
    101     downLocks_ = CoinCopyOfArray(rhs.downLocks_,numberIntegers);
    102     upLocks_ = CoinCopyOfArray(rhs.upLocks_,numberIntegers);
     111    if (rhs.downLocks_) {
     112      int numberIntegers = model_->numberIntegers();
     113      downLocks_ = CoinCopyOfArray(rhs.downLocks_,numberIntegers);
     114      upLocks_ = CoinCopyOfArray(rhs.upLocks_,numberIntegers);
     115    } else {
     116      downLocks_ = NULL;
     117      upLocks_ = NULL;
     118    }
    103119  }
    104120  return *this;
     
    112128  // Get a copy of original matrix
    113129  assert(model_->solver());
    114   matrix_ = *model_->solver()->getMatrixByCol();
    115   validate();
     130  // model may have empty matrix - wait until setModel
     131  const CoinPackedMatrix * matrix = model_->solver()->getMatrixByCol();
     132  if (matrix) {
     133    matrix_ = *matrix;
     134    validate();
     135  }
    116136}
    117137
     
    165185  bool * fixedAtLowerBound = new bool [numberIntegers];
    166186
    167   const int maxNumberAtBoundToFix = floor(percentageToFix_ * numberIntegers);
     187  const int maxNumberAtBoundToFix = (int) floor(percentageToFix_ * numberIntegers);
    168188
    169189  // count how many fractional variables
     
    418438  // Get a copy of original matrix (and by row for rounding);
    419439  assert(model_->solver());
    420   matrix_ = *model_->solver()->getMatrixByCol();
    421   //  matrixByRow_ = *model_->solver()->getMatrixByRow();
    422   // make sure model okay for heuristic
    423   validate();
     440  const CoinPackedMatrix * matrix = model_->solver()->getMatrixByCol();
     441  if (matrix) {
     442    matrix_ = *matrix;
     443    // make sure model okay for heuristic
     444    validate();
     445  }
    424446}
    425447
     
    436458  int numberIntegers = model_->numberIntegers();
    437459  const int * integerVariable = model_->integerVariable();
     460  delete [] downLocks_;
     461  delete [] upLocks_;
    438462  downLocks_ = new unsigned short [numberIntegers];
    439463  upLocks_ = new unsigned short [numberIntegers];
  • trunk/Cbc/src/CbcHeuristicDiveFractional.cpp

    r868 r871  
    2626  :CbcHeuristic(model)
    2727{
     28  downLocks_ =NULL;
     29  upLocks_ = NULL;
    2830  // Get a copy of original matrix
    2931  assert(model.solver());
    30   matrix_ = *model.solver()->getMatrixByCol();
    31   validate();
     32  // model may have empty matrix - wait until setModel
     33  const CoinPackedMatrix * matrix = model.solver()->getMatrixByCol();
     34  if (matrix) {
     35    matrix_ = *matrix;
     36  }
    3237  percentageToFix_ = 0.2;
    3338  maxIterations_ = 100;
     
    5863  CbcHeuristic::generateCpp(fp,"heuristicDiveFractional");
    5964  if (percentageToFix_!=other.percentageToFix_)
    60     fprintf(fp,"3  heuristicDiveFractional.setPercentageToFix(%d);\n",percentageToFix_);
     65    fprintf(fp,"3  heuristicDiveFractional.setPercentageToFix(%.f);\n",percentageToFix_);
    6166  else
    62     fprintf(fp,"4  heuristicDiveFractional.setPercentageToFix(%d);\n",percentageToFix_);
     67    fprintf(fp,"4  heuristicDiveFractional.setPercentageToFix(%.f);\n",percentageToFix_);
    6368  if (maxIterations_!=other.maxIterations_)
    6469    fprintf(fp,"3  heuristicDiveFractional.setMaxIterations(%d);\n",maxIterations_);
     
    6671    fprintf(fp,"4  heuristicDiveFractional.setMaxIterations(%d);\n",maxIterations_);
    6772  if (maxTime_!=other.maxTime_)
    68     fprintf(fp,"3  heuristicDiveFractional.setMaxTime(%d);\n",maxTime_);
     73    fprintf(fp,"3  heuristicDiveFractional.setMaxTime(%.2f);\n",maxTime_);
    6974  else
    70     fprintf(fp,"4  heuristicDiveFractional.setMaxTime(%d);\n",maxTime_);
     75    fprintf(fp,"4  heuristicDiveFractional.setMaxTime(%.2f);\n",maxTime_);
    7176  fprintf(fp,"3  cbcModel->addHeuristic(&heuristicDiveFractional);\n");
    7277}
     
    8287{
    8388  int numberIntegers = model_->numberIntegers();
    84   downLocks_ = CoinCopyOfArray(rhs.downLocks_,numberIntegers);
    85   upLocks_ = CoinCopyOfArray(rhs.upLocks_,numberIntegers);
     89  if (rhs.downLocks_) {
     90    int numberIntegers = model_->numberIntegers();
     91    downLocks_ = CoinCopyOfArray(rhs.downLocks_,numberIntegers);
     92    upLocks_ = CoinCopyOfArray(rhs.upLocks_,numberIntegers);
     93  } else {
     94    downLocks_ = NULL;
     95    upLocks_ = NULL;
     96  }
    8697}
    8798
     
    98109    delete [] downLocks_;
    99110    delete [] upLocks_;
    100     int numberIntegers = model_->numberIntegers();
    101     downLocks_ = CoinCopyOfArray(rhs.downLocks_,numberIntegers);
    102     upLocks_ = CoinCopyOfArray(rhs.upLocks_,numberIntegers);
     111    if (rhs.downLocks_) {
     112      int numberIntegers = model_->numberIntegers();
     113      downLocks_ = CoinCopyOfArray(rhs.downLocks_,numberIntegers);
     114      upLocks_ = CoinCopyOfArray(rhs.upLocks_,numberIntegers);
     115    } else {
     116      downLocks_ = NULL;
     117      upLocks_ = NULL;
     118    }
    103119  }
    104120  return *this;
     
    112128  // Get a copy of original matrix
    113129  assert(model_->solver());
    114   matrix_ = *model_->solver()->getMatrixByCol();
    115   validate();
     130  // model may have empty matrix - wait until setModel
     131  const CoinPackedMatrix * matrix = model_->solver()->getMatrixByCol();
     132  if (matrix) {
     133    matrix_ = *matrix;
     134    validate();
     135  }
    116136}
    117137
     
    165185  bool * fixedAtLowerBound = new bool [numberIntegers];
    166186
    167   const int maxNumberAtBoundToFix = floor(percentageToFix_ * numberIntegers);
     187  const int maxNumberAtBoundToFix = (int) floor(percentageToFix_ * numberIntegers);
    168188
    169189  // count how many fractional variables
     
    404424  // Get a copy of original matrix (and by row for rounding);
    405425  assert(model_->solver());
    406   matrix_ = *model_->solver()->getMatrixByCol();
    407   //  matrixByRow_ = *model_->solver()->getMatrixByRow();
    408   // make sure model okay for heuristic
    409   validate();
     426  const CoinPackedMatrix * matrix = model_->solver()->getMatrixByCol();
     427  if (matrix) {
     428    matrix_ = *matrix;
     429    // make sure model okay for heuristic
     430    validate();
     431  }
    410432}
    411433
     
    422444  int numberIntegers = model_->numberIntegers();
    423445  const int * integerVariable = model_->integerVariable();
     446  delete [] downLocks_;
     447  delete [] upLocks_;
    424448  downLocks_ = new unsigned short [numberIntegers];
    425449  upLocks_ = new unsigned short [numberIntegers];
  • trunk/Cbc/src/CbcHeuristicDiveGuided.cpp

    r868 r871  
    2626  :CbcHeuristic(model)
    2727{
     28  downLocks_ =NULL;
     29  upLocks_ = NULL;
    2830  // Get a copy of original matrix
    2931  assert(model.solver());
    30   matrix_ = *model.solver()->getMatrixByCol();
    31   validate();
     32  // model may have empty matrix - wait until setModel
     33  const CoinPackedMatrix * matrix = model.solver()->getMatrixByCol();
     34  if (matrix) {
     35    matrix_ = *matrix;
     36  }
    3237  percentageToFix_ = 0.2;
    3338  maxIterations_ = 100;
     
    5863  CbcHeuristic::generateCpp(fp,"heuristicDiveGuided");
    5964  if (percentageToFix_!=other.percentageToFix_)
    60     fprintf(fp,"3  heuristicDiveGuided.setPercentageToFix(%d);\n",percentageToFix_);
     65    fprintf(fp,"3  heuristicDiveGuided.setPercentageToFix(%.2f);\n",percentageToFix_);
    6166  else
    62     fprintf(fp,"4  heuristicDiveGuided.setPercentageToFix(%d);\n",percentageToFix_);
     67    fprintf(fp,"4  heuristicDiveGuided.setPercentageToFix(%.2f);\n",percentageToFix_);
    6368  if (maxIterations_!=other.maxIterations_)
    6469    fprintf(fp,"3  heuristicDiveGuided.setMaxIterations(%d);\n",maxIterations_);
     
    6671    fprintf(fp,"4  heuristicDiveGuided.setMaxIterations(%d);\n",maxIterations_);
    6772  if (maxTime_!=other.maxTime_)
    68     fprintf(fp,"3  heuristicDiveGuided.setMaxTime(%d);\n",maxTime_);
     73    fprintf(fp,"3  heuristicDiveGuided.setMaxTime(%.2f);\n",maxTime_);
    6974  else
    70     fprintf(fp,"4  heuristicDiveGuided.setMaxTime(%d);\n",maxTime_);
     75    fprintf(fp,"4  heuristicDiveGuided.setMaxTime(%.2f);\n",maxTime_);
    7176  fprintf(fp,"3  cbcModel->addHeuristic(&heuristicDiveGuided);\n");
    7277}
     
    8287{
    8388  int numberIntegers = model_->numberIntegers();
    84   downLocks_ = CoinCopyOfArray(rhs.downLocks_,numberIntegers);
    85   upLocks_ = CoinCopyOfArray(rhs.upLocks_,numberIntegers);
     89  if (rhs.downLocks_) {
     90    int numberIntegers = model_->numberIntegers();
     91    downLocks_ = CoinCopyOfArray(rhs.downLocks_,numberIntegers);
     92    upLocks_ = CoinCopyOfArray(rhs.upLocks_,numberIntegers);
     93  } else {
     94    downLocks_ = NULL;
     95    upLocks_ = NULL;
     96  }
    8697}
    8798
     
    98109    delete [] downLocks_;
    99110    delete [] upLocks_;
    100     int numberIntegers = model_->numberIntegers();
    101     downLocks_ = CoinCopyOfArray(rhs.downLocks_,numberIntegers);
    102     upLocks_ = CoinCopyOfArray(rhs.upLocks_,numberIntegers);
     111    if (rhs.downLocks_) {
     112      int numberIntegers = model_->numberIntegers();
     113      downLocks_ = CoinCopyOfArray(rhs.downLocks_,numberIntegers);
     114      upLocks_ = CoinCopyOfArray(rhs.upLocks_,numberIntegers);
     115    } else {
     116      downLocks_ = NULL;
     117      upLocks_ = NULL;
     118    }
    103119  }
    104120  return *this;
     
    112128  // Get a copy of original matrix
    113129  assert(model_->solver());
    114   matrix_ = *model_->solver()->getMatrixByCol();
    115   validate();
     130  // model may have empty matrix - wait until setModel
     131  const CoinPackedMatrix * matrix = model_->solver()->getMatrixByCol();
     132  if (matrix) {
     133    matrix_ = *matrix;
     134    validate();
     135  }
    116136}
    117137
     
    169189  bool * fixedAtLowerBound = new bool [numberIntegers];
    170190
    171   const int maxNumberAtBoundToFix = floor(percentageToFix_ * numberIntegers);
     191  const int maxNumberAtBoundToFix = (int) floor(percentageToFix_ * numberIntegers);
    172192
    173193  // count how many fractional variables
     
    408428  // Get a copy of original matrix (and by row for rounding);
    409429  assert(model_->solver());
    410   matrix_ = *model_->solver()->getMatrixByCol();
    411   //  matrixByRow_ = *model_->solver()->getMatrixByRow();
    412   // make sure model okay for heuristic
    413   validate();
     430  const CoinPackedMatrix * matrix = model_->solver()->getMatrixByCol();
     431  if (matrix) {
     432    matrix_ = *matrix;
     433    // make sure model okay for heuristic
     434    validate();
     435  }
    414436}
    415437
     
    426448  int numberIntegers = model_->numberIntegers();
    427449  const int * integerVariable = model_->integerVariable();
     450  delete [] downLocks_;
     451  delete [] upLocks_;
    428452  downLocks_ = new unsigned short [numberIntegers];
    429453  upLocks_ = new unsigned short [numberIntegers];
  • trunk/Cbc/src/CbcHeuristicDiveVectorLength.cpp

    r868 r871  
    2828  // Get a copy of original matrix
    2929  assert(model.solver());
    30   matrix_ = *model.solver()->getMatrixByCol();
    31   validate();
     30  downLocks_ =NULL;
     31  upLocks_ = NULL;
     32  // model may have empty matrix - wait until setModel
     33  const CoinPackedMatrix * matrix = model.solver()->getMatrixByCol();
     34  if (matrix) {
     35    matrix_ = *matrix;
     36  }
    3237  percentageToFix_ = 0.2;
    3338  maxIterations_ = 100;
     
    5863  CbcHeuristic::generateCpp(fp,"heuristicDiveVectorLength");
    5964  if (percentageToFix_!=other.percentageToFix_)
    60     fprintf(fp,"3  heuristicDiveVectorLength.setPercentageToFix(%d);\n",percentageToFix_);
     65    fprintf(fp,"3  heuristicDiveVectorLength.setPercentageToFix(%.2f);\n",percentageToFix_);
    6166  else
    62     fprintf(fp,"4  heuristicDiveVectorLength.setPercentageToFix(%d);\n",percentageToFix_);
     67    fprintf(fp,"4  heuristicDiveVectorLength.setPercentageToFix(%.2f);\n",percentageToFix_);
    6368  if (maxIterations_!=other.maxIterations_)
    6469    fprintf(fp,"3  heuristicDiveVectorLength.setMaxIterations(%d);\n",maxIterations_);
     
    6671    fprintf(fp,"4  heuristicDiveVectorLength.setMaxIterations(%d);\n",maxIterations_);
    6772  if (maxTime_!=other.maxTime_)
    68     fprintf(fp,"3  heuristicDiveVectorLength.setMaxTime(%d);\n",maxTime_);
     73    fprintf(fp,"3  heuristicDiveVectorLength.setMaxTime(%.2f);\n",maxTime_);
    6974  else
    70     fprintf(fp,"4  heuristicDiveVectorLength.setMaxTime(%d);\n",maxTime_);
     75    fprintf(fp,"4  heuristicDiveVectorLength.setMaxTime(%.2f);\n",maxTime_);
    7176  fprintf(fp,"3  cbcModel->addHeuristic(&heuristicDiveVectorLength);\n");
    7277}
     
    8186  maxTime_(rhs.maxTime_)
    8287{
    83   int numberIntegers = model_->numberIntegers();
    84   downLocks_ = CoinCopyOfArray(rhs.downLocks_,numberIntegers);
    85   upLocks_ = CoinCopyOfArray(rhs.upLocks_,numberIntegers);
     88  if (rhs.downLocks_) {
     89    int numberIntegers = model_->numberIntegers();
     90    downLocks_ = CoinCopyOfArray(rhs.downLocks_,numberIntegers);
     91    upLocks_ = CoinCopyOfArray(rhs.upLocks_,numberIntegers);
     92  } else {
     93    downLocks_ = NULL;
     94    upLocks_ = NULL;
     95  }
    8696}
    8797
     
    99109    delete [] upLocks_;
    100110    int numberIntegers = model_->numberIntegers();
    101     downLocks_ = CoinCopyOfArray(rhs.downLocks_,numberIntegers);
    102     upLocks_ = CoinCopyOfArray(rhs.upLocks_,numberIntegers);
     111    if (rhs.downLocks_) {
     112      downLocks_ = CoinCopyOfArray(rhs.downLocks_,numberIntegers);
     113      upLocks_ = CoinCopyOfArray(rhs.upLocks_,numberIntegers);
     114    } else {
     115      downLocks_ = NULL;
     116      upLocks_ = NULL;
     117    }
    103118  }
    104119  return *this;
     
    112127  // Get a copy of original matrix
    113128  assert(model_->solver());
    114   matrix_ = *model_->solver()->getMatrixByCol();
    115   validate();
     129  // model may have empty matrix - wait until setModel
     130  const CoinPackedMatrix * matrix = model_->solver()->getMatrixByCol();
     131  if (matrix) {
     132    matrix_ = *matrix;
     133    validate();
     134  }
    116135}
    117136
     
    165184  bool * fixedAtLowerBound = new bool [numberIntegers];
    166185
    167   const int maxNumberAtBoundToFix = floor(percentageToFix_ * numberIntegers);
     186  const int maxNumberAtBoundToFix = (int) floor(percentageToFix_ * numberIntegers);
    168187
    169188  // count how many fractional variables
     
    411430  // Get a copy of original matrix (and by row for rounding);
    412431  assert(model_->solver());
    413   matrix_ = *model_->solver()->getMatrixByCol();
    414   //  matrixByRow_ = *model_->solver()->getMatrixByRow();
    415   // make sure model okay for heuristic
    416   validate();
     432  const CoinPackedMatrix * matrix = model_->solver()->getMatrixByCol();
     433  if (matrix) {
     434    matrix_ = *matrix;
     435    // make sure model okay for heuristic
     436    validate();
     437  }
    417438}
    418439
     
    429450  int numberIntegers = model_->numberIntegers();
    430451  const int * integerVariable = model_->integerVariable();
     452  delete [] downLocks_;
     453  delete [] upLocks_;
    431454  downLocks_ = new unsigned short [numberIntegers];
    432455  upLocks_ = new unsigned short [numberIntegers];
  • trunk/Cbc/src/CbcHeuristicRINS.cpp

    r838 r871  
    222222      numberTries_++;
    223223      if ((numberTries_%10)==0&&numberSuccesses_*3<numberTries_)
    224         howOften_ += howOften_*decayFactor_;
     224        howOften_ += (int) (howOften_*decayFactor_);
    225225    }
    226226
  • trunk/Cbc/src/CbcModel.cpp

    r867 r871  
    1288412884  }
    1288512885}
     12886/* Return pseudo costs
     12887   If not all integers or not pseudo costs - returns all zero
     12888   Length of arrays are numberIntegers() and entries
     12889      correspond to integerVariable()[i]
     12890      User must allocate arrays before call
     12891*/
     12892void
     12893CbcModel::fillPseudoCosts(double * downCosts, double * upCosts) const
     12894{
     12895  CoinZeroN(downCosts,numberIntegers_);
     12896  CoinZeroN(upCosts,numberIntegers_);
     12897  if (!allDynamic())
     12898    return; // Odd problem
     12899  int numberColumns = getNumCols();
     12900  int * back = new int[numberColumns];
     12901  int i;
     12902  for (i=0;i<numberColumns;i++)
     12903    back[i]=-1;
     12904  for (i=0;i<numberIntegers_;i++)
     12905    back[integerVariable_[i]]=i;
     12906  for ( i=0;i<numberObjects_;i++) {
     12907    CbcSimpleIntegerDynamicPseudoCost * obj =
     12908      dynamic_cast <CbcSimpleIntegerDynamicPseudoCost *>(object_[i]) ;
     12909    assert (obj);
     12910    int iColumn = obj->columnNumber();
     12911    iColumn = back[iColumn];
     12912    assert (iColumn>=0);
     12913    downCosts[iColumn]=obj->downDynamicPseudoCost();
     12914    upCosts[iColumn]=obj->upDynamicPseudoCost();
     12915  }
     12916  delete [] back;
     12917}
  • trunk/Cbc/src/CbcModel.hpp

    r864 r871  
    16711671  /// Fill in useful estimates
    16721672  void pseudoShadow(double * down, double * up);
     1673  /** Return pseudo costs
     1674      If not all integers or not pseudo costs - returns all zero
     1675      Length of arrays are numberIntegers() and entries
     1676      correspond to integerVariable()[i]
     1677      User must allocate arrays before call
     1678  */
     1679  void fillPseudoCosts(double * downCosts, double * upCosts) const;
    16731680  /** Do heuristics at root.
    16741681      0 - don't delete
     
    17091716  /// Increment strong info
    17101717  void incrementStrongInfo(int numberTimes, int numberIterations,
    1711                            int numberFixed, bool ifInfeasible);
     1718                           int numberFixed, bool ifInfeasible);
    17121719  /// Says whether all dynamic integers
    1713   inline bool allDynamic () { return ((ownership_&0x40000000)!=0) ; }
     1720  inline bool allDynamic () const { return ((ownership_&0x40000000)!=0) ; }
    17141721  /// Create C++ lines to get to current state
    17151722  void generateCpp( FILE * fp,int options);
  • trunk/Cbc/src/CbcSolver.cpp

    r862 r871  
    155155#include "CbcHeuristicFPump.hpp"
    156156#include "CbcHeuristicRINS.hpp"
     157#include "CbcHeuristicDiveCoefficient.hpp"
     158#include "CbcHeuristicDiveFractional.hpp"
     159#include "CbcHeuristicDiveGuided.hpp"
     160#include "CbcHeuristicDiveVectorLength.hpp"
    157161#include "CbcTreeLocal.hpp"
    158162#include "CbcCompareActual.hpp"
     
    32083212  int useRINS = parameters_[whichParam(RINS,numberParameters_,parameters_)].currentOptionAsInteger();
    32093213  int useRENS = parameters_[whichParam(RENS,numberParameters_,parameters_)].currentOptionAsInteger();
     3214  int useDIVING = parameters_[whichParam(DIVING,numberParameters_,parameters_)].currentOptionAsInteger();
    32103215  // FPump done first as it only works if no solution
    32113216  int kType = (type<3) ? type : 1;
     
    33493354      heuristic5.setDecayFactor(1.5);
    33503355    model->addHeuristic(&heuristic5) ;
     3356    anyToDo=true;
     3357  }
     3358  // change later?
     3359  if (useDIVING>=kType) {
     3360    if ((useDIVING&1)!=0) {
     3361      CbcHeuristicDiveCoefficient heuristicDC(*model);
     3362      heuristicDC.setHeuristicName("DiveCoefficient");
     3363      model->addHeuristic(&heuristicDC) ;
     3364    }
     3365    if ((useDIVING&2)!=0) {
     3366      CbcHeuristicDiveFractional heuristicDF(*model);
     3367      heuristicDF.setHeuristicName("DiveFractional");
     3368      model->addHeuristic(&heuristicDF) ;
     3369    }
     3370    if ((useDIVING&4)!=0) {
     3371      CbcHeuristicDiveGuided heuristicDG(*model);
     3372      heuristicDG.setHeuristicName("DiveGuided");
     3373      model->addHeuristic(&heuristicDG) ;
     3374    }
     3375    if ((useDIVING&8)!=0) {
     3376      CbcHeuristicDiveVectorLength heuristicDV(*model);
     3377      heuristicDV.setHeuristicName("DiveVectorLength");
     3378      model->addHeuristic(&heuristicDV) ;
     3379    }
    33513380    anyToDo=true;
    33523381  }
     
    43164345            }
    43174346          } else {
    4318             parameters_[iParam].setCurrentOption(action,!noPrinting_);
     4347            const char * message =
     4348              parameters_[iParam].setCurrentOptionWithMessage(action);
     4349            if (!noPrinting_) {
     4350              generalMessageHandler->message(CLP_GENERAL,generalMessages)
     4351                << message
     4352                <<CoinMessageEol;
     4353            }
    43194354            // for now hard wired
    43204355            switch (type) {
     
    45254560              break;
    45264561            case GREEDY:
    4527               defaultSettings=false; // user knows what she is doing
    4528               break;
     4562            case DIVING:
    45294563            case COMBINE:
    4530               defaultSettings=false; // user knows what she is doing
    4531               break;
    45324564            case LOCALTREE:
    45334565              defaultSettings=false; // user knows what she is doing
  • trunk/Cbc/src/Makefile.am

    r866 r871  
    3535        CbcFeasibilityBase.hpp \
    3636        CbcHeuristic.cpp CbcHeuristic.hpp \
     37        CbcHeuristicDiveCoefficient.cpp CbcHeuristicDiveCoefficient.hpp \
     38        CbcHeuristicDiveFractional.cpp CbcHeuristicDiveFractional.hpp \
     39        CbcHeuristicDiveGuided.cpp CbcHeuristicDiveGuided.hpp \
     40        CbcHeuristicDiveVectorLength.cpp CbcHeuristicDiveLength.hpp \
    3741        CbcHeuristicFPump.cpp CbcHeuristicFPump.hpp \
    3842        CbcHeuristicGreedy.cpp CbcHeuristicGreedy.hpp \
     
    303307        CbcFeasibilityBase.hpp \
    304308        CbcHeuristic.hpp \
     309        CbcHeuristicDiveCoefficient.hpp \
     310        CbcHeuristicDiveFractional.hpp \
     311        CbcHeuristicDiveGuided.hpp \
     312        CbcHeuristicDiveVectorLength.hpp \
    305313        CbcHeuristicFPump.hpp \
    306314        CbcHeuristicGreedy.hpp \
  • trunk/Cbc/src/Makefile.in

    r866 r871  
    162162        CbcCutGenerator.lo CbcEventHandler.lo CbcFathom.lo \
    163163        CbcFathomDynamicProgramming.lo CbcHeuristic.lo \
     164        CbcHeuristicDiveCoefficient.lo CbcHeuristicDiveFractional.lo \
     165        CbcHeuristicDiveGuided.lo CbcHeuristicDiveVectorLength.lo \
    164166        CbcHeuristicFPump.lo CbcHeuristicGreedy.lo \
    165167        CbcHeuristicLocal.lo CbcHeuristicRINS.lo CbcMessage.lo \
     
    508510        CbcFeasibilityBase.hpp \
    509511        CbcHeuristic.cpp CbcHeuristic.hpp \
     512        CbcHeuristicDiveCoefficient.cpp CbcHeuristicDiveCoefficient.hpp \
     513        CbcHeuristicDiveFractional.cpp CbcHeuristicDiveFractional.hpp \
     514        CbcHeuristicDiveGuided.cpp CbcHeuristicDiveGuided.hpp \
     515        CbcHeuristicDiveVectorLength.cpp CbcHeuristicDiveLength.hpp \
    510516        CbcHeuristicFPump.cpp CbcHeuristicFPump.hpp \
    511517        CbcHeuristicGreedy.cpp CbcHeuristicGreedy.hpp \
     
    644650        CbcFeasibilityBase.hpp \
    645651        CbcHeuristic.hpp \
     652        CbcHeuristicDiveCoefficient.hpp \
     653        CbcHeuristicDiveFractional.hpp \
     654        CbcHeuristicDiveGuided.hpp \
     655        CbcHeuristicDiveVectorLength.hpp \
    646656        CbcHeuristicFPump.hpp \
    647657        CbcHeuristicGreedy.hpp \
     
    796806@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcGeneric.Po@am__quote@
    797807@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcHeuristic.Plo@am__quote@
     808@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcHeuristicDiveCoefficient.Plo@am__quote@
     809@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcHeuristicDiveFractional.Plo@am__quote@
     810@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcHeuristicDiveGuided.Plo@am__quote@
     811@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcHeuristicDiveVectorLength.Plo@am__quote@
    798812@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcHeuristicFPump.Plo@am__quote@
    799813@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcHeuristicGreedy.Plo@am__quote@
  • trunk/Makefile.in

    r527 r871  
    2121# Author:  Andreas Waechter           IBM    2006-04-13
    2222
    23 # Copyright (C) 2006 International Business Machines and others.
     23# Copyright (C) 2006, 2007 International Business Machines and others.
    2424# All Rights Reserved.
    2525# This file is distributed under the Common Public License.
     
    2828
    2929########################################################################
    30 #                         Maintainer Stuff                             #
     30#                    Documentation installation                        #
    3131########################################################################
    3232srcdir = @srcdir@
     
    5454DIST_COMMON = README $(am__configure_deps) \
    5555        $(srcdir)/BuildTools/Makemain.inc $(srcdir)/Makefile.am \
    56         $(srcdir)/Makefile.in $(top_srcdir)/configure INSTALL \
     56        $(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS INSTALL \
    5757        config.guess config.sub depcomp install-sh ltmain.sh missing
    5858@HAVE_EXTERNALS_TRUE@am__append_1 = Externals
     
    220220sbindir = @sbindir@
    221221sharedstatedir = @sharedstatedir@
     222sol_cc_compiler = @sol_cc_compiler@
    222223subdirs = @subdirs@
    223224sysconfdir = @sysconfdir@
     
    240241# Files that are generated and should be cleaned with make distclean
    241242DISTCLEANFILES = $(am__append_2) $(VPATH_DISTCLEANFILES)
     243DocFiles = README AUTHORS LICENSE
     244DocInstallDir = $(prefix)/share/doc/coin/$(PACKAGE_NAME)
    242245all: all-recursive
    243246
     
    682685.PHONY: test unitTest tests unitTests doxydoc
    683686
     687install-doc: $(DocFiles)
     688        test -z "$(DocInstallDir)" || $(mkdir_p) "$(DESTDIR)$(DocInstallDir)"
     689        for file in $(DocFiles); do \
     690          if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \
     691          if test -f "$$dir$$file"; then $(INSTALL_DATA) "$$dir$$file" "$(DESTDIR)$(DocInstallDir)/$$file"; fi; \
     692        done
     693
     694uninstall-doc:
     695        for file in $(DocFiles); do \
     696          rm -f "$(DESTDIR)$(DocInstallDir)/$$file"; \
     697        done
     698
     699########################################################################
     700#                         Maintainer Stuff                             #
     701########################################################################
     702
    684703# Make sure acinclude is using most recent coin.m4
    685704@MAINTAINER_MODE_TRUE@$(srcdir)/acinclude.m4: $(BUILDTOOLSDIR)/coin.m4
     
    714733@HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@update-externals: .Externals-stamp
    715734@HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@     cd $(srcdir); svn update
     735
     736.PHONY: install-doc uninstall-doc update-externals
    716737# Tell versions [3.59,3.63) of GNU make to not export all variables.
    717738# Otherwise a system limit (for SysV at least) may be exceeded.
  • trunk/configure

    r710 r871  
    489489ac_subdirs_all="$ac_subdirs_all Cbc"
    490490ac_subdirs_all="$ac_subdirs_all SYMPHONY"
    491 ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os CDEFS ADD_CFLAGS DBG_CFLAGS OPT_CFLAGS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT MPICC CXXDEFS ADD_CXXFLAGS DBG_CXXFLAGS OPT_CXXFLAGS CXX CXXFLAGS ac_ct_CXX MPICXX ADD_FFLAGS DBG_FFLAGS OPT_FFLAGS F77 FFLAGS ac_ct_F77 MPIF77 EGREP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOLM4 have_autoconf have_automake have_svn BUILDTOOLSDIR AUX_DIR abs_source_dir abs_lib_dir abs_include_dir abs_bin_dir HAVE_EXTERNALS_TRUE HAVE_EXTERNALS_FALSE host host_cpu host_vendor host_os LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP LIBTOOL ac_c_preproc_warn_flag ac_cxx_preproc_warn_flag RPATH_FLAGS LT_LDFLAGS subdirs COIN_SKIP_PROJECTS LIBEXT VPATH_DISTCLEANFILES LIBOBJS LTLIBOBJS'
     491ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os CDEFS ADD_CFLAGS DBG_CFLAGS OPT_CFLAGS sol_cc_compiler CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT MPICC CXXDEFS ADD_CXXFLAGS DBG_CXXFLAGS OPT_CXXFLAGS CXX CXXFLAGS ac_ct_CXX MPICXX ADD_FFLAGS DBG_FFLAGS OPT_FFLAGS F77 FFLAGS ac_ct_F77 MPIF77 EGREP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOLM4 have_autoconf have_automake have_svn BUILDTOOLSDIR AUX_DIR abs_source_dir abs_lib_dir abs_include_dir abs_bin_dir HAVE_EXTERNALS_TRUE HAVE_EXTERNALS_FALSE host host_cpu host_vendor host_os LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP LIBTOOL ac_c_preproc_warn_flag ac_cxx_preproc_warn_flag RPATH_FLAGS LT_LDFLAGS subdirs COIN_SKIP_PROJECTS LIBEXT VPATH_DISTCLEANFILES LIBOBJS LTLIBOBJS'
    492492ac_subst_files=''
    493493
     
    11141114  --enable-doscompile     Under Cygwin, compile so that executables run under
    11151115                          DOS. Set to mingw to use gcc/g++/ld with
    1116                           -mno-cygwin. Set to msvc to use cl/link. Default
    1117                           when mentioned: mingw. Default when not mentioned:
    1118                           disabled.
     1116                          -mno-cygwin. Set to msvc to use cl/link (or
     1117                          icl/link). Default when mentioned: mingw. Default
     1118                          when not mentioned: disabled.
    11191119  --enable-static[=PKGS]
    11201120                          build static libraries [default=no]
     
    17651765  if test "$enable_doscompile" != no; then
    17661766     case $build in
    1767        *-cygwin*) ;;
    1768        *) { { echo "$as_me:$LINENO: error: --enable-doscompile option makes sense only under Cygwin" >&5
    1769 echo "$as_me: error: --enable-doscompile option makes sense only under Cygwin" >&2;}
     1767       *-cygwin* | *-mingw*) ;;
     1768       *) { { echo "$as_me:$LINENO: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&5
     1769echo "$as_me: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&2;}
    17701770   { (exit 1); exit 1; }; } ;;
    17711771     esac
     
    17751775fi;
    17761776 case "$enable_doscompile" in
    1777    msvc|mingw|no) ;;
     1777   mingw)
     1778     case $build in
     1779       *-mingw*) enable_doscompile=no ;;
     1780     esac
     1781     ;;
     1782   msvc|no) ;;
    17781783   yes) enable_doscompile=mingw ;;
    17791784   *) { { echo "$as_me:$LINENO: error: Invalid value $enable_doscompile for --enable-doscompile.
     
    18031808if test x"$CXX" != x; then
    18041809  case "$CXX" in
    1805     cl* | */cl* | CL* | */CL*)
     1810    cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    18061811      if test x"$CC" = x; then
    18071812        CC="$CXX"
     
    18211826
    18221827save_cflags="$CFLAGS"
    1823 # For sparc-sun-solaris, promote Studio/Workshop compiler to front of list.
    1824 # ToDo: If Studio/Workshop cc is not present, we may find /usr/ucb/cc, which
    1825 # is likely to be a non-functional shell. But many installations will have
    1826 # both cc and gcc, so promoting gcc isn't good either. How to test reliably?
     1828
     1829# For *-*-solaris*, promote Studio/Workshop cc compiler to front of list.
     1830# Depending on the user's PATH, when Studio/Workshop cc is not present we may
     1831# find /usr/ucb/cc, which is almost certainly not a good choice for the C
     1832# compiler. In this case, put cc after gcc.
     1833
    18271834case $build in
    18281835  *-cygwin* | *-mingw*)
    18291836             if test "$enable_doscompile" = msvc ; then
    1830                comps="cl"
     1837               comps="icl cl"
    18311838             else
    18321839               comps="gcc cl"
    18331840             fi ;;
    1834   sparc-sun-solaris*)
    1835              comps="cc xlc gcc pgcc icc" ;;
     1841  *-*-solaris*)
     1842             # Extract the first word of "cc", so it can be a program name with args.
     1843set dummy cc; ac_word=$2
     1844echo "$as_me:$LINENO: checking for $ac_word" >&5
     1845echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
     1846if test "${ac_cv_prog_sol_cc_compiler+set}" = set; then
     1847  echo $ECHO_N "(cached) $ECHO_C" >&6
     1848else
     1849  if test -n "$sol_cc_compiler"; then
     1850  ac_cv_prog_sol_cc_compiler="$sol_cc_compiler" # Let the user override the test.
     1851else
     1852  ac_prog_rejected=no
     1853as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
     1854for as_dir in $PATH
     1855do
     1856  IFS=$as_save_IFS
     1857  test -z "$as_dir" && as_dir=.
     1858  for ac_exec_ext in '' $ac_executable_extensions; do
     1859  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     1860    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
     1861       ac_prog_rejected=yes
     1862       continue
     1863     fi
     1864    ac_cv_prog_sol_cc_compiler="cc"
     1865    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     1866    break 2
     1867  fi
     1868done
     1869done
     1870
     1871if test $ac_prog_rejected = yes; then
     1872  # We found a bogon in the path, so make sure we never use it.
     1873  set dummy $ac_cv_prog_sol_cc_compiler
     1874  shift
     1875  if test $# != 0; then
     1876    # We chose a different compiler from the bogus one.
     1877    # However, it has the same basename, so the bogon will be chosen
     1878    # first if we set sol_cc_compiler to just the basename; use the full file name.
     1879    shift
     1880    ac_cv_prog_sol_cc_compiler="$as_dir/$ac_word${1+' '}$@"
     1881  fi
     1882fi
     1883fi
     1884fi
     1885sol_cc_compiler=$ac_cv_prog_sol_cc_compiler
     1886if test -n "$sol_cc_compiler"; then
     1887  echo "$as_me:$LINENO: result: $sol_cc_compiler" >&5
     1888echo "${ECHO_T}$sol_cc_compiler" >&6
     1889else
     1890  echo "$as_me:$LINENO: result: no" >&5
     1891echo "${ECHO_T}no" >&6
     1892fi
     1893
     1894             if test "$sol_cc_compiler" = "cc" ; then
     1895               comps="cc xlc gcc pgcc icc"
     1896             else
     1897               comps="xlc gcc pgcc icc cc"
     1898             fi
     1899             ;;
    18361900  *-linux-*) comps="xlc gcc cc pgcc icc" ;;
    18371901  *)         comps="xlc_r xlc cc gcc pgcc icc" ;;
     
    26572721            coin_dbg_cflags='-MTd'
    26582722            ;;
     2723          icl* | */icl* | ICL* | */ICL*)
     2724            coin_opt_cflags='-MT -Ox'
     2725            coin_add_cflags='-nologo -D_CRT_SECURE_NO_DEPRECATE'
     2726            coin_dbg_cflags='-MTd -debug'
     2727            ;;
    26592728        esac
    26602729        ;;
     
    27252794          xlc* | */xlc* | mpxlc* | */mpxlc*)
    27262795            coin_opt_cflags="-O3 -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1"
    2727             coin_add_cflags="-bmaxdata:0x80000000"
     2796            coin_add_cflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029"
    27282797            coin_dbg_cflags="-g"
    27292798          ;;
     
    27352804        coin_dbg_cflags="-g"
    27362805        ;;
    2737       *-sun-*)
     2806      *-*-solaris*)
    27382807        coin_opt_cflags="-xO4"
    27392808        coin_dbg_cflags="-g"
     
    29633032# Correct ADDLIBS initialization if we are using the MS compiler
    29643033case "$CC" in
    2965   cl* | */cl* | CL* | */CL*)
     3034  cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    29663035    ADDLIBS=
    29673036    case $build in
     
    30103079
    30113080save_cxxflags="$CXXFLAGS"
    3012 # For sparc-sun-solaris, promote Studio/Workshop compiler to front of list.
     3081# For *-*-solaris*, promote Studio/Workshop compiler to front of list.
    30133082case $build in
    30143083  *-cygwin* | *-mingw*)
    30153084             if test "$enable_doscompile" = msvc ; then
    3016                comps="cl"
     3085               comps="icl cl"
    30173086             else
    30183087               comps="g++ cl"
    30193088             fi ;;
    3020   sparc-sun-solaris*)
     3089  *-*-solaris*)
    30213090             comps="CC xlC aCC g++ c++ pgCC icpc gpp cxx cc++ cl FCC KCC RCC" ;;
    30223091  *-darwin*) comps="g++ c++ CC" ;;
     
    33913460# It seems that we need to cleanup something here for the Windows
    33923461case "$CXX" in
    3393   cl* | */cl* | CL* | */CL* )
     3462  cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    33943463    sed -e 's/^void exit (int);//' confdefs.h >> confdefs.hh
    33953464    mv confdefs.hh confdefs.h
     
    35003569            coin_dbg_cxxflags='-MTd'
    35013570            ;;
     3571          icl* | */icl* | ICL* | */ICL*)
     3572            # The MT and MTd options are mutually exclusive
     3573            coin_opt_cxxflags='-MT -Ox'
     3574            coin_add_cxxflags='-nologo -EHsc -GR -D_CRT_SECURE_NO_DEPRECATE'
     3575            coin_dbg_cxxflags='-MTd -debug'
     3576            ;;
    35023577        esac
    35033578        ;;
     
    35683643          xlC* | */xlC* | mpxlC* | */mpxlC*)
    35693644            coin_opt_cxxflags="-O3 -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1"
    3570             coin_add_cxxflags="-bmaxdata:0x80000000 -qrtti=dyna"
     3645            coin_add_cxxflags="-bmaxdata:0x80000000 -qrtti=dyna -qsuppress=1500-036 -qsuppress=1500-029"
    35713646            coin_dbg_cxxflags="-g"
    35723647            ;;
     
    35823657        esac
    35833658        ;;
    3584       *-sun-*)
     3659      *-*-solaris*)
    35853660          coin_opt_cxxflags="-O4"
    35863661          coin_dbg_cxxflags="-g"
     
    38463921       coin_f77_comps="gfortran g77 ifort fl32 compile_f2c"
    38473922     fi ;;
    3848   sparc-sun-solaris*)
     3923  *-*-solaris*)
    38493924     coin_f77_comps="f95 f90 f77 xlf fort77 gfortran g77 pgf90 pgf77 ifort ifc frt af77" ;;
    38503925  *) coin_f77_comps="xlf fort77 gfortran f77 g77 pgf90 pgf77 ifort ifc frt af77" ;;
     
    40194094
    40204095# Provide some information about the compiler.
    4021 echo "$as_me:4021:" \
     4096echo "$as_me:4096:" \
    40224097     "checking for Fortran 77 compiler version" >&5
    40234098ac_compiler=`set X $ac_compile; echo $2`
     
    43014376          xlf* | */xlf* | mpxlf* | */mpxlf* )
    43024377            coin_opt_fflags="-O3 -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1"
    4303             coin_add_fflags="-bmaxdata:0x80000000"
     4378            coin_add_fflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029"
    43044379            coin_dbg_fflags="-g -C"
    43054380            ;;
     
    43114386        coin_dbg_fflags="-C -g"
    43124387        ;;
    4313       *-sun-*)
     4388      *-*-solaris*)
    43144389        coin_opt_fflags="-O4"
    43154390        coin_dbg_fflags="-g"
     
    45434618# START
    45444619
    4545 # On Cygwin, building DLLs doesn't work
     4620# On Cygwin and AIX, building DLLs doesn't work
    45464621case $build in
    45474622  *-cygwin*)
    45484623    coin_disable_shared=yes
    45494624    platform=Cygwin
     4625  ;;
     4626  *-aix*)
     4627    coin_disable_shared=yes
     4628    platform=AIX
    45504629  ;;
    45514630  *-mingw*)
     
    62646343*-*-irix6*)
    62656344  # Find out which ABI we are using.
    6266   echo '#line 6266 "configure"' > conftest.$ac_ext
     6345  echo '#line 6345 "configure"' > conftest.$ac_ext
    62676346  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
    62686347  (eval $ac_compile) 2>&5
     
    82288307   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    82298308   -e 's:$: $lt_compiler_flag:'`
    8230    (eval echo "\"\$as_me:8230: $lt_compile\"" >&5)
     8309   (eval echo "\"\$as_me:8309: $lt_compile\"" >&5)
    82318310   (eval "$lt_compile" 2>conftest.err)
    82328311   ac_status=$?
    82338312   cat conftest.err >&5
    8234    echo "$as_me:8234: \$? = $ac_status" >&5
     8313   echo "$as_me:8313: \$? = $ac_status" >&5
    82358314   if (exit $ac_status) && test -s "$ac_outfile"; then
    82368315     # The compiler can only warn and ignore the option if not recognized
     
    84968575   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    84978576   -e 's:$: $lt_compiler_flag:'`
    8498    (eval echo "\"\$as_me:8498: $lt_compile\"" >&5)
     8577   (eval echo "\"\$as_me:8577: $lt_compile\"" >&5)
    84998578   (eval "$lt_compile" 2>conftest.err)
    85008579   ac_status=$?
    85018580   cat conftest.err >&5
    8502    echo "$as_me:8502: \$? = $ac_status" >&5
     8581   echo "$as_me:8581: \$? = $ac_status" >&5
    85038582   if (exit $ac_status) && test -s "$ac_outfile"; then
    85048583     # The compiler can only warn and ignore the option if not recognized
     
    86008679   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    86018680   -e 's:$: $lt_compiler_flag:'`
    8602    (eval echo "\"\$as_me:8602: $lt_compile\"" >&5)
     8681   (eval echo "\"\$as_me:8681: $lt_compile\"" >&5)
    86038682   (eval "$lt_compile" 2>out/conftest.err)
    86048683   ac_status=$?
    86058684   cat out/conftest.err >&5
    8606    echo "$as_me:8606: \$? = $ac_status" >&5
     8685   echo "$as_me:8685: \$? = $ac_status" >&5
    86078686   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    86088687   then
     
    1094511024  lt_status=$lt_dlunknown
    1094611025  cat > conftest.$ac_ext <<EOF
    10947 #line 10947 "configure"
     11026#line 11026 "configure"
    1094811027#include "confdefs.h"
    1094911028
     
    1104511124  lt_status=$lt_dlunknown
    1104611125  cat > conftest.$ac_ext <<EOF
    11047 #line 11047 "configure"
     11126#line 11126 "configure"
    1104811127#include "confdefs.h"
    1104911128
     
    1338913468   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1339013469   -e 's:$: $lt_compiler_flag:'`
    13391    (eval echo "\"\$as_me:13391: $lt_compile\"" >&5)
     13470   (eval echo "\"\$as_me:13470: $lt_compile\"" >&5)
    1339213471   (eval "$lt_compile" 2>conftest.err)
    1339313472   ac_status=$?
    1339413473   cat conftest.err >&5
    13395    echo "$as_me:13395: \$? = $ac_status" >&5
     13474   echo "$as_me:13474: \$? = $ac_status" >&5
    1339613475   if (exit $ac_status) && test -s "$ac_outfile"; then
    1339713476     # The compiler can only warn and ignore the option if not recognized
     
    1349313572   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1349413573   -e 's:$: $lt_compiler_flag:'`
    13495    (eval echo "\"\$as_me:13495: $lt_compile\"" >&5)
     13574   (eval echo "\"\$as_me:13574: $lt_compile\"" >&5)
    1349613575   (eval "$lt_compile" 2>out/conftest.err)
    1349713576   ac_status=$?
    1349813577   cat out/conftest.err >&5
    13499    echo "$as_me:13499: \$? = $ac_status" >&5
     13578   echo "$as_me:13578: \$? = $ac_status" >&5
    1350013579   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    1350113580   then
     
    1506315142   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1506415143   -e 's:$: $lt_compiler_flag:'`
    15065    (eval echo "\"\$as_me:15065: $lt_compile\"" >&5)
     15144   (eval echo "\"\$as_me:15144: $lt_compile\"" >&5)
    1506615145   (eval "$lt_compile" 2>conftest.err)
    1506715146   ac_status=$?
    1506815147   cat conftest.err >&5
    15069    echo "$as_me:15069: \$? = $ac_status" >&5
     15148   echo "$as_me:15148: \$? = $ac_status" >&5
    1507015149   if (exit $ac_status) && test -s "$ac_outfile"; then
    1507115150     # The compiler can only warn and ignore the option if not recognized
     
    1516715246   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1516815247   -e 's:$: $lt_compiler_flag:'`
    15169    (eval echo "\"\$as_me:15169: $lt_compile\"" >&5)
     15248   (eval echo "\"\$as_me:15248: $lt_compile\"" >&5)
    1517015249   (eval "$lt_compile" 2>out/conftest.err)
    1517115250   ac_status=$?
    1517215251   cat out/conftest.err >&5
    15173    echo "$as_me:15173: \$? = $ac_status" >&5
     15252   echo "$as_me:15252: \$? = $ac_status" >&5
    1517415253   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    1517515254   then
     
    1737417453   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1737517454   -e 's:$: $lt_compiler_flag:'`
    17376    (eval echo "\"\$as_me:17376: $lt_compile\"" >&5)
     17455   (eval echo "\"\$as_me:17455: $lt_compile\"" >&5)
    1737717456   (eval "$lt_compile" 2>conftest.err)
    1737817457   ac_status=$?
    1737917458   cat conftest.err >&5
    17380    echo "$as_me:17380: \$? = $ac_status" >&5
     17459   echo "$as_me:17459: \$? = $ac_status" >&5
    1738117460   if (exit $ac_status) && test -s "$ac_outfile"; then
    1738217461     # The compiler can only warn and ignore the option if not recognized
     
    1764217721   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1764317722   -e 's:$: $lt_compiler_flag:'`
    17644    (eval echo "\"\$as_me:17644: $lt_compile\"" >&5)
     17723   (eval echo "\"\$as_me:17723: $lt_compile\"" >&5)
    1764517724   (eval "$lt_compile" 2>conftest.err)
    1764617725   ac_status=$?
    1764717726   cat conftest.err >&5
    17648    echo "$as_me:17648: \$? = $ac_status" >&5
     17727   echo "$as_me:17727: \$? = $ac_status" >&5
    1764917728   if (exit $ac_status) && test -s "$ac_outfile"; then
    1765017729     # The compiler can only warn and ignore the option if not recognized
     
    1774617825   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    1774717826   -e 's:$: $lt_compiler_flag:'`
    17748    (eval echo "\"\$as_me:17748: $lt_compile\"" >&5)
     17827   (eval echo "\"\$as_me:17827: $lt_compile\"" >&5)
    1774917828   (eval "$lt_compile" 2>out/conftest.err)
    1775017829   ac_status=$?
    1775117830   cat out/conftest.err >&5
    17752    echo "$as_me:17752: \$? = $ac_status" >&5
     17831   echo "$as_me:17831: \$? = $ac_status" >&5
    1775317832   if (exit $ac_status) && test -s out/conftest2.$ac_objext
    1775417833   then
     
    2043220511
    2043320512
    20434 # Fix bugs in libtool script for Windows native compilation:
    20435 # - cygpath is not correctly quoted in fix_srcfile_path
    20436 # - paths generated for .lib files is not run through cygpath -w
    20437 
    20438 
    20439 # - lib includes subdirectory information; we want to replace
    20440 #
    20441 # old_archive_cmds="lib /OUT:\$oldlib\$oldobjs\$old_deplibs"
    20442 #
    20443 # by
    20444 #
    20445 # old_archive_cmds="echo \$oldlib | grep .libs >/dev/null; if test \$? = 0; then cd .libs; lib /OUT:\`echo \$oldlib\$oldobjs\$old_deplibs | sed -e s@\.libs/@@g\`; cd .. ; else lib /OUT:\$oldlib\$oldobjs\$old_deplibs ; fi"
    20446 #
    20447 #          -e 's%old_archive_cmds="lib /OUT:\\\$oldlib\\\$oldobjs\\\$old_deplibs"%old_archive_cmds="echo \\\$oldlib \| grep .libs >/dev/null; if test \\\$? = 0; then cd .libs; lib /OUT:\\\`echo \\\$oldlib\\\$oldobjs\\\$old_deplibs \| sed -e s@\\.libs/@@g\\\`; cd .. ; else lib /OUT:\\\$oldlib\\\$oldobjs\\\$old_deplibs; fi"%' \
    20448 
    20449 # The following was a hack for chaniing @BACKSLASH to \
    20450 #          -e 'sYcompile_command=`\$echo "X\$compile_command" | \$Xsed -e '"'"'s%@OUTPUT@%'"'"'"\$output"'"'"'%g'"'"'`Ycompile_command=`\$echo "X\$compile_command" | \$Xsed -e '"'"'s%@OUTPUT@%'"'"'"\$output"'"'"'%g'"'"' | \$Xsed -e '"'"'s%@BACKSLASH@%\\\\\\\\\\\\\\\\%g'"'"'`Y' \
    20451 
    20452   # Correct cygpath for minGW (ToDo!)
    2045320513  { echo "$as_me:$LINENO: Build is \"$build\"." >&5
    2045420514echo "$as_me: Build is \"$build\"." >&6;}
     
    2046220522
    2046320523  case $build in
     20524    # Here we need to check if -m32 is specified.  If so, we need to correct
     20525    # sys_lib_search_path_spec
    2046420526    *x86_64-*)
    20465 # Here we need to check if -m32 is specified.  If so, we need to correct sys_lib_search_path_spec
    2046620527      if test "$GCC" = yes && (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm32' >& /dev/null); then
    2046720528        { echo "$as_me:$LINENO: Applying patches to libtool for 32bit compilation" >&5
     
    2047220533      fi
    2047320534      ;;
     20535
     20536    *-solaris*)
     20537       if test "$GCC" = yes && \
     20538     (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm64' >/dev/null 2>&1) ; then
     20539    hdwisa=`isainfo | sed -e 's/\([^ ]*\) .*$/\1/'`
     20540    if `$EGREP 'sys_lib_search_path_spec=' libtool | $EGREP -v $hdwisa >/dev/null 2>&1` ; then
     20541      { echo "$as_me:$LINENO: Applying patches to libtool for 64-bit GCC compilation" >&5
     20542echo "$as_me: Applying patches to libtool for 64-bit GCC compilation" >&6;}
     20543      fixlibtmp=`$CC -m64 -print-search-dirs | $EGREP '^libraries:'`
     20544      fixlibtmp=`echo $fixlibtmp | sed -e 's/libraries: =//' -e 's/:/ /g'`
     20545      if `echo "$fixlibtmp" | $EGREP -v $hdwisa  >/dev/null 2>&1` ; then
     20546        # AC_MSG_NOTICE(Compensating for broken gcc)
     20547        for lib in $fixlibtmp ; do
     20548          if test -d "${lib}${hdwisa}" ; then
     20549            syslibpath64="$syslibpath64 ${lib}${hdwisa}/"
     20550          fi
     20551        done
     20552        syslibpath64="${syslibpath64} ${fixlibtmp}"
     20553      else
     20554        syslibpath64="$fixlibtmp"
     20555      fi
     20556      sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="'"$syslibpath64"'"|' libtool > conftest.bla
     20557      mv conftest.bla libtool
     20558      chmod 755 libtool
     20559    fi
     20560    # AC_MSG_NOTICE(Result is )
     20561    # $EGREP 'sys_lib_search_path_spec=' libtool
     20562  fi
     20563      ;;
     20564    # Cygwin. Ah, cygwin. Too big and ugly to inline; see the macro.
    2047420565    *-cygwin* | *-mingw*)
    20475     case "$CXX" in
    20476       cl* | */cl* | CL* | */CL*)
    20477         { echo "$as_me:$LINENO: Applying patches to libtool for cl compiler" >&5
     20566       case "$CXX" in
     20567    cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
     20568      { echo "$as_me:$LINENO: Applying patches to libtool for cl compiler" >&5
    2047820569echo "$as_me: Applying patches to libtool for cl compiler" >&6;}
    20479         sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \
    20480             -e 's|fix_srcfile_path=\"\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \
    20481             -e 's%compile_deplibs=\"\$dir/\$old_library \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$old_library | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \
    20482             -e 's%compile_deplibs=\"\$dir/\$linklib \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$linklib | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \
    20483             -e 's%lib /OUT:%lib -OUT:%' \
    20484             -e "s%cygpath -w%$CYGPATH_W%" \
    20485             -e 's%$AR x \\$f_ex_an_ar_oldlib%bla=\\`lib -nologo -list \\$f_ex_an_ar_oldlib | xargs echo '"$mydos2unix"'\\`; echo \\$bla; for i in \\$bla; do lib -nologo -extract:\\$i \\$f_ex_an_ar_oldlib; done%' \
    20486             -e 's/$AR t/lib -nologo -list/' \
    20487             -e 's%f_ex_an_ar_oldlib="\($?*1*\)"%f_ex_an_ar_oldlib='\`"$CYGPATH_W"' \1`%' \
    20488             -e 's%^archive_cmds=.*%archive_cmds="\\$CC -o \\$lib \\$libobjs \\$compiler_flags \\\\\\`echo \\\\\\"\\$deplibs\\\\\\" | \\$SED -e '"\'"'s/ -lc\\$//'"\'"'\\\\\\` -link -dll~linknames="%' \
    20489             -e 's%old_archive_cmds="lib -OUT:\\$oldlib\\$oldobjs\\$old_deplibs"%old_archive_cmds="if test -r \\$oldlib; then bla=\\"\\$oldlib\\"; else bla=; fi; lib -OUT:\\$oldlib \\\\\\$bla\\$oldobjs\\$old_deplibs"%' \
    20490         libtool > conftest.bla
    20491 
    20492         mv conftest.bla libtool
    20493         chmod 755 libtool
    20494         ;;
    20495       *)
    20496         { echo "$as_me:$LINENO: Applying patches to libtool for GNU compiler" >&5
     20570      sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \
     20571          -e 's|fix_srcfile_path=\"\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \
     20572          -e 's%compile_deplibs=\"\$dir/\$old_library \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$old_library | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \
     20573          -e 's%compile_deplibs=\"\$dir/\$linklib \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$linklib | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \
     20574          -e 's%lib /OUT:%lib -OUT:%' \
     20575          -e "s%cygpath -w%$CYGPATH_W%" \
     20576          -e 's%$AR x \\$f_ex_an_ar_oldlib%bla=\\`lib -nologo -list \\$f_ex_an_ar_oldlib | xargs echo '"$mydos2unix"'\\`; echo \\$bla; for i in \\$bla; do lib -nologo -extract:\\$i \\$f_ex_an_ar_oldlib; done%' \
     20577          -e 's/$AR t/lib -nologo -list/' \
     20578          -e 's%f_ex_an_ar_oldlib="\($?*1*\)"%f_ex_an_ar_oldlib='\`"$CYGPATH_W"' \1`%' \
     20579          -e 's%^archive_cmds=.*%archive_cmds="\\$CC -o \\$lib \\$libobjs \\$compiler_flags \\\\\\`echo \\\\\\"\\$deplibs\\\\\\" | \\$SED -e '"\'"'s/ -lc\\$//'"\'"'\\\\\\` -link -dll~linknames="%' \
     20580          -e 's%old_archive_cmds="lib -OUT:\\$oldlib\\$oldobjs\\$old_deplibs"%old_archive_cmds="if test -r \\$oldlib; then bla=\\"\\$oldlib\\"; else bla=; fi; lib -OUT:\\$oldlib \\\\\\$bla\\$oldobjs\\$old_deplibs"%' \
     20581      libtool > conftest.bla
     20582
     20583      mv conftest.bla libtool
     20584      chmod 755 libtool
     20585      ;;
     20586    *)
     20587      { echo "$as_me:$LINENO: Applying patches to libtool for GNU compiler" >&5
    2049720588echo "$as_me: Applying patches to libtool for GNU compiler" >&6;}
    20498         sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \
    20499             -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \
    20500             -e 's|libext="lib"|libext="a"|' \
    20501         libtool > conftest.bla
    20502 
    20503         mv conftest.bla libtool
    20504         chmod 755 libtool
    20505         ;;
    20506     esac
    20507     ;;
     20589      sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \
     20590          -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \
     20591          -e 's|libext="lib"|libext="a"|' \
     20592      libtool > conftest.bla
     20593
     20594      mv conftest.bla libtool
     20595      chmod 755 libtool
     20596      ;;
     20597  esac
     20598      ;;
    2050820599    *-darwin*)
    2050920600      { echo "$as_me:$LINENO: Applying patches to libtool for Darwin" >&5
     
    2054720638    *-mingw32)
    2054820639        RPATH_FLAGS=nothing ;;
    20549     *-sun-*)
     20640    *-*-solaris*)
    2055020641        RPATH_FLAGS=
    2055120642        for dir in $abs_lib_dir; do
     
    2120921300fi
    2121021301case "$CC" in
    21211   cl* | */cl* | CL* | */CL*)
     21302  cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    2121221303    coin_link_input_cmd=cp ;;
    2121321304esac
     
    2122721318
    2122821319  case "$CC" in
    21229     cl* | */cl* | CL* | */CL*)
     21320    cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*)
    2123021321         LIBEXT=lib ;;
    2123121322      *) LIBEXT=a ;;
     
    2194522036s,@DBG_CFLAGS@,$DBG_CFLAGS,;t t
    2194622037s,@OPT_CFLAGS@,$OPT_CFLAGS,;t t
     22038s,@sol_cc_compiler@,$sol_cc_compiler,;t t
    2194722039s,@CC@,$CC,;t t
    2194822040s,@CFLAGS@,$CFLAGS,;t t
Note: See TracChangeset for help on using the changeset viewer.