Thread Links | Date Links | ||||
---|---|---|---|---|---|
Thread Prev | Thread Next | Thread Index | Date Prev | Date Next | Date Index |
Arnold Neumaier wrote:
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 conThis 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, be careful. When you say things like "the ordinary meaning of the decoration", that is something P1788 has yet to decide. Motion 27 of course gives some different definitions and semantics: if you criticize those semantics by a competing definition or point of view, then of course people will be confused. We ALL will be confused. I believe Motion 27 gives definitions and semantics that are internally coherent and consistent; and I believe that promotion of bare decorations to Empty are entirely correct and consistent with those definitions and semantics. The trouble arises when trying to "mix and match" points of view between Motion 26 and Motion 27, as you are trying to do, IMHO. So I don't find this line of argumentation persuasive or convincing. Nate