labelled empty sets and NaI
John Pryce wrote
[in ''Alternate floating-point results under directed rounding'']:
On 7 Nov 2008, at 16:50, Arnold Neumaier wrote:
Then mixed arithmetic operations with floats and intervals will
never result in the empty set.
This is now no longer relevant, since I don't support anymore the
underlying assumptions.
This seems to me like saying "Always take a dose of painkillers before you start to cook. Then if you cut your hand while slicing an onion, or
burn it on the hob, you won't notice the pain."
Hey, you're supposed to notice. It's nature's way of telling you (without actually killing you) not to do dumb things.
Similarly if a mixed point & interval computation goes close to overflow then - in genuine application code - that's dumb, and you should be
_grateful_ for a mechanism, like returning Empty, that tells you so.
Actually I say it should return NaI. Empty can be a genuine, correct result, whereas NaI is _always_ an indicator that something went wrong.
My performance tests with Profil/BIAS (more detail shortly) show the time-overhead of implementing NaI and Empty, compared with just
Empty, is at most five percent. For that negligible price, which will go down to zero in a hardware implementation, you get certainty of
diagnosis. This is especially useful for vector computations. In Arnold's present proposal, the only way you recognise that some Empty
component of an interval vector is not "genuine" but indicates an error, is via the "nonstandardNumber" flag. This doesn't diagnose _which_
components are in error, whereas NaI does.
After talking with Hermann Schichl about this issue, we propose
the following:
In IEEE 754-2008, there are multiple NaNs having a payload that
propagates. This may be used to implement labelled empty sets
which carry debugging information about the operation which created
the empty set in the first place. The standard may or may not describe
how this feature should be used, and if so, how the labels should
propagate in operations.
This takes care of all situations where NaI would be useful,
without having to give up the set interpretation of all intervals.
This suggestion will be incorporated into the next version
of my proposal as a remark to Section 1.3.
Arnold Neumaier