mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Szabolcs Nagy <nsz@port70.net>
To: Stefan Kanthak <stefan.kanthak@nexgo.de>
Cc: musl@lists.openwall.com
Subject: Re: [PATCH] fmax(), fmaxf(), fmaxl(), fmin(), fminf(), fminl() simplified
Date: Wed, 11 Dec 2019 11:49:55 +0100	[thread overview]
Message-ID: <20191211104955.GN23985@port70.net> (raw)
In-Reply-To: <557979287957451E9255CCBC4CD7CBE5@H270>

* Stefan Kanthak <stefan.kanthak@nexgo.de> [2019-12-11 10:55:29 +0100]:
> Still more optimisations/simplifications in the math subtree.
> 
> JFTR: I'm NOT subscribed to your mailing list, so CC: me in replies!
> 
> --- -/src/math/fmax.c
> +++ +/src/math/fmax.c
> @@ -3,11 +3,9 @@
>  double fmax(double x, double y)
>  {
> -        if (isnan(x))
> +        if (x != x)

these two are not equivalent for snan input, but we dont care
about snan, nor the compiler by default, so the compiler can
optimize one to the other (although musl uses explicit int
arithmetics instead of __builtin_isnan so it's a bit harder).

in any case the two are equivalent for practical purposes and
using isnan better documents the intention, you should change
the isnan definition if you think it's not efficient.

>                  return y;
> -        if (isnan(y))
> -                return x;
>          /* handle signed zeros, see C99 Annex F.9.9.2 */
> -        if (signbit(x) != signbit(y))
> +        if (x == y)
>                  return signbit(x) ? y : x;
>          return x < y ? y : x;

nice trick, but the fenv behaviour is not right.

you should run any such change through libc-test
git://repo.or.cz/libc-test and look for regressions.



  reply	other threads:[~2019-12-11 10:49 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-11  9:55 Stefan Kanthak
2019-12-11 10:49 ` Szabolcs Nagy [this message]
2019-12-11 12:33   ` Stefan Kanthak
2019-12-11 13:16     ` Szabolcs Nagy
2019-12-11 13:25       ` Rich Felker
2019-12-11 21:17       ` Stefan Kanthak
2019-12-11 21:30         ` Rich Felker
2019-12-11 22:25           ` Stefan Kanthak
2019-12-11 22:14         ` Damian McGuckin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191211104955.GN23985@port70.net \
    --to=nsz@port70.net \
    --cc=musl@lists.openwall.com \
    --cc=stefan.kanthak@nexgo.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

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 NNTP newsgroup(s).