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

Re: Decorations and Motion 22



John Pryce wrote:
Arnold, Nate

I like your proposed 5-value decoration scheme (extract from Arnold's 10th Oct email quoted below). A couple of queries.

A. I had forgotten that, when promoting a bare to a decorated interval in the context of, say,
   (bare xx) op (decorated yy), returning (decorated zz)
it is good sense to allot the most *pessimistic* decoration consistent with the available information, not the most optimistic.
On 26 Oct 2010, at 16:55, Arnold Neumaier wrote:
In the 5-value decoration scheme I had suggested, this would mean
that a bare interval is promoted to a decorated interval with decoration 4 if it is Empty, and decoration 2 otherwise.
Why decoration 2, "possibly everywhere defined"? Consider the function g(x) defined by the expression sqrt(2*x-x). Evaluating its interval version on [-3,-1] we get
  sqrt([-6,-2]-[-3,-1]) = sqrt([-5,1]) = [0,1]
though g is nowhere defined on [-3,-1].
Thus the nonempty interval [0,1] could have arisen from evaluating a function that is nowhere defined on its input box. I deduce from this that correct pessimistic promotion of a nonempty interval gives it decoration 3, not 2.

Yes. But note that ''possibly defined'' is more pessimistic (more precisely: more ignorant) about the content than ''nowhere defined''.
So one gets a correct but pessimistic result.

If you promote instead to 3 you get a _wrong_ result for sqrt([0,1]),
which is certainly everywhere defined.


B. Can you explain, with examples, what "bounded" in the description of dec=0 refers to please?
 - The output interval zz?
 - The input box for a possible function that produced zz?
 - The exact range of that possible function over its input box?

The exact range. This is relevant in case of overflow.


The following unary predicates shall be provided for bare decorations
and for decorated intervals of any supported idatatype:

isValid               dec<4
possiblyNonempty      dec<3
everywhereDefined     dec<2
isSafe                dec<1

notValid              dec>3
isEmpty               dec>2
possiblyUndefined     dec>1
notSafe               dec>0
======================================================================