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

Re: Potential well and decorations



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 :
Dominique Lohez wrote:
.
.
.

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

in a set of computations involving it, rather than
programming it as above, I might, depending on priorities
and relative importance, program it directly in terms of,
say, truncated series, and supply the appropriate
decoration upon return from my "user-supplied" function,
so the arithmetic system would view it as an atomic
operation.  Would that lessen the burden on the
requirements of a decoration scheme?  In any case,
many users may not have the luxury of going down
such a route.

Be careful.

Before defining such a user-defined function
you must insured that

     1)   The Interval expression is an straight-forward extension of your
intended real expression
      2) It satisfies the isotonicity requirement
     3)   It provides a decoration not best that the expected decoration

IMHO the  point 1 and 2   are better addressed   using set operators


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.

Nate