source: trunk/Cbc/src/CbcMessage.cpp @ 599

Last change on this file since 599 was 599, checked in by jpfasano, 13 years ago

Added include of CoinPragma? to reduce MS compiler warning messages

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.1 KB
Line 
1// Copyright (C) 2002, International Business Machines
2// Corporation and others.  All Rights Reserved.
3
4#include "CoinPragma.hpp"
5#include "CbcMessage.hpp"
6
7typedef struct {
8  CBC_Message internalNumber;
9  int externalNumber; // or continuation
10  char detail;
11  const char * message;
12} Cbc_message;
13static Cbc_message us_english[]=
14{
15  {CBC_END_GOOD,1,1,"Search completed - best objective %g, took %d iterations and %d nodes (%.2f seconds)"},
16  {CBC_MAXNODES,3,1,"Exiting on maximum nodes"},
17  {CBC_MAXTIME,20,1,"Exiting on maximum time"},
18  {CBC_MAXSOLS,19,1,"Exiting on maximum solutions"},
19  {CBC_EVENT,27,1,"Exiting on user event"},
20  {CBC_SOLUTION,4,1,"Integer solution of %g found after %d iterations and %d nodes (%.2f seconds)"},
21  {CBC_END_SOLUTION,34,2,"Final check on integer solution of %g found after %d iterations and %d nodes (%.2f seconds)"},
22  {CBC_SOLUTION2,33,1,"Integer solution of %g found (by alternate solver) after %d iterations and %d nodes (%.2f seconds)"},
23  {CBC_END,5,1,"Partial search - best objective %g (best possible %g), took %d iterations and %d nodes (%.2f seconds)"},
24  {CBC_INFEAS,6,1,"The LP relaxation is infeasible or too expensive"},
25  {CBC_STRONG,7,3,"Strong branching on %d (%d), down %g (%d) up %g (%d) value %g"},
26  {CBC_SOLINDIVIDUAL,8,2,"%d has value %g"},
27  {CBC_INTEGERINCREMENT,9,1,"Objective coefficients multiple of %g"},
28  {CBC_STATUS,10,1,"After %d nodes, %d on tree, %g best solution, best possible %g (%.2f seconds)"},
29  {CBC_GAP,11,1,"Exiting as integer gap of %g less than %g or %g%%"},
30  {CBC_ROUNDING,12,1,"Integer solution of %g found by heuristic after %d iterations and %d nodes (%.2f seconds)"},
31  {CBC_TREE_SOL,24,1,"Integer solution of %g found by subtree after %d iterations and %d nodes (%.2f seconds)"},
32  {CBC_ROOT,13,1,"At root node, %d cuts changed objective from %g to %g in %d passes"},
33  {CBC_GENERATOR,14,1,"Cut generator %d (%s) - %d row cuts (%d active), %d column cuts %? in %g seconds - new frequency is %d"},
34  {CBC_BRANCH,15,2,"Node %d Obj %g Unsat %d depth %d"},
35  {CBC_STRONGSOL,16,1,"Integer solution of %g found by strong branching after %d iterations and %d nodes (%.2f seconds)"},
36  {CBC_NOINT,3007,1,"No integer variables - nothing to do"},
37  {CBC_VUB_PASS,17,1,"%d solved, %d variables fixed, %d tightened"},
38  {CBC_VUB_END,18,1,"After tightenVubs, %d variables fixed, %d tightened"},
39  {CBC_NOTFEAS1,21,2,"On closer inspection node is infeasible"},
40  {CBC_NOTFEAS2,22,2,"On closer inspection objective value of %g above cutoff of %g"},
41  {CBC_NOTFEAS3,23,2,"Allowing solution, even though largest row infeasibility is %g"},
42  {CBC_CUTOFF_WARNING1,23,1,"Cutoff set to %g - equivalent to best solution of %g"},
43  {CBC_ITERATE_STRONG,25,3,"%d cleanup iterations before strong branching"},
44  {CBC_PRIORITY,26,1,"Setting priorities for objects %d to %d inclusive (out of %d)"},
45  {CBC_WARNING_STRONG,3008,1,"Strong branching is fixing too many variables, too expensively!"},
46  {CBC_START_SUB,28,1,"Starting sub-tree for %s - maximum nodes %d"},
47  {CBC_END_SUB,29,1,"Ending sub-tree for %s"},
48  {CBC_HEURISTIC_SOLUTION,30,1,"solution of %g found by %s after %2.f seconds"},
49  {CBC_CUTS_STATS,31,1,"%d added rows had average density of %g"},
50  {CBC_STRONG_STATS,32,1,"Strong branching done %d times (%d iterations), fathomed %d nodes and fixed %d variables"},
51  {CBC_UNBOUNDED,34,1,"The LP relaxation is unbounded!"},
52  {CBC_DUMMY_END,999999,0,""}
53};
54/* Constructor */
55CbcMessage::CbcMessage(Language language) :
56  CoinMessages(sizeof(us_english)/sizeof(Cbc_message))
57{
58  language_=language;
59  strcpy(source_,"Cbc");
60  class_ = 0; // branch and bound
61  Cbc_message * message = us_english;
62
63  while (message->internalNumber!=CBC_DUMMY_END) {
64    CoinOneMessage oneMessage(message->externalNumber,message->detail,
65                message->message);
66    addMessage(message->internalNumber,oneMessage);
67    message ++;
68  }
69
70  // now override any language ones
71
72  switch (language) {
73
74  default:
75    message=NULL;
76    break;
77  }
78
79  // replace if any found
80  if (message) {
81    while (message->internalNumber!=CBC_DUMMY_END) {
82      replaceMessage(message->internalNumber,message->message);
83      message ++;
84    }
85  }
86}
Note: See TracBrowser for help on using the repository browser.