From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id A3D113857004 for ; Tue, 8 Dec 2020 15:39:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org A3D113857004 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=joseph_myers@mentor.com IronPort-SDR: eSthpKG2LQSMLYbOnzvF+waCNLrkfS/kc+al8x/PKOd9ynj6WhErJc/7QzRKCVz1/I0TB0OP40 2Fcbn0j54cw10J34L3Opib9mih0GlYH4wZfm1U9w0axnYd18KXBjounn/ofa7mRBU9vAcyWvvZ V9b4w0DJl0FsYySJB5Mov86+lfbC0SoNW0XtDMoexQsWgGQKUeqHdYNGq8mnXPyqqV++Tv8hUK DS6Bsyky1wa0TdSJhHhQOoS2P1M8tEb7pGwx9sxJnaqd2l8PoMAUPDTOqlN58YLaAYaJKRqoDT NPQ= X-IronPort-AV: E=Sophos;i="5.78,402,1599552000"; d="scan'208";a="55933682" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa3.mentor.iphmx.com with ESMTP; 08 Dec 2020 07:39:49 -0800 IronPort-SDR: UoTL1+0BSoDWP234WxJZa8e7LdgUmZwiOFMAMmzrWxH1n8ChEGH+tkeyHbVx/Fm4DYWopbgAEO 4Ik7UykwfKzpV1O/Rilx8vfugIhBqE7FLENPvD3yzW5Vo4ppcTxogmHcBeoHddYGGpzvkon4lA Jiz9KrJbTGDVHpIbVNe1Vk1Q/isHNrqMToqUPkP0wroW3jPtcDbdBNm7va24+CqkJfdxLFjpkd fLaB7FgUYfIye5KG5YC1dLpr4aBXdXFgAwG8bdr7BmsXuE3eIBDop2eZ/G3a9vtBJmy343OYHz fPs= Date: Tue, 8 Dec 2020 15:39:44 +0000 From: Joseph Myers X-X-Sender: jsm28@digraph.polyomino.org.uk To: "N.G. Timmons" CC: Subject: Re: Elementary Function Work In-Reply-To: Message-ID: References: <7a3ff526dece6f3fb0e2b6c64c702714@cam.ac.uk> User-Agent: Alpine 2.22 (DEB 394 2020-01-19) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: SVR-IES-MBX-04.mgc.mentorg.com (139.181.222.4) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-Spam-Status: No, score=-3124.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Dec 2020 15:39:52 -0000 On Tue, 8 Dec 2020, N.G. Timmons wrote: > I would be interested in setting up a test suite to provide ULP error > information, error distribution information and number of known incorrectly > rounded results that could be run to generate a documentation page or > automatically update the function comment with the information for easy > accessibility. I suggest working with Paul Zimmermann since he's been working in that area, and it's naturally something separate from any particular libm implementation. (Though different libm implementations may make different choices regarding the bounds on acceptable errors, requirements for correctness of floating-point exceptions raised, etc.) https://homepages.loria.fr/PZimmermann/papers/#accuracy There are obvious areas for extending his work, such as covering the ldbl-96 and ldbl-128ibm formats and functions and different rounding modes. When function errors are found that are beyond the limits of those accepted for glibc, it's appropriate to file bug reports when such bug reports aren't already open for the functions in question (see his recent bug reports for lgamma and tgamma). When function errors are found that are within the bounds of those accepted for glibc, but larger than those appearing in libm-test-ulps, it's appropriate to add the test inputs in question to auto-libm-test-in and regenerate the corresponding auto-libm-test-out-* file, so that the libm-test-ulps files (and thus the tables in the glibc manual generated from those files) more accurately reflect the largest known errors. If a function gets reimplemented so as to reduce the largest errors (for most functions with errors larger than 1 or 2 ulps, I expect that could be done without making performance any worse), it then makes sense to remove entries for that function in libm-test-ulps files so they can be regenerated from scratch. When large errors are found in other libm implementations, reporting bugs against those implementations is a good idea as well (depending on each implementation's policy on what errors count as bugs). -- Joseph S. Myers joseph@codesourcery.com