Changes from releases/2.9.7 at r2366 to releases/2.9.8 at r2366


Ignore:
Location:
releases/2.9.8
Files:
2 added
15 edited

Legend:

Unmodified
Added
Removed
  • releases/2.9.8/Cbc

  • releases/2.9.8/Cbc/README

    r2366 r2366  
    3737## CHANGELOG
    3838
    39  * Release 2.9.7
     39 * Release 2.9.8
     40
     41   * Update to most current releases of dependencies
     42   * Small bug fixes
     43   * Add support for automatic build and test with Travis and Appveyor
     44
     45* Release 2.9.7
    4046
    4147   * Small bug fixes
  • releases/2.9.8/Cbc/configure

    r2366 r2366  
    11#! /bin/sh
    22# Guess values for system-dependent variables and create Makefiles.
    3 # Generated by GNU Autoconf 2.59 for Cbc 2.9.7.
     3# Generated by GNU Autoconf 2.59 for Cbc 2.9.8.
    44#
    55# Report bugs to <cbc@lists.coin-or.org>.
     
    430430PACKAGE_NAME='Cbc'
    431431PACKAGE_TARNAME='cbc'
    432 PACKAGE_VERSION='2.9.7'
    433 PACKAGE_STRING='Cbc 2.9.7'
     432PACKAGE_VERSION='2.9.8'
     433PACKAGE_STRING='Cbc 2.9.8'
    434434PACKAGE_BUGREPORT='cbc@lists.coin-or.org'
    435435
     
    10061006  # This message is too long to be a string in the A/UX 3.1 sh.
    10071007  cat <<_ACEOF
    1008 \`configure' configures Cbc 2.9.7 to adapt to many kinds of systems.
     1008\`configure' configures Cbc 2.9.8 to adapt to many kinds of systems.
    10091009
    10101010Usage: $0 [OPTION]... [VAR=VALUE]...
     
    10721072if test -n "$ac_init_help"; then
    10731073  case $ac_init_help in
    1074      short | recursive ) echo "Configuration of Cbc 2.9.7:";;
     1074     short | recursive ) echo "Configuration of Cbc 2.9.8:";;
    10751075   esac
    10761076  cat <<\_ACEOF
     
    13131313if $ac_init_version; then
    13141314  cat <<\_ACEOF
    1315 Cbc configure 2.9.7
     1315Cbc configure 2.9.8
    13161316generated by GNU Autoconf 2.59
    13171317
     
    13331333running configure, to aid debugging if configure makes a mistake.
    13341334
    1335 It was created by Cbc $as_me 2.9.7, which was
     1335It was created by Cbc $as_me 2.9.8, which was
    13361336generated by GNU Autoconf 2.59.  Invocation command line was
    13371337
     
    18591859
    18601860# Capture libtool library version, if given.
    1861  coin_libversion=12:7:9
     1861 coin_libversion=12:8:9
    18621862
    18631863
     
    45814581# Define the identity of the package.
    45824582 PACKAGE='cbc'
    4583  VERSION='2.9.7'
     4583 VERSION='2.9.8'
    45844584
    45854585
     
    2028820288    *-mingw*)
    2028920289      CYGPATH_W=echo
    20290       mydos2unix=
    2029120290      ;;
    2029220291  esac
     
    3145331452cat >&5 <<_CSEOF
    3145431453
    31455 This file was extended by Cbc $as_me 2.9.7, which was
     31454This file was extended by Cbc $as_me 2.9.8, which was
    3145631455generated by GNU Autoconf 2.59.  Invocation command line was
    3145731456
     
    3151631515cat >>$CONFIG_STATUS <<_ACEOF
    3151731516ac_cs_version="\\
    31518 Cbc config.status 2.9.7
     31517Cbc config.status 2.9.8
    3151931518configured by $0, generated by GNU Autoconf 2.59,
    3152031519  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
  • releases/2.9.8/Cbc/configure.ac

    r2366 r2366  
    1313AC_PREREQ(2.59)
    1414
    15 AC_INIT([Cbc],[2.9.7],[cbc@lists.coin-or.org])
     15AC_INIT([Cbc],[2.9.8],[cbc@lists.coin-or.org])
    1616
    1717AC_COPYRIGHT([
     
    4242# externals.  The following macro ensures that those externals are
    4343# retrieved by svn if they are not there yet.
    44 AC_COIN_PROJECTDIR_INIT(Cbc,12:7:9)
     44AC_COIN_PROJECTDIR_INIT(Cbc,12:8:9)
    4545
    4646# Check if user wants to produce debugging code
  • releases/2.9.8/Cbc/src

  • releases/2.9.8/Cbc/src/CbcModel.cpp

    r2366 r2366  
    21242124          }
    21252125          delete solver_ ;
     2126          solverCharacteristics_=NULL;
    21262127          solver_ = continuousSolver_ ;
    21272128          setPointers(solver_);
     
    61636164    }
    61646165    // Space for current solution
    6165     currentSolution_ = new double[numberColumns];
    6166     continuousSolution_ = CoinCopyOfArray(solver_->getColSolution(),numberColumns);
    6167     usedInSolution_ = new int[numberColumns];
    6168     CoinZeroN(usedInSolution_, numberColumns);
     6166    if (numberColumns) {
     6167      currentSolution_ = new double[numberColumns];
     6168      continuousSolution_ = CoinCopyOfArray(solver_->getColSolution(),numberColumns);
     6169      usedInSolution_ = new int[numberColumns];
     6170      CoinZeroN(usedInSolution_, numberColumns);
     6171    } else {
     6172      currentSolution_ = NULL;
     6173      continuousSolution_ = NULL;
     6174      usedInSolution_ = NULL;
     6175    }
    61696176    testSolution_ = currentSolution_;
    61706177    numberRowsAtContinuous_ = rhs.numberRowsAtContinuous_;
     
    86348641                numberTries = -1000; // exit
    86358642                feasible = false;
     8643                delete [] addCuts ;
    86368644                break;
    86378645            }
  • releases/2.9.8/Cbc/src/CbcNode.cpp

    r2366 r2366  
    19741974    // so we can save lots of stuff
    19751975    CbcStrongInfo choice;
     1976    memset (&choice, 0, sizeof(CbcStrongInfo));
    19761977    CbcDynamicPseudoCostBranchingObject * choiceObject = NULL;
    19771978    if (model->allDynamic()) {
  • releases/2.9.8/Cbc/src/CbcSolver.cpp

    r2366 r2366  
    41784178                                          osiclp->getModelPtr()->setMoreSpecialOptions(saveOptions|262144);
    41794179                                        }
    4180                                         solver2 = process.preProcessNonDefault(*saveSolver, translate[preProcess], numberPasses,
     4180                                        solver2 = process.preProcessNonDefault(*saveSolver, translate[preProcess], numberPasses,
    41814181                                                                               tunePreProcess);
    4182                                         /*solver2->writeMps("after");
    4183                                           saveSolver->writeMps("before");*/
    4184                                         osiclp->getModelPtr()->setPerturbation(savePerturbation);
    4185                                         osiclp->getModelPtr()->setMoreSpecialOptions(saveOptions);
     4182                                        if (solver2) {
     4183                                          model_.setOriginalColumns( process.originalColumns(), solver2->getNumCols() );
     4184                                          osiclp->getModelPtr()->setPerturbation(savePerturbation);
     4185                                          osiclp->getModelPtr()->setMoreSpecialOptions(saveOptions);
     4186                                        }
    41864187                                    }
    41874188#elif CBC_OTHER_SOLVER==1
     
    54345435#endif
    54355436                                const int * originalColumns = preProcess ? process.originalColumns() : NULL;
    5436                                 //if (model.getMIPStart().size())
    5437                                 // mipStart = model.getMIPStart();
    5438                                 if (mipStart.size() && !mipStartBefore.size() && babModel_->getNumCols())
     5437
     5438                                if (model.getMIPStart().size())
     5439                                                    mipStart = model.getMIPStart();
     5440
     5441                                if (mipStart.size() && !mipStartBefore.size() && babModel_->getNumCols())
    54395442                                {
    5440                                    std::vector< std::string > colNames;
    5441                                    if (preProcess)
    5442                                    {
    5443                                      std::vector< std::pair< std::string, double > > mipStart2;
    5444                                      int numberOriginalColumns = model_.solver()->getNumCols();
    5445                                      for ( int i=0 ; (i<babModel_->solver()->getNumCols()) ; ++i ) {
    5446                                        int iColumn = babModel_->originalColumns()[i];
    5447                                        if (iColumn>=0 && iColumn < numberOriginalColumns) {
    5448                                          colNames.push_back( model_.solver()->getColName( iColumn ) );
    5449                                          babModel_->solver()->setColName(i,model_.solver()->getColName(iColumn));
    5450                                          mipStart2.push_back(mipStart[iColumn]);
    5451                                        } else {
    5452                                          // created variable
    5453                                          char newName[15];
    5454                                          sprintf(newName,"C%7.7d",i);
    5455                                          colNames.push_back( newName );
    5456                                        }
    5457                                      }
    5458                                      mipStart = mipStart2;
    5459                                    } else {
    5460                                       for ( int i=0 ; (i<babModel_->solver()->getNumCols()) ; ++i )
    5461                                          colNames.push_back( model_.solver()->getColName(i) );
    5462                                    }
    5463                                    //printf("--- %s %d\n", babModel_->solver()->getColName(0).c_str(), babModel_->solver()->getColNames().size() );
    5464                                    //printf("-- SIZES of models %d %d %d\n", model_.getNumCols(),  babModel_->solver()->getNumCols(), babModel_->solver()->getColNames().size() );
    5465                                    std::vector< double > x( babModel_->getNumCols(), 0.0 );
    5466                                    double obj;
    5467                                    int status = computeCompleteSolution( babModel_, colNames, mipStart, &x[0], obj );
    5468                                    if (!status) {
    5469                                      babModel_->setBestSolution( &x[0], static_cast<int>(x.size()), obj, false );
    5470                                      babModel_->setSolutionCount(1);
    5471                                    }
    5472                                 }
     5443                                    std::vector< std::string > colNames;
     5444                                    if (preProcess)
     5445                                    {
     5446                                        /* translating mipstart solution */
     5447                                        std::map< std::string, double > mipStartV;
     5448                                        for ( size_t i=0 ; (i<mipStart.size()) ; ++i )
     5449                                            mipStartV[mipStart[i].first] = mipStart[i].second;
     5450
     5451                                        std::vector< std::pair< std::string, double > > mipStart2;
     5452                                        for ( int i=0 ; (i<babModel_->solver()->getNumCols()) ; ++i ) {
     5453                                            int iColumn = babModel_->originalColumns()[i];
     5454                                            if (iColumn>=0) {
     5455                                                std::string cname = model_.solver()->getColName( iColumn );
     5456                                                colNames.push_back( cname );
     5457                                                babModel_->solver()->setColName( i, cname );
     5458                                                std::map< std::string, double >::const_iterator msIt = mipStartV.find( cname );
     5459                                                if ( msIt != mipStartV.end() )
     5460                                                    mipStart2.push_back( std::pair< std::string, double>( cname, msIt->second ) );
     5461                                            } else {
     5462                                                // created variable
     5463                                                char newName[15];
     5464                                                sprintf(newName,"C%7.7d",i);
     5465                                                colNames.push_back( newName );
     5466                                            }
     5467                                        }
     5468                                        mipStart = mipStart2;
     5469                                    } else {
     5470                                        for ( int i=0 ; (i<babModel_->solver()->getNumCols()) ; ++i )
     5471                                            colNames.push_back( model_.solver()->getColName(i) );
     5472                                    }
     5473                                    //printf("--- %s %d\n", babModel_->solver()->getColName(0).c_str(), babModel_->solver()->getColNames().size() );
     5474                                    //printf("-- SIZES of models %d %d %d\n", model_.getNumCols(),  babModel_->solver()->getNumCols(), babModel_->solver()->getColNames().size() );
     5475                                    std::vector< double > x( babModel_->getNumCols(), 0.0 );
     5476                                    double obj;
     5477                                    int status = computeCompleteSolution( babModel_, colNames, mipStart, &x[0], obj );
     5478                                    if (!status) {
     5479                                        babModel_->setBestSolution( &x[0], static_cast<int>(x.size()), obj, false );
     5480                                        babModel_->setSolutionCount(1);
     5481                                    }
     5482                               }
     5483
    54735484
    54745485                                if (solutionIn && useSolution >= 0) {
     
    55565567                                        assert (originalColumns);
    55575568                                        int n = CoinMin(truncateColumns,numberColumns);
    5558                                         n = originalColumns[n-1] + 1;
     5569                                        // allow for empty problem
     5570                                        n = (n) ? originalColumns[n-1] + 1 : 0;
    55595571                                        n = CoinMax(n, CoinMax(numberColumns, numberOriginalColumns));
    55605572                                        int * newColumn = new int[n];
  • releases/2.9.8/Cbc/src/config_cbc_default.h

    r2366 r2366  
    66
    77/* Version number of project */
    8 #define CBC_VERSION "2.9.7"
     8#define CBC_VERSION "2.9.8"
    99
    1010/* Major Version number of project */
     
    1515
    1616/* Release Version number of project */
    17 #define CBC_VERSION_RELEASE 7
     17#define CBC_VERSION_RELEASE 8
  • releases/2.9.8/Cbc/src/unitTestClp.cpp

    r2366 r2366  
    169169    std::vector<double> objValue ;
    170170    std::vector<int> testSet ;
    171     std::vector<bool> rowCutDebugger ;
     171    std::vector<int> rowCutDebugger ;
    172172/*
    173173  A macro to make the vector creation marginally readable. Parameters are
  • releases/2.9.8/Dependencies

    r2366 r2366  
    99Data/miplib3  https://projects.coin-or.org/svn/Data/miplib3/stable/1.2
    1010CoinUtils  https://projects.coin-or.org/svn/CoinUtils/stable/2.10/CoinUtils
     11Osi  https://projects.coin-or.org/svn/Osi/stable/0.107/Osi
     12Clp  https://projects.coin-or.org/svn/Clp/stable/1.16/Clp
    1113Cgl  https://projects.coin-or.org/svn/Cgl/stable/0.59/Cgl
    12 Clp  https://projects.coin-or.org/svn/Clp/stable/1.16/Clp
    13 Osi  https://projects.coin-or.org/svn/Osi/stable/0.107/Osi
  • releases/2.9.8/INSTALL

    r2366 r2366  
    1414**********************************************************************
    1515
    16 Pre-built binaries are available for some versions of Cbc on some platforms.
    17 They can be downloaded at
    18 
    19   http://www.coin-or.org/download/binary/Cbc
     16For the most recent information on how to install Cbc binaries, please
     17see the Cbc Wiki: https://projects.coin-or.org/Cbc
    2018
    2119If you would like to build from source, you can obtain the source code for the
    22 Cbc package in two ways:
     20Cbc package in three ways:
    2321
    24221. Obtain the source directly from the COIN-OR subversion repository
     
    2826   client TortoiseSVN (http://tortoisesvn.net).
    2927
    30    Assuming that you want to download a release version 2.7.0, as an example,
     28   Assuming that you want to download a stable version 2.9, as an example,
    3129   you would execute the command
    3230
    33    svn co https://projects.coin-or.org/svn/Cbc/releases/2.7.0 Cbc-2.7.0
     31   svn co https://projects.coin-or.org/svn/Cbc/stable/2.9 Cbc-2.9
    3432
    35    You can similarly get source for the latest stable version or the trunk
     33   You can similarly get source for the latest release or the trunk
    3634   (development) version.
    3735
    38 2. Download the tarball from http://www.coin-or.org/download/source/Cbc
     362. Obtain the source from Github using git. Assuming that you want to
     37   download stable version 2.9, as an example, you would execute
     38   the command
     39
     40   git clone --branch=stable/2.9 https://github.com/coin-or/Cbc Cbc-2.9
     41
     42   With git, you additionally, need to fetch the dependencies. To do so,
     43   execute
     44
     45   cd Cbc-2.9
     46   git clone --branch=stable/0.8 https://github.com/coin-or/BuildTools
     47   BuildTools/get.dependencies fetch
     48
     493. Download the tarball from http://www.coin-or.org/download/source/Cbc
    3950   and extract it. For example, for the release 2.7.0 you type
    4051
  • releases/2.9.8/README.md

    r2366 r2366  
    1 # CBC Version 2.9.4 README
     1# CBC Version 2.9.8 README
    22
    33Welcome to the README for the COIN Branch and Cut Solver (CBC). CBC is
     
    66be redistributed freely.
    77
     8## Current Testing Status
     9
     10[![Build Status](https://travis-ci.org/coin-or/Cbc.svg?branch=master)](https://travis-ci.org/coin-or/Cbc)
     11
     12[![Build status](https://ci.appveyor.com/api/projects/status/l2hwifsxwhswng8y/branch/master?svg=true)](https://ci.appveyor.com/project/tkralphs/cbc/branch/master)
     13
    814## DOCUMENTATION
    915
     
    3642
    3743## CHANGELOG
     44
     45 * Release 2.9.8
     46
     47   * Update to most current releases of dependencies
     48   * Small bug fixes
     49   * Add support for automatic build and test with Travis and Appveyor
    3850
    3951 * Release 2.9.7
  • releases/2.9.8/configure

    r2366 r2366  
    22# From configure.ac 0.9.
    33# Guess values for system-dependent variables and create Makefiles.
    4 # Generated by GNU Autoconf 2.59 for Cbc 2.9.7.
     4# Generated by GNU Autoconf 2.59 for Cbc 2.9.8.
    55#
    66# Report bugs to <cbc@lists.coin-or.org>.
     
    431431PACKAGE_NAME='Cbc'
    432432PACKAGE_TARNAME='cbc'
    433 PACKAGE_VERSION='2.9.7'
    434 PACKAGE_STRING='Cbc 2.9.7'
     433PACKAGE_VERSION='2.9.8'
     434PACKAGE_STRING='Cbc 2.9.8'
    435435PACKAGE_BUGREPORT='cbc@lists.coin-or.org'
    436436
     
    10391039  # This message is too long to be a string in the A/UX 3.1 sh.
    10401040  cat <<_ACEOF
    1041 \`configure' configures Cbc 2.9.7 to adapt to many kinds of systems.
     1041\`configure' configures Cbc 2.9.8 to adapt to many kinds of systems.
    10421042
    10431043Usage: $0 [OPTION]... [VAR=VALUE]...
     
    11051105if test -n "$ac_init_help"; then
    11061106  case $ac_init_help in
    1107      short | recursive ) echo "Configuration of Cbc 2.9.7:";;
     1107     short | recursive ) echo "Configuration of Cbc 2.9.8:";;
    11081108   esac
    11091109  cat <<\_ACEOF
     
    13311331if $ac_init_version; then
    13321332  cat <<\_ACEOF
    1333 Cbc configure 2.9.7
     1333Cbc configure 2.9.8
    13341334generated by GNU Autoconf 2.59
    13351335
     
    13511351running configure, to aid debugging if configure makes a mistake.
    13521352
    1353 It was created by Cbc $as_me 2.9.7, which was
     1353It was created by Cbc $as_me 2.9.8, which was
    13541354generated by GNU Autoconf 2.59.  Invocation command line was
    13551355
     
    39653965  *-cygwin* | *-mingw*)
    39663966     if test "$enable_msvc" = yes ; then
    3967        coin_f77_comps="ifort fl32 compile_f2c gfortran g95 g77"
     3967       coin_f77_comps="ifort fl32 compile_f2c"
    39683968     else
    39693969       coin_f77_comps="gfortran ifort g95 g77 fl32 compile_f2c"
     
    51215121# Define the identity of the package.
    51225122 PACKAGE='cbc'
    5123  VERSION='2.9.7'
     5123 VERSION='2.9.8'
    51245124
    51255125
     
    2059120591    *-mingw*)
    2059220592      CYGPATH_W=echo
    20593       mydos2unix=
    2059420593      ;;
    2059520594  esac
     
    2353023529cat >&5 <<_CSEOF
    2353123530
    23532 This file was extended by Cbc $as_me 2.9.7, which was
     23531This file was extended by Cbc $as_me 2.9.8, which was
    2353323532generated by GNU Autoconf 2.59.  Invocation command line was
    2353423533
     
    2358823587cat >>$CONFIG_STATUS <<_ACEOF
    2358923588ac_cs_version="\\
    23590 Cbc config.status 2.9.7
     23589Cbc config.status 2.9.8
    2359123590configured by $0, generated by GNU Autoconf 2.59,
    2359223591  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
  • releases/2.9.8/configure.ac

    r2366 r2366  
    1313AC_PREREQ(2.59)
    1414
    15 AC_INIT([Cbc],[2.9.7],[cbc@lists.coin-or.org])
     15AC_INIT([Cbc],[2.9.8],[cbc@lists.coin-or.org])
    1616
    1717AC_COPYRIGHT([
Note: See TracChangeset for help on using the changeset viewer.