From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 82465 invoked by alias); 14 Feb 2020 08:11:29 -0000 Mailing-List: contact newlib-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: newlib-owner@sourceware.org Received: (qmail 82457 invoked by uid 89); 14 Feb 2020 08:11:29 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=H*c:PHrt X-HELO: zimbra2.kalray.eu Received: from zimbra2.kalray.eu (HELO zimbra2.kalray.eu) (92.103.151.219) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 14 Feb 2020 08:11:28 +0000 Received: from localhost (localhost [127.0.0.1]) by zimbra2.kalray.eu (Postfix) with ESMTP id F123627E02D4 for ; Fri, 14 Feb 2020 09:11:25 +0100 (CET) Received: from zimbra2.kalray.eu ([127.0.0.1]) by localhost (zimbra2.kalray.eu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id kpu4thi4YJ5s for ; Fri, 14 Feb 2020 09:11:25 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by zimbra2.kalray.eu (Postfix) with ESMTP id A8EFB27E06F0 for ; Fri, 14 Feb 2020 09:11:25 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.10.3 zimbra2.kalray.eu A8EFB27E06F0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kalray.eu; s=32AE1B44-9502-11E5-BA35-3734643DEF29; t=1581667885; bh=XHa7V0xJewRLK6h0raCfOew78d+j7Bv8ymp8TQaGGDQ=; h=Date:From:To:Message-ID:MIME-Version; b=CW2m3VaS+Kaot4tRNgRVaKnTPL+nV8v2MozWn17Vzp9vxldxV5Ultg0UBIzyJ2N5X f3mGLdCkZd2pWoFG4tafwOWqTHzo3EqQYuBp5VijSYhfQxueUJPfCYUygrA5gA7ntx PJk5XcW3fHCAD2cB3Ha6S402vnSIwpCAnq0oO17s= Received: from zimbra2.kalray.eu ([127.0.0.1]) by localhost (zimbra2.kalray.eu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 68jhZvqsJAoB for ; Fri, 14 Feb 2020 09:11:25 +0100 (CET) Received: from zimbra2.kalray.eu (localhost [127.0.0.1]) by zimbra2.kalray.eu (Postfix) with ESMTP id 938EA27E02D4 for ; Fri, 14 Feb 2020 09:11:25 +0100 (CET) Date: Fri, 14 Feb 2020 08:11:00 -0000 From: Nicolas Brunie To: newlib Message-ID: <1912584276.4308250.1581667885581.JavaMail.zimbra@kalray.eu> Subject: Possible issue with pow(-1, NaN) in newlib's libm MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_4308245_1520432775.1581667885580" X-IsSubscribed: yes X-SW-Source: 2020/txt/msg00090.txt ------=_Part_4308245_1520432775.1581667885580 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-length: 883 Hello all, First time sender, excuse me if I misspoke. I think I may have encountered a bug in the implementation of pow: pow(-1.0, NaN) returns 1.0 when it should return NaN. Because ix is used to check input vs 1.0 rather than hx, -1.0 is mistaken for 1.0 Test in attachment: Patch suggestion in attachement and below: Regards, N. Brunie diff --git a/newlib/libm/math/e_pow.c b/newlib/libm/math/e_pow.c index 6d2a501..5fd28e6 100644 --- a/newlib/libm/math/e_pow.c +++ b/newlib/libm/math/e_pow.c @@ -122,7 +122,7 @@ ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/ /* x|y==NaN return NaN unless x==1 then return 1 */ if(ix > 0x7ff00000 || ((ix==0x7ff00000)&&(lx!=0)) || iy > 0x7ff00000 || ((iy==0x7ff00000)&&(ly!=0))) { - if(((ix-0x3ff00000)|lx)==0) return one; + if(((hx-0x3ff00000)|lx)==0) return one; else return nan(""); } ------=_Part_4308245_1520432775.1581667885580 Content-Type: text/x-c++src; name=test_pow_m1_nan.c Content-Disposition: attachment; filename=test_pow_m1_nan.c Content-Transfer-Encoding: base64 Content-length: 330 I2luY2x1ZGUgPG1hdGguaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBsb2Nh bCBkZWZpbml0aW9uIHRvIGFsbG93IGxpbmsgd2l0aCBuZXdsaWIncyBsaWJt IGFuZCBzeXN0ZW0gbGliYwppbnQgX19lcnJubzsKCmludCBtYWluKHZvaWQp CnsKICAgIGRvdWJsZSBwb3dfbTFfbmFuID0gcG93KC0xLjAsIE5BTik7CiAg ICBwcmludGYoInBvdygtMS4wLCBuYW4pPSVmXG4iLCBwb3dfbTFfbmFuKTsK CiAgICByZXR1cm4gMDsKfQo= ------=_Part_4308245_1520432775.1581667885580 Content-Type: text/x-patch; name=newlib_pow_m1.patch Content-Disposition: attachment; filename=newlib_pow_m1.patch Content-Transfer-Encoding: base64 Content-length: 749 ZGlmZiAtLWdpdCBhL25ld2xpYi9saWJtL21hdGgvZV9wb3cuYyBiL25ld2xp Yi9saWJtL21hdGgvZV9wb3cuYwppbmRleCA2ZDJhNTAxLi41ZmQyOGU2IDEw MDY0NAotLS0gYS9uZXdsaWIvbGlibS9tYXRoL2VfcG93LmMKKysrIGIvbmV3 bGliL2xpYm0vbWF0aC9lX3Bvdy5jCkBAIC0xMjIsNyArMTIyLDcgQEAgaXZs bjJfbCAgPSAgMS45MjU5NjI5OTExMjY2MTc0Njg4N2UtMDg7IC8qIDB4M0U1 NEFFMEIsIDB4Rjg1RERGNDQgPTEvbG4yIHRhaWwqLwogICAgIC8qIHh8eT09 TmFOIHJldHVybiBOYU4gdW5sZXNzIHg9PTEgdGhlbiByZXR1cm4gMSAqLwog CWlmKGl4ID4gMHg3ZmYwMDAwMCB8fCAoKGl4PT0weDdmZjAwMDAwKSYmKGx4 IT0wKSkgfHwKIAkgICBpeSA+IDB4N2ZmMDAwMDAgfHwgKChpeT09MHg3ZmYw MDAwMCkmJihseSE9MCkpKSB7Ci0JICAgIGlmKCgoaXgtMHgzZmYwMDAwMCl8 bHgpPT0wKSByZXR1cm4gb25lOworCSAgICBpZigoKGh4LTB4M2ZmMDAwMDAp fGx4KT09MCkgcmV0dXJuIG9uZTsKIAkgICAgZWxzZSByZXR1cm4gbmFuKCIi KTsJCiAJfQogCg== ------=_Part_4308245_1520432775.1581667885580--