interval X**Y and exceptions generally

Arnold Neumaier neumacma.univie.ac.at
Wed Apr 1 08:46:06 PST 1998


>>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<<

I find nothing bad about this. Continuity is not relevant for floating
point operations; we also do not mind that x/x=NaN when a positive x
underflows to 0. We also don't signal an error if (exp(x)-1)/x vanishes
for small x after seemingly converging to 1 as x approaches 0. Every
mathematician is made familiar with such continuity failures in 
finite precision arithmetic.

And for interval methodology, the essential property is enclosure, not 
continuity. Near discontinuities intervals must still produce
reasonable results though their width changes discontinuously. 

For example, the derivative of sqrt(eps+x^2) at x=0 changes from 0 
for eps>0 to [-1,1] for x==0 and becomes undefined for x<0. 
This is precisely what is needed in a context where the absolute 
value function needs to be smoothed.
So one has to expect that singular behavior of the real function results
in discontinuous behavior of the result width of interval operations.
This may be a little unfamiliar to people less acquainted with interval
arithmetic, but it is not more strange than working with empty products
having the value 1, and similar exceptional mathematical constructs,
that are not very intuitive at the beginning, but very useful.

Arnold





More information about the Numeric-interest mailing list