Jump to content
  • Advertisement
Sign in to follow this  
sakana321

complex number multiplication

This topic is 4855 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.

Share this post


Link to post
Share on other sites
Advertisement
I can't imagin that being true, unless there is some sort of constraint on the number. could be wrong tho..

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I guess if they are in polar form you can get away with 1 multiply and 1 add. Otherwise I don't know...

Share this post


Link to post
Share on other sites
Don't know with 3 additions, but for 4 instead, you can use this formula.

e = (a + ib)(c + id)

Re(e) = ac - bd
Im(e) = (a+b)(c+d) - ac - bd

Note than ac, bd and (ac - bd) can be calculated once and reused.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!