cvs commit: src/sys/i386/include _types.h
David Schultz
das at FreeBSD.ORG
Fri Mar 7 03:41:16 UTC 2008
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.
More information about the cvs-src
mailing list