http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59714

--- Comment #3 from joseph at codesourcery dot com <joseph at codesourcery dot 
com> ---
You'll find other cases where fused operations make complex multiplication 
and division *more* accurate.

There is, I suppose, a case for having a version of complex multiplication 
and division that follow the same accuracy goals as glibc libm (i.e. real 
and imaginary parts within a few ulp of the mathematically exact values, 
with corresponding exceptions, avoiding spurious overflow / underflow) - 
or even correctly rounding versions.  But (a) people wouldn't want them as 
default, on grounds of speed, and (b) they would be tricky to implement in 
libgcc because of needing to change the rounding mode temporarily (libgcc 
can't depend on libm) and because of depending on details of the 
floating-point formats that libgcc otherwise doesn't need to depend on.  
Maybe people interested in complex arithmetic should propose new 
facilities for accurate multiplication / division when the C standard is 
next being revised (there's some interest in other new functions, see 
N1704, but no current project in which they could be added to the 
standard).

Reply via email to