------- Additional Comments From pcarlini at suse dot de 2005-03-07 01:32 ------- > We have log(x) == -inf for x == 0+. The exp call is returning 0+ > but the argument isn't -inf. It's -5.9923104495410517e+307. -inf > is -1.7976931348623157e+308.
Interesting. Therefore, 1/3*(-inf) instead of giving the very same -inf, as should happen in IEEE, gives 1/3*(-1.79769..e+308)! Still, this cannot explain the NaN, because, then, the involved exp can only be slighlty bigger than zero... The only other tricky bit of the computation seems atan2(0.0, 0.0) which should be also zero, of course. Then those two zeros (the latter mult be 1/3) are passed to complex::polar which only computes sin and cos, always defined. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20352