Skip to main content
GameDev.net gamedev.net
🔒 Locked

complex number multiplication

Started by sakana321 Dec 1, 2005 at 3:24 AM 7 replies 1.1k views
Original Post
sakana321
sakana321
Normally complex number multiplication use 4 multiply and 2 addition. I heard there is a way to multiply it with 3 multiply and 3 addition. Anybody know about it? Thanks in advance.
timw
timw
I can't imagin that being true, unless there is some sort of constraint on the number. could be wrong tho..

Brother Bob
Brother Bob
Don't know with 3 additions, but for 4 instead, you can use this formula.
e = (a + ib)(c + id)Re(e) = ac - bdIm(e) = (a+b)(c+d) - ac - bd

Note than ac, bd and (ac - bd) can be calculated once and reused.
haegarr
haegarr
IMHO, in cartesian co-ordinates
(a + ib) (c + id) = (ac - bd) + i (ad + bc)
what means 4 MUL and 3 ADD

or else in polar co-ordinates
a ei φ * b ei ψ = ab ei (φ + ψ)
what means 1 MUL and 1 ADD (but possibly with conversion overhead that beats the effort of cartesian multiplication largely)

or else similarly in trig. representation
a ( cos(φ) + i sin(φ) ) * b ( cos(ψ) + i sin(ψ) ) = ab ( cos(φ + ψ) + i sin(φ + ψ) )
what makes, no surprise, also 1 MUL and 1 ADD.

The way Brother Bob shows is a variation of the one shown at top here, that replaces 1 MUL by 2 ADDs.
IMHO it shows 3 MULs and 5 ADDs in total and not 3 MULs and 4 ADDs, as Brother Bob stated, since
- ac - bd != ac - bd = Re(e)
and hence the difference could not be re-used.
Brother Bob
Brother Bob
Quote:
Original post by haegarr
The way Brother Bob shows is a variation of the one shown at top here, that replaces 1 MUL by 2 ADDs.
IMHO it shows 3 MULs and 5 ADDs in total and not 3 MULs and 4 ADDs, as Brother Bob stated, since
- ac - bd != ac - bd = Re(e)
and hence the difference could not be re-used.

Correct, I was wrong on that point. It should be 5 additions, not 4.
Aryabhatta
Aryabhatta
A complex multiplication method which I have seen uses 3 mul and 3 add is specialised for usage in Fast Fourier transform.

There is another method which is called Buneman's method which in rotating a complex number by theta, uses 3 mul and 3 add.

Both the above methods use lookup tables of some sort.

The 3 mul 5 add which brother bob showed is called Golub's method.
timw
timw
Quote:

There is another method which is called Buneman's method which in rotating a complex number by theta, uses 3 mul and 3 add.

Of course, you'd need some trig to extract the angles.
I'd think the traditional way is quickest if your numbers are changing or unpredictable. I'd think any other method would need trig to extract angles? I guess it depends on the application. if you can always represent them in that way(like ee stuff) then it's cool.

Tim
sakana321
sakana321
Thank you very much for all your response.
Aryabhatta is correct i have seen it mention in fft paper but i can't access it reference. Do you guys have any link to it? Or could you explane a little more? Thanks in advanced.

BTW. Big thanks to Brother Bob I never though that method exist ^_^" that's something new for me.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.