On 8/4/07, Dan Piponi <[EMAIL PROTECTED]> wrote:
>
> On 8/4/07, Albert Y. C. Lai <[EMAIL PROTECTED]> wrote:
> > There is no reason to expect complex ** to agree with real **.
>
> There's every reason. It is standard mathematical practice to embed
> the integers in the rationals in the reals in the complex numbers and
> it is nice to have as many functions as possible respect that
> embedding.


A example I have seen before that illustrates some the difficulties with
preserving such behaviour is (-1)^(1/3).

Of course, taking the nth root is multi-valued, so if you're to return a
single value, you must choose a convention.  Many implementations I have
seen choose the solution with lowest argument (i.e. the first solution
encounted by a counterclockwise sweep through the plane starting at (1,0).)

With this interpretation, (-1)^(1/3) = 0.5 + sqrt(3)/2 * i.  If you go with
the real solution (-1) you might need to do so carefully in order to
preserve other useful properties of ^, like continuity.

Steve
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to