powerpc libm ULPs updated
Joseph S. Myers
joseph@codesourcery.com
Thu Mar 15 13:16:00 GMT 2012
On Thu, 15 Mar 2012, Andreas Schwab wrote:
> +Test "hypot (0x1.234566p-126, 0x1.234566p-126) == 1.891441686191081936598531534017449451173e-38":
> +double: 1
> +float: 6
The float case shouldn't have that many ulps. It looks like the PowerPC
code has the same problem the generic code did, multiplying by 0x1p60
which isn't big enough for nearly-subnormal values.
> +Test "hypot (0x3p125, 0x4p125) == 0x5p125":
> +float: 1
This should be exact. It looks like the PowerPC code is using a value
static const float twoM60 = 6.7762644e-21, which is 1ulp off 0x1p-67f (an
*exact* 0x1p-67f would be OK).
> @@ -2205,7 +2247,7 @@ ldouble: 1
>
> Function: "hypot":
> double: 1
> -float: 1
> +float: 6
> idouble: 1
> ifloat: 1
> ildouble: 1
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list