On Apr 1 16:58, Marco Atzeri wrote: > --- Mer 1/4/09, Corinna Vinschen ha scritto: > > > I was trying to understand why this code > > > > > > #include <iostream> > > > #include <complex> > > > > > > int main() > > > { > > > double a = 0; > > > double b = 1. / a; > > > a += 1; > > > std::cout << std::abs > > (std::complex<double> (b, a)) << '\n'; > > > } > > > > > > produce Inf on most platform and NaN on cygwin. > > > > That's the result of the newlib function which is defined > > as > > > > double > > cabs(z) > > struct complex z; > > { > > return hypot(z.x, z.y); > > } > > > > Hi Corinna, > that is not correct as hypot( 0, Inf) > return Inf and not NaN. > > There is a cabs backup implementation in libgcc that is probably > the one used when system cabs is not available.
But cabs *is* exported by Cygwin and the function is the newlib function. I can't tell you why you see what you see. I'm not on good terms with this complex math thingy. That's why I think you should really discuss this on the newlib list :} Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/