Comment 7 for bug 1266571

Revision history for this message
In , Joseph-codesourcery (joseph-codesourcery) wrote :

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).