From owner-freebsd-i386@FreeBSD.ORG Sun Feb 13 18:08:49 2005 Return-Path: Delivered-To: freebsd-i386@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E5F5716A4F1; Sun, 13 Feb 2005 18:08:49 +0000 (GMT) Received: from VARK.MIT.EDU (VARK.MIT.EDU [18.95.3.179]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8493F43D1F; Sun, 13 Feb 2005 18:08:49 +0000 (GMT) (envelope-from das@FreeBSD.ORG) Received: from VARK.MIT.EDU (localhost [127.0.0.1]) by VARK.MIT.EDU (8.13.1/8.13.1) with ESMTP id j1DI8hHo070624; Sun, 13 Feb 2005 13:08:43 -0500 (EST) (envelope-from das@FreeBSD.ORG) Received: (from das@localhost) by VARK.MIT.EDU (8.13.1/8.13.1/Submit) id j1DI8bZm070623; Sun, 13 Feb 2005 13:08:37 -0500 (EST) (envelope-from das@FreeBSD.ORG) Date: Sun, 13 Feb 2005 13:08:37 -0500 From: David Schultz To: Bruce Evans Message-ID: <20050213180837.GA70513@VARK.MIT.EDU> References: <200406012251.i51MpkkU024224@VARK.homeunix.com> <20040602172105.T23521@gamplex.bde.org> <20050204215913.GA44598@VARK.MIT.EDU> <20050205181808.J10966@delplex.bde.org> <20050209051401.GA18775@VARK.MIT.EDU> <20050209232758.F3249@epsplex.bde.org> <20050210072314.GA26713@VARK.MIT.EDU> <20050214000320.U1866@epsplex.bde.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20050214000320.U1866@epsplex.bde.org> cc: FreeBSD-gnats-submit@FreeBSD.ORG cc: freebsd-i386@FreeBSD.ORG cc: bde@FreeBSD.ORG Subject: Re: i386/67469: src/lib/msun/i387/s_tan.S gives incorrect results for large inputs X-BeenThere: freebsd-i386@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: I386-specific issues for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Feb 2005 18:08:50 -0000 On Mon, Feb 14, 2005, Bruce Evans wrote: > It seems that the hardware trig functions aren't worth using. I want > to test them on a 486 and consider the ranges more before discarding > them. This may take a while. Fair enough. I would be happy to have a hybrid implementation that uses the hardware only when appropriate. However, your 486 benchmarks notwithstanding, I would just as soon rely on fdlibm entirely for the trig functions. It just doesn't seem worthwhile to me, given that the only parts of the domain where the hardware is faster *and* correct are, roughly speaking, [0,2^-28) and [pi/4,pi/2-eps]. > I did a quick test of some other functions: > - hardware sqrt is much faster > - hardware exp is slightly faster on the range [1,100] > - hardware atan is slower on the range [0,1.5] > - hardware acos is much slower (139 nsec vs 57 nsec!) on the range [0,1.0]. sqrt isn't transcendental, so it should be faster and correctly rounded on every hardware platform. I found similar results to yours for atan() and acos() when writing amd64 math routines, but of course amd64 has the overhead of switching between the SSE and i387 units. Maybe they should go away, too...