Changeset 2567


Ignore:
Timestamp:
May 3, 2019 12:43:58 AM (6 months ago)
Author:
stefan
Message:

merge r2551..r2566 from trunk

  • leaving out r2549 as that brings a (backward-incompatible) API change
Location:
stable/2.10
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • stable/2.10

  • stable/2.10/.travis.yml

    r2407 r2567  
    11language: cpp
    22env:
    3   global:
    4     - secure: "WEPiGQTAVh02Fc5Qxvj2VBZoWBgNjjB6w5MdNwg6NtzFKhbhxB1OqfaVE7EJV1Cw9mf1k5Qcg2fSy9bQEJllWNclRpbRGfEcC+Crx3CyjFOebSr6e6T7lAjIspIVSRf9+y6oPEY2zR8yXoX/HAEYyw3IQzJtKCHIbSJrrZsPomc="
    5    
     3  global:
     4    secure: FoPCwIlEKUUIwpSMGomm+Dfsv/Cp7ITqFVq5u++AAWp6WniX22NkkoPhCnbq3YxXrt0RQhK0P+pe6iJeQNgtm4seYWZO/pWj+frkW52kRWiEgMgKoAWx28vHVvcuqVr5lHAiezMoyrrKrmAJEznO0mTryDc1Ez3fzjSoIoY5r653TZEJNOJ5wU07oTVgGtTkKY9gsHM1s9fNu2ikmKrLQoe8VPJZpkSQPJp5YipghijYQUbeRyHnNMkxWZk34YCRTo2XIRiFBUKfC2efGLPvzGYjwAFYDHQUEKV4lVyg9S6e1BqoFH74vfgF2Vs6DADmWqImwC3RtrADh6wRpxSkADnCv+t3wc3mhuvYX74IDx6H0BFqYvWJwrkmXmnEQonBc/0db/mSiKfz6jp9i7vJl1XEtaYZ3Teic732ziOqUIbm4HjHCBDSqlC4mIlSDJnGAFvVjfZL1W1hbkUPaG1KpmEZ5hiE7mu2kf3DkFjiBdwBSTs5wlgmqmzHvvtAg1P6TdkR2uyIUCCkX4628sWzhfIfTV9XrophJw7jS+PD8dy5tdJclZvIXlw6JbiDPRpF7Vm6orDk/cY5sQ6Sv4+CZd0ml3AaSblR8JkXLCUu21/c2jxJwewYD7MFGNLcLueAK7pycZ9o3YII2zHlfuPRNAWEjS2AjgjCnk52+xhIDW4=
    65matrix:
    76  include:
    8     - os: linux
    9       addons:
    10         apt:
    11           packages:
    12             - gfortran
    13     - os: osx
    14       osx_image: xcode10
    15       env: OSX=10.13
    16       compiler: clang
    17     - os: osx
    18       osx_image: xcode9.2
    19       env: OSX=10.12
    20       compiler: clang
    21     - os: osx
    22       osx_image: xcode8
    23       env: OSX=10.11
    24       compiler: clang
     7  - os: linux
     8    addons:
     9      apt:
     10        packages:
     11        - gfortran
     12  - os: osx
     13    osx_image: xcode10
     14    env: OSX=10.13
     15    compiler: clang
     16  - os: osx
     17    osx_image: xcode9.2
     18    env: OSX=10.12
     19    compiler: clang
     20  - os: osx
     21    osx_image: xcode8
     22    env: OSX=10.11
     23    compiler: clang
    2524  allow_failures:
    26     - os: osx
    27 
     25  - os: osx
    2826before_script:
    29   - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then  export PLATFORM=osx$OSX-x86_64-clang`clang -dumpversion`; fi
    30   - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; brew install bash gcc; brew link --overwrite gcc; gfortran --version; fi
    31   - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export PLATFORM=linux-x86_64-gcc`gcc -dumpversion`; fi
    32   - git clone https://github.com/coin-or/COIN-OR-OptimizationSuite COIN
    33   - cd COIN
    34   - export PROJECT=`echo $TRAVIS_REPO_SLUG | cut -d "/" -f 2`
    35   - bash ./coin.install.sh fetch --no-prompt --main-proj=$PROJECT > /dev/null
    36 
     27- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then  export PLATFORM=osx$OSX-x86_64-clang`clang
     28  -dumpversion`; fi
     29- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; brew install bash gcc; brew
     30  link --overwrite gcc; gfortran --version; fi
     31- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export PLATFORM=linux-x86_64-gcc`gcc
     32  -dumpversion`; fi
     33- cd ..
     34- wget https://raw.githubusercontent.com/coin-or/coinbrew/master/coinbrew
     35- export PROJECT=`echo $TRAVIS_REPO_SLUG | cut -d "/" -f 2`
     36- bash ./coinbrew fetch $PROJECT --no-prompt --skip-update > /dev/null
    3737script:
    38   - bash ./coin.install.sh build --no-prompt --main-proj=$PROJECT --verbosity=2 --test
    39 
     38- bash ./coinbrew build $PROJECT --no-prompt --verbosity=2 --test
    4039after_script:
    41   - if [ $TRAVIS_BRANCH = "master" ]; then export VERSION=trunk; else export VERSION=`echo $TRAVIS_BRANCH | cut -d "/" -f 2`; fi
    42   - export TGZ_FILE=$PROJECT-$VERSION-$PLATFORM.tgz
    43   - echo $TGZ_FILE
    44   - tar -czvf $TGZ_FILE build/lib/* build/bin/* build/include/* build/share/* $PROJECT/README.md $PROJECT/INSTALL $PROJECT/LICENSE $PROJECT/$PROJECT/AUTHORS
    45   - curl -T $TGZ_FILE -utkralphs:$BINTRAY_API -H "X-Bintray-Publish:1" -H "X-Bintray-Override:1" https://api.bintray.com/content/coin-or/download/$PROJECT/$VERSION/$TGZ_FILE
     40- if [ $TRAVIS_BRANCH = "master" ]; then export VERSION=master; else export VERSION=`echo
     41  $TRAVIS_BRANCH | cut -d "/" -f 2`; fi
     42- export TGZ_FILE=$PROJECT-$VERSION-$PLATFORM.tgz
     43- echo $TGZ_FILE
     44- cp $PROJECT/README.md $PROJECT/LICENSE $PROJECT/$PROJECT/AUTHORS build
     45- cd build
     46- tar -czvf $TGZ_FILE lib/* bin/* include/* share/* README.md LICENSE AUTHORS
     47- curl -T $TGZ_FILE -utkralphs:$BINTRAY_API -H "X-Bintray-Publish:1" -H "X-Bintray-Override:1"
     48  https://api.bintray.com/content/coin-or/download/$PROJECT/$VERSION/$TGZ_FILE
  • stable/2.10/Cbc

  • stable/2.10/Cbc/src

  • stable/2.10/Cbc/src/CbcHeuristic.cpp

    r2545 r2567  
    578578    int options = clpSolver->getModelPtr()->moreSpecialOptions();
    579579    clpSolver->getModelPtr()->setMoreSpecialOptions(options | 64);
     580  }
     581  if (clpSolver) {
     582    // take out zero cost integers which will be integer anyway
     583    const double *rowLower = clpSolver->getRowLower();
     584    const double *rowUpper = clpSolver->getRowUpper();
     585    const double *objective = clpSolver->getObjCoefficients();
     586    int numberRows = clpSolver->getNumRows();
     587    const CoinPackedMatrix *matrixByRow = clpSolver->getMatrixByRow();
     588    const double *elementByRow = matrixByRow->getElements();
     589    const int *column = matrixByRow->getIndices();
     590    const CoinBigIndex *rowStart = matrixByRow->getVectorStarts();
     591    const int *rowLength = matrixByRow->getVectorLengths();
     592    const CoinPackedMatrix *matrixByColumn = clpSolver->getMatrixByCol();
     593    //const double * element = matrixByColumn->getElements();
     594    //const int *row = matrixByColumn->getIndices();
     595    //const CoinBigIndex *columnStart = matrixByColumn->getVectorStarts();
     596    const int *columnLength = matrixByColumn->getVectorLengths();
     597    for (int i = 0; i < numberRows; i++) {
     598      if (rowLower[i] != floor(rowLower[i]) ||
     599          rowUpper[i] != floor(rowUpper[i]))
     600        continue;
     601      int jColumn = -1;
     602      for (CoinBigIndex k = rowStart[i]; k < rowStart[i] + rowLength[i]; k++) {
     603        int iColumn = column[k];
     604        double value = elementByRow[k];
     605        if (!clpSolver->isInteger(iColumn) || floor(value) != value) {
     606          jColumn = -2;
     607          break;
     608        } else if (!objective[iColumn] && columnLength[iColumn] == 1) {
     609          jColumn = iColumn;
     610        }
     611      }
     612      if (jColumn>=0)
     613        clpSolver->setContinuous(jColumn);
     614    }
    580615  }
    581616#endif
     
    15051540                int i;
    15061541                for (i = 0; i < numberSOS; i++) {
     1542#ifndef NDEBUG
    15071543                  int type = setInfo[i].setType();
     1544#endif
    15081545                  int n = setInfo[i].numberEntries();
    15091546                  const int *which = setInfo[i].which();
  • stable/2.10/Cbc/src/CbcModel.cpp

    r2550 r2567  
    56435643{
    56445644  memset(intParam_, 0, sizeof(intParam_));
    5645   intParam_[CbcMaxNumNode] = 2147483647;
    5646   intParam_[CbcMaxNumSol] = 9999999;
     5645  intParam_[CbcMaxNumNode] = COIN_INT_MAX;
     5646  intParam_[CbcMaxNumSol] = COIN_INT_MAX;
    56475647
    56485648  memset(dblParam_, 0, sizeof(dblParam_));
     
    58145814{
    58155815  memset(intParam_, 0, sizeof(intParam_));
    5816   intParam_[CbcMaxNumNode] = 2147483647;
    5817   intParam_[CbcMaxNumSol] = 9999999;
     5816  intParam_[CbcMaxNumNode] = COIN_INT_MAX;
     5817  intParam_[CbcMaxNumSol] = COIN_INT_MAX;
    58185818
    58195819  memset(dblParam_, 0, sizeof(dblParam_));
  • stable/2.10/Cbc/src/Cbc_C_Interface.cpp

    r2534 r2567  
    639639Cbc_setParameter(Cbc_Model *model, const char *name, const char *value)
    640640{
    641   model->cmdargs_.push_back(std::string("-") + name);
     641  // checking if parameter is not included with another value
     642  // if this is the case just replacing this value
     643  std::string argname=std::string("-")+name;
     644  for ( int i=0 ; (i<((int)model->cmdargs_.size())-1) ; ++i )
     645  {
     646    if (argname==model->cmdargs_[i])
     647    {
     648      model->cmdargs_[i+1] = std::string(value);
     649      return;
     650    }
     651  }
     652 
     653  model->cmdargs_.push_back(argname);
    642654  model->cmdargs_.push_back(value);
    643655}
  • stable/2.10/README.md

    r2550 r2567  
    146146
    147147## CHANGELOG
     148
     149 * Release 2.10.3 (in preparation)
     150   * Improve performance of some primal heuristics, incl. feasibility pump, by making integer slacks continuous
     151   * Bugfixes
    148152
    149153 * Release 2.10.2
  • stable/2.10/appveyor.yml

    r2411 r2567  
    3333
    3434install:
    35   - for /f "delims=" %%i in ('C:\msys64\usr\bin\bash -lc "if [ $APPVEYOR_REPO_BRANCH = 'master' ]; then echo 'trunk'; else echo $APPVEYOR_REPO_BRANCH | cut -d "/" -f 2; fi"') do set VERSION=%%i
     35  - for /f "delims=" %%i in ('C:\msys64\usr\bin\bash -lc "if [ $APPVEYOR_REPO_BRANCH = 'master' ]; then echo 'master'; else echo $APPVEYOR_REPO_BRANCH | cut -d "/" -f 2; fi"') do set VERSION=%%i
    3636  - IF %ARCH%==win32-msvc9 (CALL C:\"Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat")
    3737  - IF %ARCH%==win32-msvc14 (CALL C:\"Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat")
     
    4040
    4141build_script:
    42   - C:\msys64\usr\bin\bash -lc "cd $APPVEYOR_BUILD_FOLDER; git clone https://github.com/coin-or/COIN-OR-OptimizationSuite COIN"
    43   - C:\msys64\usr\bin\bash -lc "cd $APPVEYOR_BUILD_FOLDER/COIN; ./coin.install.sh fetch --no-prompt --main-proj=%APPVEYOR_PROJECT_NAME% --no-third-party"
    44   - C:\msys64\usr\bin\bash -lc "cd $APPVEYOR_BUILD_FOLDER/COIN; export PATH=$ADD_PATH:$PATH; ./coin.install.sh build --no-prompt --main-proj=%APPVEYOR_PROJECT_NAME% --no-third-party --build=x86_64-w64-mingw32 $HOST_ARCH_ARG --verbosity=2 --test"
     42  - C:\msys64\usr\bin\bash -lc "cd C:\projects; wget https://raw.githubusercontent.com/coin-or/coinbrew/master/coinbrew"
     43  - C:\msys64\usr\bin\bash -lc "cd C:\projects; ./coinbrew fetch %APPVEYOR_PROJECT_NAME% --no-prompt --skip-update --no-third-party"
     44  - C:\msys64\usr\bin\bash -lc "cd C:\projects; export PATH=$ADD_PATH:$PATH; ./coinbrew build %APPVEYOR_PROJECT_NAME% --no-prompt --no-third-party --build=x86_64-w64-mingw32 $HOST_ARCH_ARG --verbosity=2 --test"
    4545
    4646after_build:
    47   - 7z a %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip %APPVEYOR_BUILD_FOLDER%\COIN\build\bin
    48   - 7z a %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip %APPVEYOR_BUILD_FOLDER%\COIN\build\include
    49   - 7z a %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip %APPVEYOR_BUILD_FOLDER%\COIN\build\lib
    50   - 7z a %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip %APPVEYOR_BUILD_FOLDER%\COIN\build\share
    51   - 7z a %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip %APPVEYOR_BUILD_FOLDER%\COIN\%APPVEYOR_PROJECT_NAME%\README.md
    52   - 7z a %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip %APPVEYOR_BUILD_FOLDER%\COIN\%APPVEYOR_PROJECT_NAME%\LICENSE
    53   - 7z a %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip %APPVEYOR_BUILD_FOLDER%\COIN\%APPVEYOR_PROJECT_NAME%\INSTALL
    54   - 7z a %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip %APPVEYOR_BUILD_FOLDER%\COIN\%APPVEYOR_PROJECT_NAME%\%APPVEYOR_PROJECT_NAME%\AUTHORS
     47  - 7z a %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip C:\projects\build\bin
     48  - 7z a %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip C:\projects\build\include
     49  - 7z a %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip C:\projects\build\lib
     50  - 7z a %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip C:\projects\build\share
     51  - 7z a %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip C:\projects\%APPVEYOR_PROJECT_NAME%\README.md
     52  - 7z a %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip C:\projects\%APPVEYOR_PROJECT_NAME%\LICENSE
     53  - 7z a %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip C:\projects\%APPVEYOR_PROJECT_NAME%\INSTALL
     54  - 7z a %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip C:\projects\%APPVEYOR_PROJECT_NAME%\%APPVEYOR_PROJECT_NAME%\AUTHORS
    5555  - curl -T %APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip -utkralphs:%BINTRAY_API% -H "X-Bintray-Publish:1" -H "X-Bintray-Override:1" https://api.bintray.com/content/coin-or/download/%APPVEYOR_PROJECT_NAME%/%VERSION%/%APPVEYOR_PROJECT_NAME%-%VERSION%-%ARCH%.zip
    5656
Note: See TracChangeset for help on using the changeset viewer.