This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Thursday, April 04, 2013 16:17:45 Thomas Schwinge wrote: > Hi! > > On Thu, 04 Apr 2013 09:38:58 +0200, Andreas Jaeger <aj@suse.com> wrote: > > On Wednesday, April 03, 2013 22:03:31 Thomas Schwinge wrote: > > > @@ -139,7 +141,7 @@ __ieee754_pow(double x, double y) { > > > > > > } > > > else if (qx == 0x7ff00000) > > > > > > return y < 0 ? 0.0 : INF.x; > > > > > > - return NaNQ.x; /* y not > > > integer and x<0 */ + return (x - x) / (x - x); > > > /* y not integer and x<0 */> > > I'm not convinced of this change, the rest is fine. > > > > The above raises an invalid exception - but the previous code did > > not. Why is this change still fine? > > If my code and specification reading is correct, then this is a bug in > the original code, for IEEE 754-2008 says: »pow (x, y) signals the > invalid operation exception for finite x < 0 and finite non-integer > y«, and/but this didn't matter in practice, as the wrapper code in > math/w_pow.c:__pow would catch this case and handle it separately via > sysdeps/ieee754/k_standard.c:__kernel_standard, case 24, raising an > INVALID exception on its own. Can you confirm my reasoning? I wonder whether your change really does, what it should. You want to pass the same NAN back that was passed in - but kernel_standard always passes a new NAN out. So, shouldn't you change k_standard.c accordingly as well? > We could be adding the respective tests to libm-tests with > <http://news.gmane.org/find-root.php?message_id=%3C871uaqzheb.fsf%40sc > hwinge.name%3E> (or something similar) in place. libm-tests already checks for the invalid exception, Andreas -- Andreas Jaeger aj@{suse.com,opensuse.org} Twitter/Identica: jaegerandi SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn,Jennifer Guild,Felix Imendörffer,HRB16746 (AG Nürnberg) GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126
Attachment:
signature.asc
Description: This is a digitally signed message part.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |