Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: Motion P1788/M0013.04 - Comparisons - Overflow / Infinity



NH> Keep in mind, Ian McKintosh has suggested replacing unbounded closed
NH> intervals with "overflown" compact intervals. In practice, there is not
NH> really a difference between the two. For example, +INF and -INF are
NH> replaced by +OVR and -OVR in all compuations, where OVR is some unknown
NH> finite real number larger than the magnitude of the largest
NH> floating-point number. In this way, intervals such as [1,+OVR] remain
NH> compact intervals and are not unbounded like the interval [1,+INF].
NH> Arithmetic operations on the endpoints of compact overflown intervals is
NH> the same as in Motion 5, i.e., (-OVR) + (-OVR) = -OVR, 0 * OVR = 0, etc.

AN> But then OVR has a different meaning in different places, which is
AN> unacceptable from a mathematical point of view. It is just INF in
AN> duisguise, and it hides mathematical propoerties of the limit under
AN> the carpet. One cannot use it in a mathematical argument....
AN>
AN> To argue for existence, one _needs_ in certain case the unbounded case.
AN> Mathematical programming had once a tradition for using big M (which is
AN> about the same as your OVR), and it is now deprecated (though still used
AN> by a few who don't like unbounded variables) since it behaves poorly not
AN> only mathematically but also algorithmically.


I did suggest Overflow (OVR) as a better floating point value than Infinity to represent an overflowed value, and that it would be very often more useful as an interval endpoint.

In doing that I did not mean it to totally replace Infinity, and I did not mean they would have the same semantics. The whole point is to distinguish their semantics.

In IEEE floating point, you can get Infinity two ways. One is by dividing a nonzero by zero. The other is by overflow. The following mostly ignores signs for brevity:
IEEE nonzero / 0 = Infinity
IEEE overflow on any operation = Infinity

One problem with that is that you don't know whether you're dealing with an infinite value or with an overflowed value. You need to know to get the semantics of subsequent operations correct.
IEEE Infinity * 0 = NaNQ

NaNQ is the right answer for Infinity resulting from nonzero/0, but should be 0 if the Infinity was the result of an overflow instead. Clearly the two meanings of Infinity need to be distinguished.

Proposed nonzero / 0 = Infinity
Proposed overflow on any operation = Overflow

Proposed Infinity * 0 = NaNQ
Proposed Overflow * 0 = 0
Most of the other rules are straightforward. One mustn't be tempted to think that subtracting Overflow from itself gives 0 though. In floating point
Proposed Infinity - Infinity = NaNQ
Proposed Overflow - Overflow = NaNQ
while in Interval Arithmetic
Proposed (+Infinity, +Infinity) - (+Infinity, +Infinity) = (-Infinity, +Infinity) (assuming Real* to allow Infinity - if not then ignore this line)
Proposed (+Overflow, +Overflow) - (+Overflow, +Overflow) = (-Overflow, +Overflow)
and multiplying that by 0 gives
Proposed (-Overflow, +Overflow) * (0, 0) = (0, 0)

If Interval Arithmetic was based on IEEE 754 with Overflow added, some of the operations would be simplified because they would not have to handle special cases.

I think that IEEE and others before them, including CDC and Cray, erred in combining two concepts that must be kept separate for correctness. (Note the operations creating them do have separate exceptions.) Simplicity is essential, but oversimplification is trouble.

With this clarification that Overflow is not Infinity, and our agreement that Infinity (which I think you mean by the unbounded case) is also needed, do we actually disagree? Overflow simply means a finite value that's larger than the largest representable in the chosen precision, while Infinity means the mathematical infinity. They are both infinite sets. They are disjoint sets. In some contexts you could treat them the same way, in others you can benefit by distinguishing them. Maybe most importantly, adding Overflow to floating point not only improves floating point, it lets it be a better more meaningful representation for interval end points.

- Ian McIntosh IBM Canada Lab Compiler Back End Support and Development


Inactive hide details for Arnold Neumaier ---09/19/2010 02:47:40 PM---Nate Hayes wrote: > Arnold Neumaier wrote:Arnold Neumaier ---09/19/2010 02:47:40 PM---Nate Hayes wrote: > Arnold Neumaier wrote:


From:

Arnold Neumaier <Arnold.Neumaier@xxxxxxxxxxxx>

To:

Ian McIntosh/Toronto/IBM@IBMCA

Date:

09/19/2010 02:47 PM

Subject:

Re: Motion P1788/M0013.04 - Comparisons





Nate Hayes wrote:
> Arnold Neumaier wrote:
>> Nate Hayes wrote:
>>> John Pryce wrote:
>>>> On 18 Sep 2010, at 23:15, Nate Hayes wrote:
>>>>> I speak against this.
>>>>> Ulrich's interior is better.
>>>>>
>>>>> Note that the topological interior, i.e., "proper subset," is
>>>>> already expressed efficiently in terms of Ulrich's relations for
>>>>> intervals A,B:
>>>>>   ( A \subset B ) and not ( A == B )
>>>> Doesn't that make [2,3] interior to [1,3]?
>>>>
>>>>> I don't see Entire should be interior to Entire.
>>>> Well, it seems weird to me too, but there it is. You're an expert on
>>>> quantified statements. Isn't it inescapable from the definition "B
>>>> is a neighbourhood of each a in A" (eqn1)?
>>>
>>> As you are so fond of quoting from George Corliss: if it even seems
>>> weird to you -- a seasoned mathemetician -- then "God help the casual
>>> user!"
>>>
>>>
>>>> The thing about definitions grounded in standard theory (and this
>>>> theory has been around for roughly 100 years) is that, compared with
>>>> ad-hoc definitions, you KNOW they can't lead to inconsistencies --
>>>> assuming math itself is consistent.
>>>>
>>>
>>> This is a reason I think P1788 might want to investigate sticking to
>>> compact intervals, instead.... which if you remember was one of my
>>> first choices.
>>
>> Unbounded intervals are essential for applications to general global
>> optimization and nonlinear systems solving, where for complex models
>> one often doesn't know in advance bounds on all variables.
>
> Yes, being able to initialize such unknown variables appropriately is
> important for these applications. I agree. I don't suggest P1788 should
> not provide a mechanism for this.
>
> Keep in mind, Ian McKintosh has suggested replacing unbounded closed
> intervals with "overflown" compact intervals. In practice, there is not
> really a difference between the two. For example, +INF and -INF are
> replaced by +OVR and -OVR in all compuations, where OVR is some unknown
> finite real number larger than the magnitude of the largest
> floating-point number. In this way, intervals such as [1,+OVR] remain
> compact intervals and are not unbounded like the interval [1,+INF].
> Arithmetic operations on the endpoints of compact overflown intervals is
> the same as in Motion 5, i.e., (-OVR) + (-OVR) = -OVR, 0 * OVR = 0, etc.

But then OVR has a different meaning in different places, which is
unacceptable from a mathematical point of view. It is just INF in
duisguise, and it hides mathematical propoerties of the limit under
the carpet. One cannot use it in a mathematical argument....

To argue for existence, one _needs_ in certain case the unbounded case.
Mathematical programming had once a tradition for using big M (which is
about the same as your OVR), and it is now deprecated (though still used
by a few who don't like unbounded variables) since it behaves poorly not
only mathematically but also algorithmically.


> So this approach seems to retain all the important advantages of
> unbounded intervals without actually introducing the complications that
> arise from them. To the extent I can see, it has big potential to
> simplify P1788 a great deal, without hurting or compromising the
> important needs of global optimization and nonlinear programming
> application you mention.

It is an artificial device without a proper mathematical support.

There are verygood reasons why mathematics has developed all these
topological concepts, sincve they are _exactly_ right in the circumstances.


Arnold Neumaier