I agree there are multiple application
domains for IA.
One I think is important is the replacement
of IEEE 754 FP with IEEE 1788 IA, to determine error bounds. For
example, if a progam was printing 10 significant digits but using IA showed
that the actual error bounds only justified 8, then it was misleading its
users. Some of the possible solutions would be to warn users that
only 8 digits are meaningful, to print just 8 digits, to print as many
digits as the lower and upper bounds agree on after rounding, to print
(inf,sup) interval values, to print mean +/- radius values, to increase
the precision, or to rethink the algorithms to improve accuracy.
With a slightly different meaning of
the word than we usually give it, for some users that would imply that
the values expessible in IA should contain those in FP, and that the library
functions available for IA should contain those available for FP, including
being able to represent infinity and NaN or NaI. The fact that some
application domains do not need those does not mean that none do.
Something useful in other domains but
perhaps particularly important in this one is software assistance in finding
where and why bounds were significantly widened, possibly but not necessarily
by automatically stopping as you suggested for the first domain. Perhaps
a compiler option to automatically insert range checking code would be
useful.
A slightly related technique of using
round down and round up to estimate FP error ranges is described in
http://www.cs.berkeley.edu/~wkahan/Stnfrd50.pdf
Being able to use IA instead would be
much better.
- Ian McIntosh
Toronto IBM Lab 8200 Warden D2-445
----- Forwarded by Ian
McIntosh/Toronto/IBM on 20/04/2009 11:30 AM -----
Michel Hack <hack@xxxxxxxxxxxxxx>
19/04/2009 11:51 AM
Please respond to
Michel Hack <hack@xxxxxxxxxxxxxx>
To
Ian McIntosh/Toronto/IBM@IBMCA
cc
Subject
Two kinds of interval arithmetic domains
Reading these last few discussions on whether an IA
standard should
address experts or naive users (presumably both, though perhaps in
different ways), it occurred to me that there are at least two rather
different ways that IA might be used, and that the intuitions in the
two cases may be very different.
The first domain is that of reliably-bounded computations with uncertain
numbers. In this domain all intervals are expected to be bounded
and
relatively narrow. If intermediate interval results become unbounded,
or perhaps even exceed a settable uncertainty threshold, it might be
useful to stop the computation and look out for a different approach:
use a different algorithm, retry with higher precision, or give up and
report an ill-conditioned problem. This is the domain where MidRad
representations may have many advantages, and where the precision of
the bounds loses its significance (pun intended) as intervals become
too wide to be useful.
The second domain is that of containing results that depend on parameters
within certain ranges. Any given parameter value may be highly precise,
but is picked from a bounded (or semi-bounded) range. This is the
domain
or forwards and backwards containment evaluations, and of the various
flavours of "non-standard" intervals. Here the precision
of the bounds
can be critical, e.g. in the vicinity of singularities -- sometimes it
even matters whether the bounds themselves (as FP numbers) are considered
to be included or excluded.
The two have much in common of course -- in particular, the techniques
of
the second domain can be used (by experts) to derive algorithms to help
users in the first domain (which ought to be accessible to beginners).