public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* fmax/fmin sNaN compatibility question
@ 2019-12-09 17:12 Ulrich Weigand
  2019-12-09 17:23 ` Joseph Myers
  0 siblings, 1 reply; 7+ messages in thread
From: Ulrich Weigand @ 2019-12-09 17:12 UTC (permalink / raw)
  To: joseph; +Cc: libc-alpha

Hi Joseph,

I'm trying (once again) to understand how fmin/fmax are supposed to
work in the presence of signaling NaNs, and find the various standards
to be a bit confusing on this topic; I was wondering if you could help
me out here :-)

You've made the following statement in glibc bugzilla 20947:

    Under TS 18661-1 semantics, if either argument is an sNaN then the
    result should be a qNaN [...]

and changed the glibc fmax/fmin implementations accordingly.

Now I've been looking at TS 18661-1 (either n1809 or n2314) and I don't
see where it defines the semantics in this way.

In fact, the clearest statement seems to be the sample implementation
in F.10.9.2, paragraph 3, which according to TS 18661-1 now should be:

{
  double r;
  r = (isgreaterequal(x, y) || isnan(y)) ? x : y;
  (void) canonicalize(&r, &r);
  return r;
}

But if this sample implementation is called with a sNaN and a
regular number (and traps are off), it will return the regular
number, not any NaN ...

Am I missing something here?

Thanks,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU/Linux compilers and toolchain
  Ulrich.Weigand@de.ibm.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-12-10 18:39 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-09 17:12 fmax/fmin sNaN compatibility question Ulrich Weigand
2019-12-09 17:23 ` Joseph Myers
2019-12-09 17:39   ` Ulrich Weigand
2019-12-10  1:00     ` Joseph Myers
2019-12-10 10:44       ` Ulrich Weigand
2019-12-10 18:05         ` Joseph Myers
2019-12-10 18:39           ` Ulrich Weigand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).