[Cbc] CbcSolver printing directly to stdout
Kish Shen
kisshen at cisco.com
Thu Aug 28 15:10:22 EDT 2014
Hi,
I have not heard back on this. I would greatly appreciate any
help/information on this.
Perhaps I was not very clear in my last message, so let me try and give
some more context:
We use CbcSolver from within our own system (ECLiPSe -- a Prolog system,
where the user can write their program in ECLiPSe that interfaces to
Cbc), via the C++ API, i.e. CbcSolver is called via CbcMain() and
CbcMain1() etc. We also define a derived handler from CoinMessageHandler
to handle the output from that CbcSolver send via its messageHandler.
This allows the user to control the way output from CbcSolver is handled.
In addition to not being able to control the output handling, there is
an additional problem with printing to std::cout in the way we use
CbcSolver, as std::cout may actually not be used in our system
(depending on how the user is using our system), and the output may then
appear elsewhere (e.g. in the process that ECLiPSe was started from), or
not at all.
Looking at CbcSolver.cpp, I think some of the direct printing to
std:cout are only relevant if CbcSolver is used as a stand-alone solver,
but this is not the case for 'Problem is infeasible!' message -- so are
there any reason that these messages sent to std::cout, rather using
messageHanlder? Should they be changed to using messageHandler instead?
Thanks in advance for any help/information!
Cheers,
Kish
On 21/08/2014 02:07, Kish Shen wrote:
> Hi,
>
> One of our user reported that he is seeing a 'Problem is infeasible!'
> message from Cbc for some infeasible problems.
>
> He does not want to see messages during the solve, and has set the
> system to suppressed all output, but this only works with output handled
> via CoinMessageHandler.
>
> I checked for 'Problem is infeasible!', and it occurs twice in
> CbcSolver.cpp, and in both cases, the message is sent directly to
> std::cout, rather than using CoinMessageHandler. These are bracketed by
>
> #ifndef DISALLOW_PRINTING
>
> Should these messages be handled via CoinMessageHandler, or should I
> compile Cbc with -DDISALLOW_PRINTING?
>
> I am using Cbc stable/2.8 that I downloaded on March 12 2014. Our user
> also said that he did not see the message when he used aan earlier
> version of Cbc.
>
> In relation to versions, is there anyway to get the versions of
> Cbc/Clp/OSI etc. via the API? This would be useful information to print
> out when we load Cbc/Clp. I remember asking this a few years ago, and at
> the time this information was not available via the API.
>
> Thanks in advance for any help/information!
>
> Cheers,
>
> Kish
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cbc
More information about the Cbc
mailing list