[Coin-ipopt] Function/Gradient Evaluations in IPOPT callbacks

Jun Ma maj at northwestern.edu
Mon Nov 13 13:34:48 EST 2006

Hi all,
When evaluating the functions or gradients for IPOPT in it's designated call back functions (e.g. eval_grad_f, eval_g),
sometimes given the current iterate values fed from IPOPT solver (i.e. Number *x), my function or gradients may evaluate to "NaN" or may need to throw an exception, because "x" may not be defined for the function (e.g. ln(x[1]) where x[1] < 0). 

So the question is:  
Does IPOPT actually detects and handles these abnormal situations (e.g. it catches some exception or takes some kind of message from the callback)?

If IPOPT handles it, how is it done -- does IPOPT quit naturally or try to change or reverse the search direction?
Can anybody tell me how and/or refer me to a good reference or some examples somewhere?

As an example, if my natural log evaluation returns NaN, I may be instructed to throw something like a "IPOPTFunctionInvalidException" (which could  defined in one of IPOPT's header file) and hopefully IPOPT can just carry on.

Thanks in advance
Jun Ma
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.coin-or.org/pipermail/ipopt/attachments/20061113/78fa5691/attachment.html 

More information about the Coin-ipopt mailing list