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 11806 invoked from network); 5 Feb 2021 16:44:18 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 5 Feb 2021 16:44:18 -0000 Received: (qmail 1500 invoked by uid 550); 5 Feb 2021 16:44:15 -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 1482 invoked from network); 5 Feb 2021 16:44:15 -0000 Date: Fri, 5 Feb 2021 11:44:02 -0500 From: Rich Felker To: Paul Zimmermann Cc: musl@lists.openwall.com Message-ID: <20210205164402.GB23432@brightrain.aerifal.cx> References: 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] issue with acoshf On Fri, Feb 05, 2021 at 08:18:02AM +0100, Paul Zimmermann wrote: > Hi, > > while updating to my comparison of the accuracy of mathematical functions [1], > I have noticed an issue with acoshf in musl-1.2.2: > > $ cat test_acosh_musl.c > #include > #include > #include > > int > main (int argc, char *argv[]) > { > float x = -0x1.1e6ae8p+5; > float y; > y = acoshf (x); > printf ("x=%a y=%a\n", x, y); > } > > With gcc I get NaN as expected: > > $ gcc -fno-builtin test_acosh_musl.c -lm > $ ./a.out > x=-0x1.1e6ae8p+5 y=-nan > > With musl-1.2.2 I get -0x1.2f63acp+3: > > $ gcc -fno-builtin test_acosh_musl.c $FILES > $ ./a.out > x=-0x1.1e6ae8p+5 y=-0x1.2f63acp+3 > > Please can someone confirm? I can't reproduce it on i386 but can on sh w/softfloat. I'm guessing you're using an arch without its own special definition of sqrtf or logf, so it looks like it would have to be a bug in the non-arch-specific version of one of those, but I haven't been able to reproduce it in isolation just passing the values passed to them (-0x1.c9b6fcp-7 to logf or 0x1.40330cp+10 to sqrtf) manually building the generic C versions. Thanks for the report. I'll keep looking. Rich