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

Re: Potential well and decorations



Nate Hayes wrote:
Vincent Lefevre wrote:
On 2011-07-07 09:02:20 -0500, Nate Hayes wrote:
Dominique Lohez wrote:
>Ralph Baker Kearfott a écrit :
>>On 07/04/2011 12:51 PM, Nate Hayes wrote:
>>>Dominique Lohez wrote:
>>>>Nate Hayes a écrit :
>>>>>If for example we have the interval extension
>>>>>
>>>>>P(X) = U(X) \union V(X)
>>>>>
>>>>>with
>>>>>
>>>>>U(X) = sqrt((|X| \intersect [roundDown(sqrt(a)),+Inf])^2-a)
>>>>>V(X) = -sqrt(a-(|X| \intersect [0,roundUp(a)]))
>>>>>
>>
>>If I encountered a function like Dan's, that is,
>>
>>if (abs(x) > sqrt(a))
>>    y = sqrt(x^2-a);
>>else
>>    y = - sqrt(a-x^2);
>>end
[...]
One thing I notice is if at Level 2 the function is implemented:

   U(X) = sqrt((|X| \intersect [roundUp(sqrt(a)),+Inf])^2-a)
   V(X) = -sqrt(a-(|X| \intersect [0,roundDown(sqrt(a))])^2)

so that there is a 1 ULP gap between the domains of U(X) and V(X) at
sqrt(a), then P(X) always gives a valid range enclosure and "continuous"
decoration whenever sqrt(a) is an element of |X|.

The reason this works is because the potential function is monotonic and
continuous over the Level 2 interval
[roundDown(sqrt(a)),roundUp(sqrt(a))],
and any Level 2 |X| containing sqrt(a) will be a superset of this
interval.

However, this trick doesn't seem to work for implicit data types with
dynamic precision, e.g., MPFR etc.

Anyway this works only in a particular case. For instance, if a is not
representable exactly by a FP number (or not known exactly), it will
be represented by an interval, and this tricks no longer works in such
a case.

I think as long as:
   -- there is only a 1 ULP gap on the domain between U and V at Level 2
   -- that P(X) is monotonic and continuous on that gap
it may still work.

For example, if sqrt(a) is not exactly representable by a FP number but the
interval [A_1,A_2] is the narrowest (non-degenerate) Level 2 interval such
that nextup(A_1) = A_2 and sqrt(a) is an element of [A_1,A_2], and P(X) is
implemented:

   U(X) = sqrt((|X| \intersect [A_2,+Inf])^2-aa)
   V(X) = -sqrt(aa-(|X| \intersect [0,A_1])^2)

where aa is also the narrowest Level 2 interval containing a.

Then any Level 1 number that is an element of [A_1,A_2] will at Level 2 be
contained in this interval; so the intersections in U and V will both be
nonempty at Level 2 and the union of the ranges of U and V will form a valid
enclosure of the underlying point function.

...but the interval dependence in the subtraction involving aa may now give a slightly negative result, resulting in a conservative (non-continuous) decoration.

So maybe you are right (was that your point?)

Nate