[PURRS-devel] [Fwd: Re: Extended arithmetic]

Tatiana Zolo zolo at cs.unipr.it
Fri Oct 11 11:54:01 CEST 2002


-------- Original Message --------
Subject: Re: Extended arithmetic
Date: Fri, 11 Oct 2002 09:48:56 +0200
From: Markus Neher <markus.neher at math.uni-karlsruhe.de>
To: Tatiana Zolo <zolo at cs.unipr.it>
References: <3CD8FA8A.97151456 at cs.unipr.it>

Dear Tatiana,

I just ran across an old e-mail of yours, dating back to May 8. If 
you're still interested in an answer (I think I have not sent an answer 
so far), here are a few thoughts:

> In conclusion, we always have to deal with square roots or roots with
> higher index, and the elementary functions sin, cos: we need to evaluate
> them at
> points of complex plane which may be everywhere, including the negative
> real axis.

I see your point, but I'm afraid there is a basic problem for which I 
have no good answer. There are three possible solutions to your problem, 
  but each gets you in trouble.

1. As we did in CoStLy, you can restrict function values to principal 
values. Then log, sqrt and other functions are not defined everywhere in 
the complex plane. E.g., log(Z)is not defined for Z = [-2,-1] + i[-1,1]. 
This is not what you want to have.

2. Evaluating a standard function, you can choose some arbitrary branch. 
If you do this for  log  on the negative real axis, you can evaluate 
log(Z) for the above example, but log(Z) is then a union of two 
intervals. Thus, you have to write your function library in such a way, 
that you can enter a list of argument interval and get another list of 
intervals of function values, like
(W_1, W_2, W_3, W_4, W_5) = log( Z_1, Z_2, Z_3).

If you evaluate a composite function like  log(Z) - sqrt(Z+1/Z), you 
have to add lists of intervals, which finally may produce a large list 
of intervals that contains few "true" solutions and many "ghost" 
solutions.

3. You can compute sets of all solutions instead of principal function 
values. Obviously, this won't work for log(log(Z)), as I pointed out in 
a former e-mail. If you try it for sqrt, it may work, but there are even 
  more ghost solutions than with item 2. Here, you do not only have 
multiple solutions on the negative real axis, but everywhere in the 
complex plane.

Consider your example:

>     We find the solution
> 
>     x_1 = -3/4+1/4*sqrt(9+4*(-9/2+sqrt(2443/108))^(1/3)-4*
>           *(9/2+sqrt(2443/108))^(1/3))+1/2*sqrt((3/2-1/2*sqrt(9+4*(-9/2+
> 
> 
> +sqrt(2443/108))^(1/3)-4*(9/2+sqrt(2443/108))^(1/3)))^2-2*sqrt(4+
> 
> +((-9/2+sqrt(2443/108))^(1/3)-(9/2+sqrt(2443/108))^(1/3))^2)-2*
>           *(-9/2+sqrt(2443/108))^(1/3)+2*(9/2+sqrt(2443/108))^(1/3))

If you compute two roots for each "sqrt", then the total evaluation of 
your expression yields dozens of solutions. I don't see a simple method 
to identify the 4 "true" roots of your 4th order polynomial among the 
ghost solutions.

If you have a solution to this problem, I'll be interested to hear about
it.

Best regards

Markus



More information about the PURRS-devel mailing list