Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Complex Arithmetic
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Bruce Hoult <bruce@h...>
Subject: Re: [Caml-list] Complex Arithmetic
At 12:21 AM -0700 3/28/01, David McClain wrote:
>Borda's Mouthpiece requires taking the square root of the square of values
>along the negative imaginary axis. When you square (0 - 1i) you get (-1).
>...but actually you get (-1 + 0-). Most languages simply accept the square
>as (-1) = (-1 + 0+).
>
>Taking the subsequent square root when you have made this incorrect
>assumption gives the value sqrt(-1) -> (0+1i). And so the stream line mapped
>from the negative imaginary axis ends up cutting across all the other stream
>lines when this condition is encountered. An obvious error!
>
>The correct answer is obtained by noting that (0 - 1i)^2 -> (-1 + 0-) and
>sqrt(-1 + 0-) -> (0 -1i) again. Only by properly considering the nature of
>floating point zero (i.e., which of the two you really have) can you perform
>this computation correctly.

I guess I'm just dense, but I don't see how you generalize this.

I mean, OK, if you want to also say that (-1, 0)^2 -> (1, 0-) so that 
you can then do sqrt(1, 0-) -> (-1, 0) instead of (1, 0) then I guess 
I could live with this.

But how do you deal with all the other complementary pairs?  I mean, 
how do you distinguish the results of, say (4 + 5i)^2 and (-4 - 5i)^2 
-- both of which are (-9 + 40i) -- so that when you do sqrt(-9 + 40i) 
you get the number you started with rather than always the principle 
one?

I'm afraid I just don't see it.

-- Bruce
-------------------
To unsubscribe, mail caml-list-request@inria.fr.  Archives: http://caml.inria.fr