Changeset 608


Ignore:
Timestamp:
May 14, 2007 8:37:33 PM (13 years ago)
Author:
lou
Message:

Cbc-generic: Add message handler, separate libCbc and cbc-generic main log
level parameters.

Location:
branches/devel/Cbc/src
Files:
2 added
17 edited

Legend:

Unmodified
Added
Removed
  • branches/devel/Cbc/src/CbcGenBaB.cpp

    r591 r608  
    3232
    3333namespace {
     34
     35  char svnid[] = "$Id$" ;
    3436
    3537/*
     
    211213  action = ctlBlk->getFPump(gen,model) ;
    212214  if (action != CbcGenCtlBlk::CGOff)
    213   { model->addHeuristic(gen) ; }
     215  { model->addHeuristic(gen,"FPump") ; }
    214216  action = ctlBlk->getRounding(gen,model) ;
    215217  if (action != CbcGenCtlBlk::CGOff)
    216   { model->addHeuristic(gen) ; }
     218  { model->addHeuristic(gen,"Rounding") ; }
    217219  action = ctlBlk->getCombine(gen,model) ;
    218220  if (action != CbcGenCtlBlk::CGOff)
    219   { model->addHeuristic(gen) ; }
     221  { model->addHeuristic(gen,"Combine") ; }
    220222  action = ctlBlk->getGreedyCover(gen,model) ;
    221223  if (action != CbcGenCtlBlk::CGOff)
    222   { model->addHeuristic(gen) ; }
     224  { model->addHeuristic(gen,"GCov") ; }
    223225  action = ctlBlk->getGreedyEquality(gen,model) ;
    224226  if (action != CbcGenCtlBlk::CGOff)
    225   { model->addHeuristic(gen) ; }
     227  { model->addHeuristic(gen,"GEq") ; }
    226228/*
    227229  This one's a bit different. We acquire the local tree and install it in the
  • branches/devel/Cbc/src/CbcGenCbcParam.cpp

    r591 r608  
    2222#include "CbcGenCbcParam.hpp"
    2323
     24namespace {
     25
     26  char svnid[] = "$Id$" ;
     27
     28}
    2429
    2530/*
  • branches/devel/Cbc/src/CbcGenCbcParam.hpp

    r591 r608  
    1313*/
    1414
     15/*
     16  $Id$
     17*/
    1518
    1619/*! \class CbcCbcParam
  • branches/devel/Cbc/src/CbcGenCbcParamUtils.cpp

    r591 r608  
    2525    \brief Implementation functions for CbcGenParam parameters.
    2626*/
     27
     28namespace {
     29
     30  char svnid[] = "$Id$" ;
     31
     32}
    2733
    2834namespace CbcCbcParamUtils
     
    103109
    104110  param = new CbcCbcParam(CbcCbcParam::LOGLEVEL,
    105         "log!Level","Level of detail in Coin branch and Cut output",
     111        "bclog!Level","Level of detail in Coin branch and Cut output",
    106112        -1,63,model->messageHandler()->logLevel()) ;
    107113  param->setPushFunc(pushCbcCbcInt) ;
  • branches/devel/Cbc/src/CbcGenCtlBlk.cpp

    r591 r608  
    1212
    1313#include "CbcGenCtlBlk.hpp"
     14
     15namespace {
     16
     17  char svnid[] = "$Id$" ;
     18
     19}
    1420
    1521/*
     
    5965
    6066  printOpt_ = 0 ;
     67
     68/*
     69  Assigning us_en to cur_lang_ is entirely bogus, but CoinMessages::Language
     70  does not provide an `unspecified' code.
     71*/
     72  msgHandler_ = new CoinMessageHandler() ;
     73  ourMsgHandler_ = true ;
     74  cur_lang_ = CoinMessages::us_en ;
     75  msgs_ = 0 ;
     76  logLvl_ = 0 ;
    6177
    6278  totalTime_ = 0.0 ;
     
    185201  if (greedyEquality_.proto_) delete greedyEquality_.proto_ ;
    186202  if (rounding_.proto_) delete rounding_.proto_ ;
     203
     204  if (msgHandler_ && ourMsgHandler_) delete msgHandler_ ;
     205  if (msgs_) delete msgs_ ;
    187206
    188207  return ; }
  • branches/devel/Cbc/src/CbcGenCtlBlk.hpp

    r591 r608  
    1414
    1515#include "CoinParam.hpp"
     16#include "CoinMessageHandler.hpp"
    1617
    1718#include "CglCutGenerator.hpp"
     
    3334#include "CbcHeuristicLocal.hpp"
    3435#include "CbcTreeLocal.hpp"
     36
     37#include "CbcGenMessages.hpp"
     38
     39/*
     40  It turns out that doxygen is not good with anonymous structures. Hence the
     41  `struct nameCtl_struct' style used for structured fields in CbcGenCtlBlk.
     42*/
     43
     44/*
     45  $Id$
     46*/
    3547
    3648#define CBC_GENERIC_VERSION "00.01.00"
     
    409421//@}
    410422
    411 /*! \brief Convenience routines for status codes. */
     423/*! \name Status Functions
     424    \brief Convenience routines for status codes.
     425*/
    412426//@{
    413427
     
    432446                    OsiSolverInterface *answerSolver = 0) ;
    433447
    434   /*! \brief Translate CbcModel major status to BACMajor
    435  
    436     See the BACMajor enum for details.
     448  /*! \brief Translate CbcModel major status to #BACMajor
     449 
     450    See the #BACMajor enum for details.
    437451  */
    438452  BACMajor translateMajor(int status) ;
    439453
    440   /*!\brief Translate CbcModel minor status to BACMinor
    441 
    442     See the BACMinor enum for details.
     454  /*!\brief Translate CbcModel minor status to #BACMinor
     455
     456    See the #BACMinor enum for details.
    443457  */
    444458  BACMinor translateMinor(int status) ;
    445459
    446   /*!\brief Translate OsiSolverInterface status to BACMinor
    447 
    448     See the BACMinor enum for details. Optimal, infeasible, and unbounded
     460  /*!\brief Translate OsiSolverInterface status to #BACMinor
     461
     462    See the #BACMinor enum for details. Optimal, infeasible, and unbounded
    449463    get their own codes; everything else maps to BACmOther.
    450464  */
     
    457471//@}
    458472
    459 /*! \name Parameter parsing, input/output, and such like. */
     473/*! \name Messages and statistics */
     474//@{
     475
     476  /*! \brief Print a message
     477
     478    Uses the current message handler and messages.
     479  */
     480  CoinMessageHandler &message(CbcGenMsgCode inID) ;
     481
     482  /*! \brief Supply a new message handler.
     483
     484    Replaces the current message handler. The current handler is destroyed
     485    if ourMsgHandler_ is true, and the call will set ourMsgHandler_ = true.
     486  */
     487  void passInMessageHandler(CoinMessageHandler *handler) ;
     488
     489  /*! \brief Return a pointer to the message handler */
     490  inline CoinMessageHandler *messageHandler() const { return msgHandler_ ; } ;
     491
     492  /*! \brief Set up messages in the specified language.
     493
     494    Building a set of messages in a given language implies rebuilding the
     495    whole set of messages, for reasons explained in the body of the code.
     496    Hence there's no separate setLanguage routine. Use this routine for the
     497    initial setup of messages and any subsequent change in language. Note
     498    that the constructor gives you a message handler by default, but \e not
     499    messages. You need to call setMessages explicitly.
     500
     501    The default value specified here for lang effectively sets the default
     502    language.
     503  */
     504  void setMessages(CoinMessages::Language lang = CoinMessages::us_en) ;
     505
     506  /*! \brief Set log level */
     507  inline void setLogLevel(int lvl)
     508  { logLvl_ = lvl ;
     509    if (msgHandler_) msgHandler_->setLogLevel(lvl) ; } ;
     510
     511  /*! \brief Get log level */
     512  inline int logLevel() const { return (logLvl_) ; } ;
     513
     514  /*! \brief When greater than 0, integer presolve gives more information and
     515             branch-and-cut provides statistics.
     516  */
     517  int printOpt_ ;
     518
     519//@}
     520
     521/*! \name Parameter parsing and input/output. */
    460522//@{
    461523  /*! \brief cbc-generic version */
     
    499561  /*! \brief Start and end of cbc-generic parameters in parameter vector */
    500562
    501   struct { int first_ ;
    502            int last_ ; } genParams_ ;
     563  struct genParamsInfo_struct
     564  { int first_ ;
     565    int last_ ; } genParams_ ;
    503566
    504567  /*! \brief Start and end of CbcModel parameters in parameter vector */
    505568
    506   struct { int first_ ;
    507            int last_ ; } cbcParams_ ;
     569  struct cbcParamsInfo_struct
     570  { int first_ ;
     571    int last_ ; } cbcParams_ ;
    508572
    509573  /*! \brief Start and end of OsiSolverInterface  parameters in parameter
     
    511575  */
    512576
    513   struct { int first_ ;
    514            int last_ ; } osiParams_ ;
     577  struct osiParamsInfo_struct
     578  { int first_ ;
     579    int last_ ; } osiParams_ ;
    515580
    516581  /*! \brief Verbosity level for help messages.
     
    529594  int paramsProcessed_ ;
    530595
    531   /*! \brief Record of parameters changed by the user command */
     596  /*! \brief Record of parameters changed by user command */
    532597
    533598  std::vector<bool> setByUser_ ;
     
    564629  */
    565630
    566   struct { int numCols_ ;
    567            double *values_ ; } debugSol_ ;
    568 
    569   /*! \brief When greater than 0, presolve gives more information and
    570              branch-and-cut provides statistics.
    571   */
    572 
    573   int printOpt_ ;
    574 
     631  struct debugSolInfo_struct
     632  { int numCols_ ;
     633    double *values_ ; } debugSol_ ;
    575634//@}
    576635
     
    618677  */
    619678
    620   struct { BACMajor majorStatus_ ;
    621            BACMinor minorStatus_ ;
    622            BACWhere where_ ;
    623            bool haveAnswer_ ;
    624            OsiSolverInterface *answerSolver_ ; } bab_ ;
     679  struct babState_struct
     680  { BACMajor majorStatus_ ;
     681    BACMinor minorStatus_ ;
     682    BACWhere where_ ;
     683    bool haveAnswer_ ;
     684    OsiSolverInterface *answerSolver_ ; } bab_ ;
    625685
    626686//@}
     
    637697  */
    638698
    639   struct { bool action_ ;
    640            double threshold_ ; } djFix_ ;
     699  struct djFixCtl_struct
     700  { bool action_ ;
     701    double threshold_ ; } djFix_ ;
    641702
    642703  /*! \brief Control the assignment of branching priorities to integer
     
    661722    evaluated with strong branching (numStrong_) are parameters of CbcModel.
    662723  */
    663   struct { int numBeforeTrust_ ;
    664            int numStrong_ ;
    665            int shadowPriceMode_ ; } chooseStrong_ ;
     724  struct chooseStrongCtl_struct
     725  { int numBeforeTrust_ ;
     726    int numStrong_ ;
     727    int shadowPriceMode_ ; } chooseStrong_ ;
    666728//@}
    667729
     
    686748
    687749  /*! \brief Control variable and prototype for probing cut generator */
    688   struct { CGControl action_ ;
    689            CglProbing *proto_ ;
    690            bool usingObjective_ ;
    691            int maxPass_ ;
    692            int maxPassRoot_ ;
    693            int maxProbe_ ;
    694            int maxProbeRoot_ ;
    695            int maxLook_ ;
    696            int maxLookRoot_ ;
    697            int maxElements_ ;
    698            int rowCuts_ ; } probing_ ;
     750  struct probingCtl_struct
     751  { CGControl action_ ;
     752    CglProbing *proto_ ;
     753    bool usingObjective_ ;
     754    int maxPass_ ;
     755    int maxPassRoot_ ;
     756    int maxProbe_ ;
     757    int maxProbeRoot_ ;
     758    int maxLook_ ;
     759    int maxLookRoot_ ;
     760    int maxElements_ ;
     761    int rowCuts_ ; } probing_ ;
    699762
    700763  /*! \brief Control variable and prototype for clique cut generator */
    701   struct { CGControl action_ ;
    702            CglClique *proto_ ;
    703            bool starCliqueReport_ ;
    704            bool rowCliqueReport_ ;
    705            double minViolation_ ; } clique_ ;
     764  struct cliqueCtl_struct
     765  { CGControl action_ ;
     766    CglClique *proto_ ;
     767    bool starCliqueReport_ ;
     768    bool rowCliqueReport_ ;
     769    double minViolation_ ; } clique_ ;
    706770
    707771  /*! \brief Control variable and prototype for flow cover cut generator */
    708   struct { CGControl action_ ;
    709            CglFlowCover *proto_ ; } flow_ ;
     772  struct flowCtl_struct
     773  { CGControl action_ ;
     774    CglFlowCover *proto_ ; } flow_ ;
    710775
    711776  /*! \brief Control variable and prototype for Gomory cut generator */
    712   struct { CGControl action_ ;
    713            CglGomory *proto_ ;
    714            int limit_ ;
    715            int limitAtRoot_ ; } gomory_ ;
     777  struct gomoryCtl_struct
     778  { CGControl action_ ;
     779    CglGomory *proto_ ;
     780    int limit_ ;
     781    int limitAtRoot_ ; } gomory_ ;
    716782
    717783/*   \brief Control variable and prototype for lift-and-project cut
    718784             generator
    719    struct { CGControl action_ ;
    720            CglLandP *proto_ ; } landp_ ;
     785   struct landpCtl_struct
     786   { CGControl action_ ;
     787     CglLandP *proto_ ; } landp_ ;
    721788*/
    722789
    723790  /*! \brief Control variable and prototype for knapsack cover cut generator */
    724   struct { CGControl action_ ;
    725            CglKnapsackCover *proto_ ; } knapsack_ ;
     791  struct knapsackCtl_struct
     792  { CGControl action_ ;
     793    CglKnapsackCover *proto_ ; } knapsack_ ;
    726794
    727795  /*! \brief Control variable and prototype for MIR cut generator */
    728   struct { CGControl action_ ;
    729            CglMixedIntegerRounding2 *proto_ ; } mir_ ;
     796  struct mirCtl_struct
     797  { CGControl action_ ;
     798    CglMixedIntegerRounding2 *proto_ ; } mir_ ;
    730799
    731800  /*! \brief Control variable and prototype for odd hole cut generator */
    732   struct { CGControl action_ ;
    733            CglOddHole *proto_ ; } oddHole_ ;
     801  struct oddHoleCtl_struct
     802  { CGControl action_ ;
     803    CglOddHole *proto_ ; } oddHole_ ;
    734804
    735805  /*! \brief Control variable and prototype for reduce-and-split
    736806             cut generator
    737807  */
    738   struct { CGControl action_ ;
    739            CglRedSplit *proto_ ; } redSplit_ ;
     808  struct redSplitCtl_struct
     809  { CGControl action_ ;
     810    CglRedSplit *proto_ ; } redSplit_ ;
    740811
    741812  /*! \brief Control variable and prototype for Two-MIR cut generator */
    742   struct { CGControl action_ ;
    743            CglTwomir *proto_ ;
    744            int maxElements_ ; } twomir_ ;
     813  struct twomirCtl_struct
     814  { CGControl action_ ;
     815    CglTwomir *proto_ ;
     816    int maxElements_ ; } twomir_ ;
    745817
    746818  /*! \brief Control variable and prototype for feasibility pump heuristic */
    747   struct { CGControl action_ ;
    748            CbcHeuristicFPump *proto_ ;
    749            int iters_ ; } fpump_ ;
     819  struct fpumpCtl_struct
     820  { CGControl action_ ;
     821    CbcHeuristicFPump *proto_ ;
     822    int iters_ ; } fpump_ ;
    750823
    751824  /*! \brief Control variable and prototype for combine heuristic */
    752   struct { CGControl action_ ;
    753            CbcHeuristicLocal *proto_ ;
    754            int trySwap_ ; } combine_ ;
     825  struct combineCtl_struct
     826  { CGControl action_ ;
     827    CbcHeuristicLocal *proto_ ;
     828    int trySwap_ ; } combine_ ;
    755829
    756830  /*! \brief Control variable and prototype for greedy cover heuristic */
    757   struct { CGControl action_ ;
    758            CbcHeuristicGreedyCover *proto_ ; } greedyCover_ ;
     831  struct greedyCoverCtl_struct
     832  { CGControl action_ ;
     833    CbcHeuristicGreedyCover *proto_ ; } greedyCover_ ;
    759834
    760835  /*! \brief Control variable and prototype for greedy equality heuristic */
    761   struct { CGControl action_ ;
    762            CbcHeuristicGreedyEquality *proto_ ; } greedyEquality_ ;
     836  struct greedyEqualityCtl_struct
     837  { CGControl action_ ;
     838    CbcHeuristicGreedyEquality *proto_ ; } greedyEquality_ ;
    763839
    764840  /*! \brief Control variable and prototype for simple rounding heuristic */
    765   struct { CGControl action_ ;
    766            CbcRounding *proto_ ; } rounding_ ;
     841  struct roundingCtl_struct
     842  { CGControl action_ ;
     843    CbcRounding *proto_ ; } rounding_ ;
    767844
    768845
     
    773850    hide the details. Consult CbcTreeLocal.hpp for details.
    774851  */
    775   struct { CGControl action_ ;
    776            CbcTreeLocal *proto_ ;
    777            double *soln_ ;
    778            int range_ ;
    779            int typeCuts_ ;
    780            int maxDiverge_ ;
    781            int timeLimit_ ;
    782            int nodeLimit_ ;
    783            bool refine_ ; } localTree_ ;
     852  struct localTreeCtl_struct
     853  { CGControl action_ ;
     854    CbcTreeLocal *proto_ ;
     855    double *soln_ ;
     856    int range_ ;
     857    int typeCuts_ ;
     858    int maxDiverge_ ;
     859    int timeLimit_ ;
     860    int nodeLimit_ ;
     861    bool refine_ ; } localTree_ ;
     862
     863//@}
     864
     865/*! \name Messages and statistics (private)
     866    \brief Data and objects related to messages and statistics that should be
     867           protected from direct manipulation.
     868*/
     869//@{
     870
     871  /*! \brief Message handler. */
     872  CoinMessageHandler *msgHandler_ ;
     873
     874  /*! \brief Ownership of message handler.
     875
     876    If true, the control block owns the message handler and it will be destroyed
     877    with the control block. If false, the client is responsible for the message
     878    handler.
     879  */
     880  bool ourMsgHandler_ ;
     881
     882  /*! \brief The current language */
     883  CoinMessages::Language cur_lang_ ;
     884
     885  /*! \brief The current set of messages. */
     886  CoinMessages *msgs_ ;
     887
     888  /*! \brief The current log level */
     889  int logLvl_ ;
    784890
    785891//@}
  • branches/devel/Cbc/src/CbcGenOsiParam.cpp

    r591 r608  
    2222#include "CbcGenCbcParam.hpp"
    2323#include "CbcGenOsiParam.hpp"
     24
     25namespace {
     26
     27  char svnid[] = "$Id$" ;
     28
     29}
    2430
    2531/*
  • branches/devel/Cbc/src/CbcGenOsiParam.hpp

    r591 r608  
    1111/* \file CbcGenOsiParam.hpp
    1212   \brief Declarations for parameters that act on a OsiSolverInterface object.
     13*/
     14
     15/*
     16  $Id$
    1317*/
    1418
  • branches/devel/Cbc/src/CbcGenOsiParamUtils.cpp

    r591 r608  
    2828    \brief Implementation functions for CbcOsiParam parameters.
    2929*/
     30
     31namespace {
     32
     33  char svnid[] = "$Id$" ;
     34
     35}
    3036
    3137namespace CbcOsiParamUtils
     
    169175void setOsiSolverInterfaceDefaults (OsiSolverInterface *osi)
    170176
    171 {
    172 
     177{ bool result ;
     178
     179/*
     180  OsiNameDiscipline isn't supported by all solvers, so check to see that it
     181  worked. If not, fall back to zero.
     182*/
    173183  osi->setIntParam(OsiMaxNumIteration,1000000) ;
    174184  osi->setIntParam(OsiMaxNumIterationHotStart,1000) ;
    175185  osi->setIntParam(OsiNameDiscipline,1) ;
     186  if (!result)
     187  { result = osi->setIntParam(OsiNameDiscipline,0) ; }
     188
    176189/*
    177190  Primal and dual feasibility tolerances (OsiPrimalTolerance and
     
    182195  osi->setDblParam(OsiObjOffset,0.0) ;
    183196
    184   (void) osi->setHintParam(OsiDoPresolveInInitial,true,OsiHintDo) ;
    185   (void) osi->setHintParam(OsiDoDualInInitial,true,OsiHintIgnore) ;
    186   (void) osi->setHintParam(OsiDoPresolveInResolve,false,OsiHintTry) ;
    187   (void) osi->setHintParam(OsiDoDualInInitial,true,OsiHintTry) ;
    188   (void) osi->setHintParam(OsiDoScale,true,OsiHintDo) ;
    189   (void) osi->setHintParam(OsiDoCrash,true,OsiHintIgnore) ;
    190   (void) osi->setHintParam(OsiDoReducePrint,true,OsiHintDo) ;
    191   (void) osi->setHintParam(OsiDoInBranchAndCut,true,OsiHintTry) ;
     197  osi->setHintParam(OsiDoPresolveInInitial,true,OsiHintDo) ;
     198  osi->setHintParam(OsiDoDualInInitial,true,OsiHintIgnore) ;
     199  osi->setHintParam(OsiDoPresolveInResolve,false,OsiHintTry) ;
     200  osi->setHintParam(OsiDoDualInInitial,true,OsiHintTry) ;
     201  osi->setHintParam(OsiDoScale,true,OsiHintDo) ;
     202  osi->setHintParam(OsiDoCrash,true,OsiHintIgnore) ;
     203  osi->setHintParam(OsiDoReducePrint,true,OsiHintDo) ;
     204  osi->setHintParam(OsiDoInBranchAndCut,true,OsiHintTry) ;
    192205
    193206  return ; }
  • branches/devel/Cbc/src/CbcGenParam.cpp

    r591 r608  
    2020#include "CbcGenCtlBlk.hpp"
    2121#include "CbcGenParam.hpp"
     22
     23namespace {
     24
     25  char svnid[] = "$Id$" ;
     26
     27}
    2228
    2329/*
  • branches/devel/Cbc/src/CbcGenParam.hpp

    r591 r608  
    1212   \brief Declarations for parameters that control the cbc-generic main
    1313          program.
     14*/
     15
     16/*
     17  $Id$
    1418*/
    1519
     
    4852    ERRORSALLOWED, EXIT, EXPORT,
    4953    FLOWCUTS, FPUMP, FPUMPITS, GOMORYCUTS, GREEDY, HEURISTICSTRATEGY,
    50     IMPORT, INTPRINT, KNAPSACKCUTS, LOCALTREE,
     54    IMPORT, INTPRINT, KNAPSACKCUTS, LOCALTREE, LOGLEVEL,
    5155    MESSAGES, MIPLIB, MIXEDCUTS, ODDHOLECUTS, OUTDUPROWS, OUTPUTFORMAT,
    5256    PREPROCESS, PRINTMASK, PRINTOPTIONS, PRINTVERSION, PRIORITYIN, PROBINGCUTS,
  • branches/devel/Cbc/src/CbcGenParamUtils.cpp

    r591 r608  
    2626    \brief Implementation functions for CbcGenParam parameters.
    2727*/
     28
     29namespace {
     30
     31  char svnid[] = "$Id$" ;
     32
     33}
    2834
    2935namespace CbcGenSolvers
     
    321327  param->setLongHelp(
    322328        "This switches on a local search algorithm when a solution is found.  This is from Fischetti and Lodi and is not really a heuristic although it can be used as one. When used from this program it has limited functionality.  It is not controlled by heuristicsOnOff."
     329        ) ;
     330  parameters.push_back(param) ;
     331
     332  param = new CbcGenParam(CbcGenParam::LOGLEVEL,
     333        "log!Level","Level of detail in cbc-generic output.",
     334        -1,999999,ctlBlk->logLvl_) ;
     335  param->setObj(ctlBlk) ;
     336  param->setPushFunc(pushCbcGenIntParam) ;
     337  param->setLongHelp(
     338        "If set to 0 then there should be no output in normal circumstances. A value of 1 is probably the best value for most uses, while 2 and 3 give more information."
    323339        ) ;
    324340  parameters.push_back(param) ;
     
    812828  { case CbcGenParam::CUTDEPTH:
    813829    { ctlBlk->setCutDepth(val) ;
     830      break ; }
     831    case CbcGenParam::LOGLEVEL:
     832    { ctlBlk->setLogLevel(val) ;
    814833      break ; }
    815834    case CbcGenParam::PRINTOPTIONS:
  • branches/devel/Cbc/src/CbcGenSolution.cpp

    r591 r608  
    1818#include "CbcGenParam.hpp"
    1919
    20 
    2120namespace {
    2221
     22  char svnid[] = "$Id$" ;
     23
     24}
     25
     26namespace {
    2327
    2428/*
  • branches/devel/Cbc/src/CbcGenSolvers.cpp

    r591 r608  
    5858#include "CbcGenCbcParam.hpp"
    5959#include "CbcGenOsiParam.hpp"
     60
     61namespace {
     62
     63  char svnid[] = "$Id$" ;
     64
     65}
    6066
    6167/*
     
    158164  CbcGenCtlBlk *ctlBlk = genParam->obj() ;
    159165  assert (ctlBlk != 0) ;
     166  CoinMessageHandler *msghandler = ctlBlk->messageHandler() ;
    160167/*
    161168  Setup to return nonfatal/fatal error (1/-1) by default.
     
    180187  We have a solver.
    181188*/
     189  ctlBlk->message(CBCGEN_NEW_SOLVER)
     190    << solverName << CoinMessageEol ;
    182191  CbcModel *model = ctlBlk->model_ ;
    183192  assert (model != 0) ;
  • branches/devel/Cbc/src/CbcGeneric.cpp

    r591 r608  
    5858#include "CbcGenCbcParam.hpp"
    5959#include "CbcGenOsiParam.hpp"
     60
     61namespace {
     62
     63  char svnid[] = "$Id$" ;
     64
     65}
    6066
    6167namespace CbcGenSolvers
     
    125131*/
    126132  CbcGenCtlBlk ctlBlk ;
     133  ctlBlk.setMessages() ;
     134  ctlBlk.setLogLevel(1) ;
    127135  OsiSolverInterface *dfltSolver = CbcGenSolvers::setupSolvers() ;
    128136  ctlBlk.dfltSolver_ = dfltSolver ;
  • branches/devel/Cbc/src/Makefile.am

    r595 r608  
    132132        CbcGenCtlBlk.cpp CbcGenCtlBlk.hpp \
    133133        CbcGeneric.cpp \
     134        CbcGenMessages.cpp CbcGenMessages.hpp \
    134135        CbcGenOsiParam.cpp CbcGenOsiParam.hpp CbcGenOsiParamUtils.cpp \
    135136        CbcGenParam.cpp CbcGenParam.hpp CbcGenParamUtils.cpp \
  • branches/devel/Cbc/src/Makefile.in

    r595 r608  
    186186am__cbc_generic_SOURCES_DIST = CbcGenBaB.cpp CbcGenCbcParam.cpp \
    187187        CbcGenCbcParam.hpp CbcGenCbcParamUtils.cpp CbcGenCtlBlk.cpp \
    188         CbcGenCtlBlk.hpp CbcGeneric.cpp CbcGenOsiParam.cpp \
    189         CbcGenOsiParam.hpp CbcGenOsiParamUtils.cpp CbcGenParam.cpp \
    190         CbcGenParam.hpp CbcGenParamUtils.cpp CbcGenSolution.cpp \
    191         CbcGenSolvers.cpp
     188        CbcGenCtlBlk.hpp CbcGeneric.cpp CbcGenMessages.cpp \
     189        CbcGenMessages.hpp CbcGenOsiParam.cpp CbcGenOsiParam.hpp \
     190        CbcGenOsiParamUtils.cpp CbcGenParam.cpp CbcGenParam.hpp \
     191        CbcGenParamUtils.cpp CbcGenSolution.cpp CbcGenSolvers.cpp
    192192@CBC_BUILD_CBC_GENERIC_TRUE@am_cbc_generic_OBJECTS =  \
    193193@CBC_BUILD_CBC_GENERIC_TRUE@    CbcGenBaB.$(OBJEXT) \
     
    196196@CBC_BUILD_CBC_GENERIC_TRUE@    CbcGenCtlBlk.$(OBJEXT) \
    197197@CBC_BUILD_CBC_GENERIC_TRUE@    CbcGeneric.$(OBJEXT) \
     198@CBC_BUILD_CBC_GENERIC_TRUE@    CbcGenMessages.$(OBJEXT) \
    198199@CBC_BUILD_CBC_GENERIC_TRUE@    CbcGenOsiParam.$(OBJEXT) \
    199200@CBC_BUILD_CBC_GENERIC_TRUE@    CbcGenOsiParamUtils.$(OBJEXT) \
     
    553554@CBC_BUILD_CBC_GENERIC_TRUE@    CbcGenCtlBlk.cpp CbcGenCtlBlk.hpp \
    554555@CBC_BUILD_CBC_GENERIC_TRUE@    CbcGeneric.cpp \
     556@CBC_BUILD_CBC_GENERIC_TRUE@    CbcGenMessages.cpp CbcGenMessages.hpp \
    555557@CBC_BUILD_CBC_GENERIC_TRUE@    CbcGenOsiParam.cpp CbcGenOsiParam.hpp CbcGenOsiParamUtils.cpp \
    556558@CBC_BUILD_CBC_GENERIC_TRUE@    CbcGenParam.cpp CbcGenParam.hpp CbcGenParamUtils.cpp \
     
    738740@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcGenCbcParamUtils.Po@am__quote@
    739741@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcGenCtlBlk.Po@am__quote@
     742@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcGenMessages.Po@am__quote@
    740743@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcGenOsiParam.Po@am__quote@
    741744@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CbcGenOsiParamUtils.Po@am__quote@
Note: See TracChangeset for help on using the changeset viewer.