From owner-freebsd-standards@FreeBSD.ORG Thu Dec 6 21:08:13 2007 Return-Path: Delivered-To: freebsd-standards@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0D15B16A417 for ; Thu, 6 Dec 2007 21:08:13 +0000 (UTC) (envelope-from das@FreeBSD.ORG) Received: from VARK.MIT.EDU (VARK.MIT.EDU [18.95.3.179]) by mx1.freebsd.org (Postfix) with ESMTP id AC7D913C455 for ; Thu, 6 Dec 2007 21:08:12 +0000 (UTC) (envelope-from das@FreeBSD.ORG) Received: from VARK.MIT.EDU (localhost [127.0.0.1]) by VARK.MIT.EDU (8.14.2/8.14.1) with ESMTP id lB6L7twF098239; Thu, 6 Dec 2007 16:07:55 -0500 (EST) (envelope-from das@FreeBSD.ORG) Received: (from das@localhost) by VARK.MIT.EDU (8.14.2/8.14.1/Submit) id lB6L7tZw098238; Thu, 6 Dec 2007 16:07:55 -0500 (EST) (envelope-from das@FreeBSD.ORG) Date: Thu, 6 Dec 2007 16:07:55 -0500 From: David Schultz To: Bruce Evans Message-ID: <20071206210755.GA98191@VARK.MIT.EDU> Mail-Followup-To: Bruce Evans , Steve Kargl , freebsd-standards@FreeBSD.ORG References: <20071002001154.GA3782@troutmask.apl.washington.edu> <20071002172317.GA95181@VARK.MIT.EDU> <20071002173237.GA12586@troutmask.apl.washington.edu> <20071003103519.X14175@delplex.bde.org> <20071010204249.GA7446@troutmask.apl.washington.edu> <20071203074407.GA10989@VARK.MIT.EDU> <20071203145105.GA16203@troutmask.apl.washington.edu> <20071205185132.GA91591@VARK.MIT.EDU> <20071205203235.GA40539@troutmask.apl.washington.edu> <20071206151017.U10456@delplex.bde.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20071206151017.U10456@delplex.bde.org> Cc: freebsd-standards@FreeBSD.ORG, Steve Kargl Subject: Re: long double broken on i386? X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2007 21:08:13 -0000 On Thu, Dec 06, 2007, Bruce Evans wrote: > On Wed, 5 Dec 2007, Steve Kargl wrote: > > >On Wed, Dec 05, 2007 at 01:51:32PM -0500, David Schultz wrote: > > >>Having a version that works for machines with the 128-bit floating > >>point format is pretty important. (These would probably be two > >>separate files; I've been thinking we should add a msun/ieee96 > >>directory and a msun/ieee128 directory or something.) > > > >This is probably a good idea if freebsd wants to maintain the > >same algorithm across, say, sinf, sin, and sinl. I can produce > >code for the ieee128 case, but I have no way to test it. > > I guarantee that it will have bugs if it is not tested :-). Panther is down, so neither do I unless there's another sparc64 machine in the cluster. I will ask about getting Steve access if that seems helpful. > >An alternative may be to use table-driven implementations where > >the intervals are defined by exactly representable values in ieee96 > >(i.e., 64-bit significand), which are then also exactly representable > >in ieee128. I haven't investigated how many intervals one would > >need nor the best interpolation scheme. > > My best implementation of logl does this to a large extent (see your > mailbox). It uses an variable interval length of ~1/128 and rounds the > endpoints to float precision (endpoints are round(1 + i/128)). Full > precision is still needed for the values at the endpoints, but the > full-precision values are represented as sums of lower-precision > values to optimize for amd64 and i386. Yeah, I need to page all of that material back into my brain at some point. The trouble is I have a gazillion emails, but I don't have a gazillion minutes of time with which to think about them and do something about all of them right now.