On Apr 1 14:48, Marco Atzeri wrote: > > Dear All, > 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); } > I found that newlib have the function cabs (complex absolute) > but in cygwin the prototypes is > > extern double cabs(); The math.h header is from newlib as well. I don't know why the math.h header is missing a normal prototype. I *assume* that nobody ever made the effort to convert these old functions (cabs is from 1994) to the ANSI C style. You should ask this question on the newlib list. > so just a placeholder but not a useful function. > There is any reason why cygwin is missing functional > C99 complex functions ? Sorry, it's all about newlib. 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/