Skip site navigation (1)Skip section navigation (2)
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>