[PURRS-devel] Re: filib-CoStLy

Markus Neher markus.neher at math.uni-karlsruhe.de
Thu May 2 11:19:25 CEST 2002


Dear Tatiana,

> Suppose we have two partially known real values a and b and
> we want to approximate their ratio. If a is approximated by the
> intervals I(a) and b by the interval I(b), we want to approximate 
> the ratio I(a)/I(b). 

> If we have understood correctly the ratio's operation among intervals
> defined in your libraries, it throws an exception when I(b) contains 
> zero.

Yes, this is done in the current version of CoStLy.
 
> we could split the interval I(b) in two parts:
>       [inf I(b), 0) and (0, sup I(b)],

Yes, for real intervals this is possible.

> but this would be possible only if filib and CoStLy support both closed
> and open intervals: this seems not to be possible with your libraries.

You don't necessarily need open intervals, but unbounded intervals
(which are not implemented in CoStLy either). The real division
I(a)/I(b) when I(b) contains zero can be performed in so-called extended
arithmetic. You have to consider several special cases (e.g. you have to
distinguish if 0 \in I(a) or if 0 lies in the interior of I(b) or at its
boundary, etc.), but each case leads to a simple formula. However, the
result of the division is either the full real line, an unbounded real
interval, or the union of two unbounded real intervals.

> We would like your advice: how would you suggest to achieve our goal?
> Do you think that we could easily obtain what we need from filib and
> CoStLy, 

That depends on what other operations (besides the real division) are
required in your problem. If you only need the basic arithmetic
operations +,-,*,/ then it should not be too difficult to build an
extended complex arithmetic from filib. However, the situation is much
more complicated (I would even say: impossible) for multi-valued complex
standard functions like log or square root. E.g., I don't know how one
could find a practical representation for the set of *all* values of
sqrt( ln (Z) ) for a given complex interval Z. 

The basic problem with the complex logarithm (and other multi-valued
functions) is that you either have to define it uniquely (and then you
get regions where it is not defined or you lose continuity), or you have
to consider the set of all (i.e. infinitely many) solutions.

To preserve analyticity, CoStLy uses principal values for all complex
functions. Thus, the program terminates with an exception when the
logarithm of a negative real number occurs, and you only get one
function value for the square root or for other roots. 

I am well aware that this restriction may be too prohibitive for many
applications. In fact, while the general case of arbitrary compositions
of multi-valued complex functions appears hopeless, it may still be
possible to compute practical interval enclosures for *some* complex
expressions (e.g. for sqrt(Z) + ln(Z)). 

Could you send some of the expressions that you want to evaluate?
Perhaps we can find a solution for your special problems without having
to consider all possible exceptional cases.

Best regards,

Markus Neher



More information about the PURRS-devel mailing list