[CppAD] Infinite loop in ode_err_control

Brad Bell bradbell at seanet.com
Thu Sep 6 10:01:25 EDT 2007


Mitch:
Thanks for the bug report. I was able to reproduce the infinite loop. A 
correction for this will be available starting with cppad-20070907.

If you need the correction today, you can make the changes to your copy of
    include/cppad/ode_err_control.hpp
(see changset below). Another option is to use the subversion install 
procedure;
    http://www.coin-or.org/CppAD/Doc/installsubversion.xml

The correction is in the following changeset for the CppAD source code
   https://projects.coin-or.org/CppAD/changeset/990
This changeset displays the correction to
    
https://projects.coin-or.org/CppAD/browser/trunk/cppad/ode_err_control.hpp?rev=990

The test that reproduces the infinite loop is called
    OdeErrControl_four
It is part of the file
    
https://projects.coin-or.org/CppAD/browser/trunk/test_more/ode_err_control.cpp?rev=990
(It is also displayed in the changeset mentioned above)


Mitch Watrous wrote:
> Hi.
>
> I have version 20070904 of CppAD installed on my Linux machine.
>
> From my discussion with Brad Bell today, we believe that the following 
> code from lines 508 to 513 of ode_err_control.hpp cause an infinite 
> loop for my problem, which has derivatives all set equal to Not a 
> Number (NaN):
>
>         // check if this steps error estimate is ok
>         ok = ! (hasnan(xb) || hasnan(eb));
>         if( (! ok) && (step <= smin) )
>         {    ef = nan_vec;
>             return nan_vec;
>         }
>
>
> Thanks,
> Mitch Watrous
> RFPK
> University of Washington
> _______________________________________________
> CppAD mailing list
> CppAD at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cppad
>
>



More information about the CppAD mailing list