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

Re: Reasons (not) to vote Motion 27: NO



On 08/18/2011 04:07 PM, Vincent Lefevre wrote:
On 2011-08-18 14:58:49 +0200, Arnold Neumaier wrote:
On 08/18/2011 02:26 PM, Vincent Lefevre wrote:
But here the risk is even more important, because the behavior isn't
intuitive and existing programs would need to be modified. Indeed,
existing programs do not use decorations (or at least, not the ones
defined in Motion 26), and the problem here concerns the decorations
only.

But the risk is easily avoided by following the instructions in the
standard (which can be emphasized by giving your example).

The current motion is not clear enough. Here it seems that the
difference between a bound expression and a free expression really
matters (contrary to floating-point arithmetic or to interval
arithmetic without decorations). In my example:

   r = sqrt(x) + y;

and this could have been rewritten:

   z = sqrt(x);
   r = z + y;

but there is a difference between f(x) = sqrt(x) and f(x,y) = sqrt(x).

Note: both a bound expression and a free expression can define a
function, but not in the same way. In the case of a free expression,
the function arguments are implied by the expression itself.

I think the main problem is that 5.8.5 doesn't say when Step 1 is done
exactly. I initially thought that I was done locally at each leaf, i.e.
x ->  domain(x) for sqrt(x), and y ->  domain(y) for the addition.

Also, I suppose that domain() should never be implicit as it can
transform a non-empty component into an empty one.

Now, languages are often based on free expressions. So, shouldn't
the standard specify decorations over free expressions (possibly
in addition to specification over functions or bound expressions)?

One cannot give any useful guarantees for free expressions because
one cannot control the input decorations. They can carry decoration
information from ancient times that are completely irrelevant for the range calculations.



Said that, I still don't think that 5.8.5 is correct. Consider:
   * xx and/or yy is Empty (so that the box (xx,yy) is empty).
   * f(x,y) = sqrt(x) + y
One gets:
   * After applying domain on the box (xx,yy), one gets (Empty,emp)
     for both components.

Oops, this is a typo in the text; according to the semantics in (Eval1),
upon which the proof of the FTDIA is based, domain should yield (Empty,ein).