<?xml version="1.0" encoding="ISO-8859-1"?>
<chapter id="messages">
  <title>
  Messages
  </title>
  <para>
  Messages and codes passed by CBC are listed in the
  tables below.  For a complete list, see <filename>COIN/Cbc/CbcMessages.cpp</filename>. The notation used is the same as for the <function>printf</function> in the C programming language.
  <itemizedlist>
    <listitem>
    <simpara>
    <computeroutput>%s</computeroutput> is a string
    </simpara>
    </listitem>
    <listitem>
    <simpara>
    <computeroutput>%d</computeroutput> is an integer
    </simpara>
    </listitem>
    <listitem>
    <simpara>
    <computeroutput>%g</computeroutput> or <computeroutput>%f</computeroutput>
    is a floating point value
    </simpara>
    </listitem>
  </itemizedlist>

  </para>
<para>There are several log levels. Setting the log level to be <parameter>i</parameter> produces the log messages for level <parameter>i</parameter> and all levels less than <parameter>i</parameter>.
 </para>
  <itemizedlist>
    <listitem>
    <simpara>
    Logging Level 0: Switches off all CBC messages, but one. 
    </simpara>
    </listitem>
    <listitem>
    <simpara>
    Logging Level 1: The default.  
    </simpara>
    </listitem>
    <listitem>
    <simpara>
    Logging Level 2: Substantial amount of information, e.g., message 15 is generated once per node. Can be useful when the evaluation at each node is slow.
    </simpara>
    </listitem>
   <listitem>
    <simpara>
    Logging Level 3: Tremendous amount of information, e.g., multiple messages per node. 
    </simpara>
    </listitem>
  </itemizedlist>


  <table frame="none" align="left">
  <title>
  CBC Messages Passed At Logging Level 0
  </title>
  <tgroup cols="4" colsep="1" rowsep="1">
  <colspec colname="c1"/>
  <colspec colname="c3"/>
  <colspec colname="c4"/>
  <thead>
    <row>
      <entry align="center">
      Code
      </entry>
       <entry>
      </entry>
      <entry align="left">
      Text and notes
      </entry>
    </row>
  </thead>
  <tbody>
    <row>
      <entry align="left">
      3007
      </entry>
       <entry>
      </entry>
      <entry align="left">
      <computeroutput>No integer variables - nothing to do</computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
