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

Re: Revised Motion 26 decoration scheme



On Wed, July 20, 2011 17:06, Nate Hayes wrote:
> Arnold Neumaier wrote:
>> On Wed, July 20, 2011 16:43, Nate Hayes wrote:
>>> Arnold Neumaier wrote:
>>>>> For example, consider the real function
>>>>>     f(x,y) = y + 1 / g(x)
>>>>> and its interval extention over interval domain (X,Y) where both X
>>>>> and
>>>>> Y
>>>>> are
>>>>> nonempty. If we are computing with bare objects and g(X) is not
>>>>> continuous,
>>>>> then we have
>>>>>     Y + 1 / def.
>>>>>
>>>>> Promoting the bare decoration def to (Empty,def) gives:
>>>>>     Y + 1 / (Empty,def)
>>>>>         = Y + (1/Empty,inf(ein,def))
>>>>>         = Y + (Empty,def)
>>>>>         = (Y+Empty,inf(dac,def))
>>>>>         = (Empty,def)
>>>>>         = def
>>>>> In other words, the exception "def" first occured in g(X) and this
>>>>> decoration is promoted all the way to the end of the computation. So
>>>>> the
>>>>> user knows in this case the reason for failure.
>>>>>
>>>>> On the other hand, promoting the bare decoration def to (Entire,def)
>>>>> gives:
>>>>>     Y + 1 / (Entire,def)
>>>>>         = Y + (1/Entire,inf(con,def))
>>>>>         = Y + (Entire,con)
>>>>>         = (Y+Entire,inf(dac,con))
>>>>>         = (Entire,con)
>>>>>         = con
>>>>> In this case, the exception "def" that occured in g(X) is lost by the
>>>>> subsequent computations: the user has less knowledge why the failure
>>>>> occurred.
>>>>
>>>> If one has g(x)=sign(x) and X=[-1,1], the decorated evaluation would
>>>> give
>>>> con and not def, and indeed, f is not everywhere defined. This
>>>> property
>>>> must be preserved by the bare rules, since the use of the decoration
>>>> might
>>>> depend on this.
>>>>
>>>> Moreover, having a different semantics for the decorated and the bare
>>>> case
>>>> (as proposed by you) would lead to confusion....
>>>
>>>
>>> This is already a problem for Motion 26, since for g(x)=floor(x) and
>>> X=[4,8]
>>> the full decorated interval computation gives
>>>     def
>>> but when evaluated using bare objects (by Motion 26) it gives
>>>     con
>>
>> This is not a problem, since in both cases, the answer says something
>> correct about the function.
>
> Only by coincidence, since the decoration provided is trivially correct
> for
> any computation.

No. The recipe given in Motion 26 always gives a correct result (namely
equal or less informative than the result of the decorated computation).


>> Whereas in your example, the bare answer makes a wrong statement about
>> the function.
>
> It states the evalutation of f(X,Y) is not possible because one of the
> sub-expressions was not continuous. This is an entirely correct statement
> about the function.

But the ordinary meaning of the decoration def is that the function is
defined on the whole box, which is not the case in your computation. Thus
the user has to keep in mind two different semantics, depending on whether
the compiler did or did not optimize. This would be VERY confusing.


Arnold Neumaier