From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 11224 invoked from network); 15 Aug 2021 16:09:16 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 15 Aug 2021 16:09:16 -0000 Received: (qmail 3314 invoked by uid 550); 15 Aug 2021 16:09:14 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 3289 invoked from network); 15 Aug 2021 16:09:12 -0000 Date: Sun, 15 Aug 2021 12:09:00 -0400 From: Rich Felker To: Ariadne Conill Cc: musl@lists.openwall.com, Szabolcs Nagy Message-ID: <20210815160859.GI13220@brightrain.aerifal.cx> References: <0C6AAAD55DA44C6189B2FF4F5FB2C3E7@H270> <20210810213455.GB37904@port70.net> <20210814234612.GH37904@port70.net> <367A4018B58A4E308E2A95404362CBFB@H270> <20210815145614.GI37904@port70.net> <1F3569BD7D6E45889B7518DC9BE5004B@H270> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Subject: Re: [musl] [PATCH #2] Properly simplified nextafter() On Sun, Aug 15, 2021 at 10:52:13AM -0500, Ariadne Conill wrote: > Hi, > > On Sun, 15 Aug 2021, Stefan Kanthak wrote: > > >Szabolcs Nagy wrote: > > > >>* Stefan Kanthak [2021-08-15 09:04:55 +0200]: > >>>Szabolcs Nagy wrote: > >>>>you should benchmark, but the second best is to look > >>>>at the longest dependency chain in the hot path and > >>>>add up the instruction latencies. > >>> > >>>1 billion calls to nextafter(), with random from, and to either 0 or +INF: > >>>run 1 against glibc, 8.58 ns/call > >>>run 2 against musl original, 3.59 > >>>run 3 against musl patched, 0.52 > >>>run 4 the pure floating-point variant from 0.72 > >>> my initial post in this thread, > >>>run 5 the assembly variant I posted. 0.28 ns/call > >> > >>thanks for the numbers. it's not the best measurment > > > >IF YOU DON'T LIKE IT, PERFORM YOUR OWN MEASUREMENT! > > > >>but shows some interesting effects. > > > >It clearly shows that musl's current implementation SUCKS, at least > >on AMD64. > > I would rather have an implementation that is 3.59 ns/call and is > maintained by somebody who is actually pleasant to talk to. In the > grand scheme of things 3.59 ns/call, and even 8.58 ns/call are not a > big deal for a function like nextafter(). > > If musl does wind up merging this, I intend to revert that merge in > Alpine because I cannot trust the correctness of any code written by > somebody with this attitude. Don't worry, we will evaluate the correctness of anything we do merge and stand by it. I'm open to well-reasoned changes, especially if they improve things more broadly like the isnan comparisons, and have already noted that there's some inconsistency in the existing nextafter/nexttoward functions. But I'm not going to accept any patch that's not making a well-reasoned, isolated, evaluatable, and testable change. And I would very much appreciate dropping exaggerated and hostile claims that something "sucks" or is "brain damaged" in further discussion of the topic. Rich