Interval enclosure of X**Y for negative x in X

Arnold Neumaier neumacma.univie.ac.at
Tue Mar 31 09:07:29 PST 1998


David Hough writes,

>>I think the underlying issue is that we are thinking of different 
functions.  I think of x**y as corresponding to the multiple-valued 
complex function, analytic in places if we choose a principal branch 
of log, defined by exp(y**log(x)). ... In contrast Prof. Neumaier's 
definition is based upon a different choice of log branch to yield 1 
... I think it's a mistake (in language design) to use one notation 
** to represent two rather different functions.<<

and then goes on to show that Fortran77 implementations gives the 
results he expected. 

He is quite right in that we are thinking of different functions.
The point I want to make is that it is quite useful to deviate from the
past in order to have more useful properties. For me, not tradition is
the measure of an optimal future, but rather the way new features will
affect applications. 

In a context where no full complex interval arithmetic is provided,
there is no point at all in thinking of function as restrictions of
complex-valued functions. In most applications of intervals, the context
is completely real, and everything could be understood even if complex
numbers had never been invented. So one should look at the functions as
real functions.  (Actually Dr. Hough gets the complex results only when 
demanding explicitly complex arithmetic. The Fortran77 implementations 
also think that with real arithmetic there should be real 
interpretations only and NaN is returned.)

Now people used to the old tradition will avoid fractional powers of
negative numbers anyway since they produce NaN's; so they wouldn't be
harmed by an interval power that gives them more sensible values.
Interval arithmetic, however, is privileged by the fact that all 
operations produce sensible sets and there is no reason why the power 
should be treated differently. 

So the only question is which set to return when the base is negative. 
The empty set is forbidden since it gives containment failure. The
result [-inf,inf] would be a valid possibility but is unnecessarily 
wide. It is enough that all meaningful real outcomes are enclosed,
and to avoid possible containment failures in case of misinterpretation,
the widest set of meaningful answers should be provided. And that
care in this matter has useful applications has been pointed out in
my previous mail.

Since usually the base is >0, the necessary case analysis will slow 
down the operation in the main case not at all (the sign test needs to 
be made even when the result is set to NaN or NaI), so there is not 
even a performance penalty. And I'd be surprised if the penalty for 
hardware coding the exceptions were excessive. 

Perhaps Dr. Hough could expand on the practical disatvantage of 
giving X**Y more useful values in case X contains negative numbers.
This would give the discussion more depth instead of just presenting
two opposing points of view.

Arnold Neumaier





More information about the Numeric-interest mailing list