[ADOL-C] Arithmetic Exception

Kshitij Kulshreshtha kshitij at math.upb.de
Tue Nov 2 08:19:16 EDT 2010


Hello Manuel,

As on 2010-11-02 11:15, Kudruss did write:
> Hey there,
> I try to use ADOLC for OED in robotics, but using code generated with
> adoubles cause an Arithmetic Exception. With normal doubles the program
> works fine. Problem occurs in using the implemented atan2 function. 
> Greetings,
> Manuel Kudruss
> 
> Here's a small example where the error appears.
> 

Your observation is correct. Unfortunately there is no good workaround
for this. If you don't enable the arithmetic exceptions via
feenableexcept() then you will get the correct answer (clRPY = -pi) and
the derivative later. ADOL-C needs to check all the branches of atan2
for given arguments and store the results on the tape, which is why in
one of the branches a divide by zero happens.

A correct solution of this problem is actually quite tricky and
involved. I shall try to commit the change to ADOL-C svn soon. In the
meantime please don't enable FE_DIVBYZERO. Inf and NaN are correct
answers according to IEEE standard arithmetic.

-- 
Kshitij Kulshreshtha

Institut für Mathematik,
Universität Paderborn,
Warburger Straße 100,
33098 Paderborn.

Büro: A3.235

Privatanschrift:
Arnikaweg 62
33100 Paderborn.



More information about the ADOL-C mailing list