This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: powerpc libm ULPs updated
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: Andreas Schwab <schwab at linux-m68k dot org>
- Cc: libc-alpha at sourceware dot org
- Date: Thu, 15 Mar 2012 13:16:04 +0000 (UTC)
- Subject: Re: powerpc libm ULPs updated
- References: <m2d38ej9zg.fsf@igel.home>
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