Date: Thu, 6 Mar 2008 22:42:39 -0500 From: David Schultz <das@FreeBSD.ORG> To: Colin Percival <cperciva@FreeBSD.ORG> Cc: cvs-src@FreeBSD.ORG, src-committers@FreeBSD.ORG, Bruce Evans <bde@FreeBSD.ORG>, cvs-all@FreeBSD.ORG Subject: Re: cvs commit: src/sys/i386/include _types.h Message-ID: <20080307034239.GA54694@zim.MIT.EDU> In-Reply-To: <47D0ADCE.2070405@freebsd.org> References: <20080306021222.GA46783@zim.MIT.EDU> <47CF5D19.3090100@freebsd.org> <20080306033246.GA47280@zim.MIT.EDU> <47CF7EBF.6000009@freebsd.org> <20080306063452.GB48339@zim.MIT.EDU> <47CF9586.70707@freebsd.org> <20080307085031.P10724@delplex.bde.org> <47D089A4.4060208@freebsd.org> <20080307022416.GA53988@zim.MIT.EDU> <47D0ADCE.2070405@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Mar 06, 2008, Colin Percival wrote: > David Schultz wrote: > > On Thu, Mar 06, 2008, Colin Percival wrote: > >> explicit or implicit final destination. When a variable with a declared format > >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > >> is a final destination, as in format conversion to a variable, that declared > >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > >> format of that variable governs its rounding. The format of an implicit > >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > >> destination, or of an explicit destination without a declared format, is > >> defined by language standard expression evaluation rules. > > > > I think you missed the point about implicit destinations. > > No. Another quote: > 2.2.14 destination: The location for the result of an operation upon one or > more operands. A destination might be either explicitly designated by the user > or implicitly supplied by the system (for example, intermediate results in > subexpressions or arguments for procedures). [...] > > Implicit destinations are things like the (x * y) in "x * y - 1.0" or in > "sqrt(x * y)". > > > The register is an implicit destination. IEEE 754R explains this > > in more detail. > > Really? I can't find any such statements... quite the contrary. When reading the above quotation, you need to keep in mind that in their terminology, 'z = x + y' is an expression and 'x + y' is a subexpression. What you're claiming doesn't even make sense. With your rules, the 'x * y' in 'k = x * y - 1.0' could be evaluated with extra precision, the '- 1.0' would be forced to machine precision, and you'd still have double rounding on the multiply. This really *isn't* what they meant. Look, please have a careful look at section 10.2. This is a really busy week for me, and I don't have the inclination to continue this discussion if you keep sniping.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080307034239.GA54694>