[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: IEEE754R11



David Hough wrote on July 6, 2007:

Concerning my simplest possible example of irreproducible results,

      z = a + b + c

Prof. Kulisch wrote a few days ago:

 

I think that two diffenrent things are conflated in the discussion
of this simple example:
a) errors in the data that occur during a computation and
b) errors in the arithmetic.
a) is an unavoidable source of errors. Of course, the data are
frequently contaminated by
roundoff. But an error in the data does not justify error in the
arithmetic. The vendor is
responsible for the quality of the arithmetic. To be as accurate as
possible is essential.
Sloppy arithmetic prevents users from solving problems correctly
when the data are exact.
   


In scientific computation the data are seldom exact, so the problem is
to get the final uncertainty due to roundoff to be much less than
the final uncertainty due to the input data and due to the
algorithm.      So getting exact or correctly-rounded results for
large sums or dot products is usually not economic.
Realistic computations usually involve many such operations whose
rounded results are combined.     The economic case for even 128-bit
floating-point hardware is arguable.

Variable precision is indeed an answer for a certain small class of
users operating on data they consider exact or very precise, but
754R has repeatedly considered
and rejected standardizing variable precision in this revision.

The goal of a typical roundoff error analysis of an approximate
process on inexact inputs is not to prove that the result
is correct, but that roundoff has not made the result worse than it would
have been in exact arithmetic.     Those analyses are difficult enough
that one would prefer not to repeat them for every optimization level of
every release of every compiler for every platform.

So the goal of the reproducibility proposals is to make it possible to
do one analysis that could be applied to each platform the program is run upon.
"Possible" does not mean "always desirable" because there are very real
performance costs associated with constraining results to be reproducible.



 

I regret the need to write again, but I disagree with nearly
everything that is said above. A new standard
will again reign for 20 years or so and we will all be bound by it. So
I am deeply concerned that it should
be based on a thorough understanding of the issues.

In scientific computation the data are seldom exact.

I give only two counterexamples for this assertion. I could easily
give more.

1. For a system of linear equations A x = b, many solvers repeatedly
compute the defect d = b â?? A x' ,
where x' is an approximation of the solution. In the expression for d
all data, and x' in particular,
are exact. With an exact scalar product d can be computed exactly.
(Exactly is more than just double precision).

2. Any algorithm designed to find a root of an equation f(x) = 0 must
necessarily compute f for
arguments x' which cause cancellation of leading digits. If f is a
polynomial, all the data and
x' in particular, are exact. With double precision interval arithmetic
and an exact scalar product
f can be computed to guaranteed full accuracy. This is essential for
Newton's method to succeed.

So getting exact or correctly-rounded results for large sums or dot 
products is usually not economic.

Implementing an exact scalar product (for double precision) in silicon
is much cheaper than
conventionally implementing a full 128-bit floating-point arithmetic
as defined in IEEE754R.
Yet implementing a 128-bit arithmetic is very simple on the basis of
the exact scalar product and
achieving higher precision is not much more difficult for real and for
interval data. Once the exact
scalar product is included in the hardware, this kind of high
precision arithmetic will be fully supported
by fast hardware.

The economic case for even 128-bit floating-point hardware is arguable.

I agree with this. It is only really needed for problems which require
an extremely large exponent range.


CONCLUSION:

In simplicity lies truth. So my suggestion for a new arithmetic
standard is this:

1. A well defined double precision floating-point arithmetic.
2. Fast and direct hardware support for double precision interval
arithmetic.
3. An exact scalar product for the double precision format.

With best regards
Ulrich Kulisch July 16, 2007


-- 
***************************************************************************
Ulrich Kulisch
Institut für Angewandte Mathematik
Universität Karlsruhe
D-76128 Karlsruhe, Germany
Tel.: (+49) 721 608 2680 oder (+49) 721 608 4202
***************************************************************************

754 | revision | FAQ | references | list archive