[ADOL-C] sparse_jac return unreasonable NaN's
andrea.walther at uni-paderborn.de
Mon Oct 24 08:32:40 EDT 2011
> I made some simple test on sparse_jac, and I found that if my function
> is with condassign() and if any branch of condassign() returns a nan,
> the sparse_jac returns a nan,too. I think it there might be a bug in
> condassign or sparse_jac.
it took a while for us to track down this problem which is not caused by
the handling of the conditional assignments and also not caused by an
error in sparse_jac.
> My function is very simple. y=x/(exp(x)-1) . However if x is too large
> (x>100 or so) ,exp(x) results in nan,
this was the source of the error because internally ADOL-C
multiplies a INF resulting from the NAN with a 0 resulting again
in a NAN. This NAN was then propagated instead of the 0 which we
actually want in these cases.
We adapted the sources of ADOL-C in the trunk directory such that
in these cases now a 0 is propagated.
Thanks very much to Xu He for the hint to this subtle error!
Prof. Dr. Andrea Walther
Lehrstuhl fuer Mathematik und ihre Anwendungen
Institut fuer Mathematik
Warburger Str. 100
Email: andrea.walther at uni-paderborn.de
Phone: ++49 5251 602721
Fax: ++49 5251 603728
More information about the ADOL-C