Date: Thu, 6 Dec 2007 16:07:55 -0500 From: David Schultz <das@FreeBSD.ORG> To: Bruce Evans <brde@optusnet.com.au> Cc: freebsd-standards@FreeBSD.ORG, Steve Kargl <sgk@troutmask.apl.washington.edu> Subject: Re: long double broken on i386? Message-ID: <20071206210755.GA98191@VARK.MIT.EDU> In-Reply-To: <20071206151017.U10456@delplex.bde.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>
next in thread | previous in thread | raw e-mail | index | archive | help
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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071206210755.GA98191>