<!-- comment? -->
      </simpara>
      </entry>
    </row>
  </tbody>
  </tgroup>
  </table>



  <table frame="none" align="left">
  <title>
  CBC Messages Passed At or Above Logging Level 1
  </title>
  <tgroup cols="4" colsep="1" rowsep="1">
  <colspec colname="c1"/>
  <colspec colname="c3"/>
  <colspec colname="c4"/>
  <thead>
    <row>
      <entry align="center">
      Code
      </entry>
       <entry>
      </entry>
      <entry align="left">
      Text and notes
      </entry>
    </row>
  </thead>
  <tbody>
    <row>
      <entry align="left">
      1
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>Search completed - best objective %g, took %d iterations and %d nodes
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF -->
      </simpara>
      </entry>
    </row>
    <row>
      <entry align="left">
      3
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>Exiting on maximum nodes
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF CBC_MAXNODES -->
      </simpara>
      </entry>
    </row>
    <row>
      <entry align="left">
      4
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      Integer solution of %g found after %d iterations and %d nodes
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF CBC_SOLUTION  -->
      </simpara>
      </entry>
    </row>
    <row>
      <entry align="left">
      5
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      Partial search - best objective %g (best possible %g), took %d iterations and %d nodes
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF CBC_END -->
      </simpara>
      </entry>
    </row>
    <row>
      <entry align="left">
      6
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      The LP relaxation is infeasible or too expensive
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF CBC_INFEAS -->
      </simpara>
      </entry>
    </row>
    <row>
      <entry align="left">
      9
      </entry>
       <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      Objective coefficients multiple of %g
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF   CBC_INTEGERINCREMENT -->
      </simpara>
      </entry>
    </row>
    <row>
      <entry align="left">
      10
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      After %d nodes, %d on tree, %g best solution, best possible %g
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF    CBC_STATUS -->
      </simpara>
      </entry>
    </row>    <row>
      <entry align="left">
      11
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      Exiting as integer gap of %g less than %g or %g%%
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF  CBC_GAP -->     
      </simpara>
      </entry>
    </row>    
     <row>
      <entry align="left">
      12
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      Integer solution of %g found by heuristic after %d iterations and %d nodes
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF      CBC_ROUNDING -->
      </simpara>
      </entry>
    </row>    <row>
      <entry align="left">
      13
      </entry>
       <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      At root node, %d cuts changed objective from %g to %g in %d passes
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF       CBC_ROOT -->
      </simpara>
      </entry>
    </row>    
    <row>
      <entry align="left">
      14
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      Cut generator %d (%s) - %d row cuts (%d active), %d column cuts %? in %g seconds - new frequency is %d
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF     CBC_GENERATOR -->
      </simpara>
      </entry>
    </row>    
    <row>
      <entry align="left">
      16
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      Integer solution of %g found by strong branching after %d iterations and %d nodes
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF      CBC_STRONGSOL -->
      </simpara>
      </entry>
    </row>    
    <row>
      <entry align="left">
      17
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      %d solved, %d variables fixed, %d tightened
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF      CBC_INFEAS -->
      </simpara>
      </entry>
    </row>    
    <row>
      <entry align="left">
      18
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      After tightenVubs, %d variables fixed, %d tightened
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF       CBC_VUB_END -->
      </simpara>
      </entry>
    </row>    
    <row>
      <entry align="left">
      19
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      Exiting on maximum solutions
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF       CBC_MAXSOLS -->
      </simpara>
      </entry>
    </row>
   <row>
      <entry align="left">
      20
      </entry>
       <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      Exiting on maximum time
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF      CBC_MAXTIME -->
      </simpara>
      </entry>
    </row>
    <row>
      <entry align="left">
      23
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      Cutoff set to %g - equivalent to best solution of %g
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF       CBC_CUTOFF_WARNING -->
      </simpara>
      </entry>
    </row>    
    <row>
      <entry align="left">
      24
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      Integer solution of %g found by subtree after %d iterations and %d nodes
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF       CBC_TREE_SOL -->
      </simpara>
      </entry>
    </row>    
     <row>
      <entry align="left">
      26
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      Setting priorities for objects %d to %d inclusive (out of %d)
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF      CBC_PRIORITY -->
      </simpara>
      </entry>
    </row>    
    <row>
      <entry align="left">
      3008
      </entry>
       <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      Strong branching is fixing too many variables, too expensively!
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
     <!-- JJHF       CBC_WARNING_STRONG -->
      </simpara>
      </entry>
    </row>
  </tbody>
  </tgroup>
  </table>

  <table frame="none" align="left">
  <title>
  CBC Messages Passed At or Above Logging Level 2
  </title>
  <tgroup cols="4" colsep="1" rowsep="1">
  <colspec colname="c1"/>
  <colspec colname="c3"/>
  <colspec colname="c4"/>
  <thead>
    <row>
      <entry align="center">
      Code
      </entry>
      <entry>
      </entry>
      <entry align="left">
      Text and notes
      </entry>
    </row>
  </thead>
  <tbody>
    <row>
    <row>
      <entry align="left">
      8
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      %d has value %g
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF       CBC_SOLINDIVIDUAL -->
      </simpara>
      </entry>
    </row>
      <entry align="left">
      15
      </entry>
       <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      Node %d Obj %g Unsat %d depth %d
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF      CBC_BRANCH -->
      </simpara>
      </entry>
    </row>
    <row>
      <entry align="left">
      21
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      On closer inspection node is infeasible
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF      CBC_NOTFEAS1 -->
      </simpara>
      </entry>
    </row>
    <row>
      <entry align="left">
      22
      </entry>
        <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      On closer inspection objective value of %g above cutoff of %g
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF       CBC_NOTFEAS2 -->
      </simpara>
      </entry>
    </row>
    <row>
      <entry align="left">
      23
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      Allowing solution, even though largest row infeasibility is %g
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF        CBC_NOTFEAS3 -->
      </simpara>
      </entry>
    </row>
  </tbody>
  </tgroup>
  </table>

  <table frame="none" align="left">
  <title>
  CBC Messages Passed At or Above Logging Level 3
  </title>
  <tgroup cols="4" colsep="1" rowsep="1">
  <colspec colname="c1"/>
  <colspec colname="c3"/>
  <colspec colname="c4"/>
  <thead>
    <row>
      <entry align="center">
      Code
      </entry>
      <entry>
      </entry>
      <entry align="left">
      Text and notes
      </entry>
    </row>
  </thead>
  <tbody>
    <row>
      <entry align="left">
      7
      </entry>
        <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      Strong branching on %d (%d), down %g (%d) up %g (%d) value %g
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF       CBC_STRONG -->
      </simpara>
      </entry>
    </row>
    <row>
      <entry align="left">
      25
      </entry>
      <entry>
      </entry>
      <entry align="left">
      <computeroutput>
      %d cleanup iterations before strong branching
      </computeroutput>
      </entry>
    </row>
    <row>
      <entry namest="c1" nameend="c3">
      </entry>
      <entry align="left">
      <simpara>
      <!-- JJHF       CBC_INTERATE_STRONG -->
      </simpara>
      </entry>
    </row>
   </tbody>
  </tgroup>
  </table>
</chapter>
