On 2011-08-19 16:44:38 +0200, Arnold Neumaier wrote:
On 08/19/2011 04:08 PM, Vincent Lefevre wrote:
On 2011-08-19 14:10:38 +0200, Arnold Neumaier wrote:
On 08/19/2011 12:17 AM, Vincent Lefevre wrote:
On 2011-08-18 17:30:21 +0200, Arnold Neumaier wrote:
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.
On the contrary, AFAIK, this is the goal of decorations: to propagate
information from the input to the output.
If you apply the domain operator to the input (as a single vector),
everything is alright. But if you have multiple inputs with unknown past,
there is not ''the input''.
Well, what I mean is that the computation can be modelized by a DAG,
and each node has its own input vector and output vector.
Decorations are a concept whose meaning is associated to the whole
computation and its input and output, not to the single node in the dag,
which only acts as an execution engine.
Decorations should be specified on sub-DAGs only because the
implementation cannot know what occurs in the "whole computation".
Some information from the past is necessarily unknown to the
implementation.
But there's also the question of whether an implementation is allowed
to optimize the code to bypass the single operations and provide
directly what is meant by the decorations in some sub-DAG. This is
my example here:
BTW, I suppose that if the (only) function f with 1 argument such that
Domain(f) is empty is implemented by sqrt(-1/x^2), then one cannot
obtain the ill decoration (except if the code knows that Domain(f) is
empty and forces the decoration to ill, or the implementation does an
optimization like supporting open intervals internally), even though
this would be a correct decoration. Said otherwise, the decorations are
properties associated with functions, not with their implementation.
So, if a programmer writes code based on the fact that all intervals
are closed (like assuming that 0 is in the interval returned by the
expression sqrt(-1/x^2) when x is unbounded), it would be a mistake.
I don't understand. since ill \subseteq def, getting in this case 0_def
(which it does according to Motion 26) is valid, and cannot lead to a false
conclusion -- just as getting 0 in undecorated interval arithmetic doesn't
allow to conclude that 0 is a value.
This is precisely because ill \subseteq def and Empty \subseteq [0,0]
that there is an ambiguity in the specification. My question is: is an
implementation allowed to return (Empty,ill) on this example because
with some reasoning, one can deduce that the function is nowhere
defined?