[PATCH] hypotl, cabsl, and code removal in cabs

David Schultz das at FreeBSD.ORG
Thu Dec 6 01:08:49 PST 2007


I like the approach. One concern, though, is that IEEE 754
requires sqrt to always be correctly rounded, and one might
reasonably expect the same from hypot. If we believe that, then
the intermediate quantity a*a + b*b needs to be computed exactly;
if it is rounded before we take the square root, the double
rounding may cause us to round the wrong way. This basically
requires computing things with twice as many bits of precision.
Arguably, though, your code is correct in the most important
ways (avoiding underflow/overflow).

Also, umm, I've been busy and unable to pay attention for a while,
so forgive me if I'm missing something, but isn't it the case that
we don't have a sqrtl(), except for the gcc builtin on some
architectures?


More information about the freebsd-standards mailing list