interval X**Y and exceptions generally

David G Hough at validgh validgh
Wed Apr 1 08:22:35 PST 1998


I have been asked to cease and desist from discussing interval X**Y on 
reliable_computing, but there probably won't be an efficient and reliable 
commercial implementation of
interval methods, and certainly there won't be two interoperable ones, unless
the issues of interval exceptions are worked out correctly, if that's
possible.   The X**Y discussion raises the issues most acutely.    Exceptions 
are certainly a central issue for the numeric-interest mailing list, and so I'll
continue to discuss them here, although from the discussion so far,
one might suppose that there aren't more than half a dozen people in the 
world who care much.  But I think Polya said something to the effect
that the interesting stuff in mathematics generally 
is what happens on the boundaries rather than what happens in the middle.

Back to the subject, it seems very odd to me that a source code segment
in intervals such as

	X=-1.5
	Y=0.62
	Z=X**Y

should yield a result Z slightly wider than [-(1.5**0.62),+(1.5**0.62)]
on the grounds that 0.62, not representable in binary floating point,
must be widened to an interval, which necessarily contains rational numbers
of the form odd/odd and even/odd, while

	X=-1.5
	Y=0.625
	Z=X**Y

should yield a result Z that is empty, or Not-an-Interval, or C*, depending on 
religious preferences, on the grounds that the exactly representable 0.625 
need not be widened and so X**Y has no real result.    
That's an odd kind of continuity indeed.
 

The larger picture is that efficient implementations of interval +-*, with
inline code generation based on IEEE 754 point operations,
seem to be everywhere at odds with conservative or
flexible exception handling schemes.    Perhaps the interval field is not
yet ripe for IEEE 754-style nonstop default exception handling, and the 
appropriate default is termination on exceptions, in order to force 
appropriate selection of non-default exception-handling modes, 
or to force appropriate defensive coding.   However the meaning of
intervals containing signed zeros, infinities, and NaNs is not something that
one would want to change later, yet defining these intervals amounts to
deciding a lot about how exceptions are to be handled.   So deferring
decisions about exceptions pending wider usage of commercial products is
not completely feasible either.
 



More information about the Numeric-interest mailing list