Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

SbbMessage.cpp

00001 // Copyright (C) 2002, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 #if defined(_MSC_VER)
00004 // Turn off compiler warning about long names
00005 #  pragma warning(disable:4786)
00006 #endif
00007 
00008 #include "SbbMessage.hpp"
00009 
00010 typedef struct {
00011   SBB_Message internalNumber;
00012   int externalNumber; // or continuation
00013   char detail;
00014   const char * message;
00015 } Sbb_message;
00016 static Sbb_message us_english[]=
00017 {
00018   {SBB_END_GOOD,1,1,"Search completed - best objective %g, took %d iterations and %d nodes"},
00019   {SBB_MAXNODES,3,1,"Exiting on maximum nodes"},
00020   {SBB_MAXTIME,20,1,"Exiting on maximum time"},
00021   {SBB_MAXSOLS,19,1,"Exiting on maximum solutions"},
00022   {SBB_SOLUTION,4,1,"Integer solution of %g found after %d iterations and %d nodes"},
00023   {SBB_END,5,1,"Partial search took %d iterations and %d nodes"},
00024   {SBB_INFEAS,6,1,"The LP relaxation is infeasible or too expensive"},
00025   {SBB_STRONG,7,3,"Strong branching on %d (%d), down %g (%d) up %g (%d) value %g"},
00026   {SBB_SOLINDIVIDUAL,8,2,"%d has value %g"},
00027   {SBB_INTEGERINCREMENT,9,1,"Objective coefficients multiple of %g"},
00028   {SBB_STATUS,10,1,"After %d nodes, %d on tree, %g best solution, best possible %g"},
00029   {SBB_GAP,11,1,"Exiting as integer gap of %g less than %g"},
00030   {SBB_ROUNDING,12,1,"Integer solution of %g found by rounding after %d iterations and %d nodes"},
00031   {SBB_ROOT,13,1,"At root node, %d cuts changed objective from %g to %g in %d passes"},
00032   {SBB_GENERATOR,14,1,"Cut generator %d (%s) - %d row cuts (%d active), %d column cuts - new frequency is %d"},
00033   {SBB_BRANCH,15,2,"Node %d Obj %g Unsat %d depth %d"},
00034   {SBB_STRONGSOL,16,1,"Integer solution of %g found by strong branching after %d iterations and %d nodes"},
00035   {SBB_NOINT,3007,0,"No integer variables - nothing to do"},
00036   {SBB_VUB_PASS,17,1,"%d solved, %d variables fixed, %d tightened"},
00037   {SBB_VUB_END,18,1,"After tightenVubs, %d variables fixed, %d tightened"},
00038   {SBB_NOTFEAS1,21,2,"On closer inspection node is infeasible"},
00039   {SBB_NOTFEAS2,22,2,"On closer inspection objective value of %g above cutoff of %g"},
00040   {SBB_NOTFEAS3,23,2,"Allowing solution, even though largest row infeasibility is %g"},
00041   {SBB_CUTOFF_WARNING1,23,1,"Cutoff set to %g - equivalent to best solution of %g"},
00042   {SBB_DUMMY_END,999999,0,""}
00043 };
00044 /* Constructor */
00045 SbbMessage::SbbMessage(Language language) :
00046   CoinMessages(sizeof(us_english)/sizeof(Sbb_message))
00047 {
00048   language_=language;
00049   strcpy(source_,"Sbb");
00050   Sbb_message * message = us_english;
00051 
00052   while (message->internalNumber!=SBB_DUMMY_END) {
00053     CoinOneMessage oneMessage(message->externalNumber,message->detail,
00054                 message->message);
00055     addMessage(message->internalNumber,oneMessage);
00056     message ++;
00057   }
00058 
00059   // now override any language ones
00060 
00061   switch (language) {
00062 
00063   default:
00064     message=NULL;
00065     break;
00066   }
00067 
00068   // replace if any found
00069   if (message) {
00070     while (message->internalNumber!=SBB_DUMMY_END) {
00071       replaceMessage(message->internalNumber,message->message);
00072       message ++;
00073     }
00074   }
00075 }

Generated on Wed Dec 3 14:36:20 2003 for Sbb by doxygen 1.3.5