Multiplying complex numbers is easy - just open the brackets and use what you know: (a+bi)*(c+di) = ac + bci + adi + bdi^{2} = (ac-bd) + (bc+ad)i.

But suppose multiplications are expensive, while additions (and subtractions) are cheap. Can we use fewer multiplications?

Define these three values:

- A = (a+b)*(c+d) = ac+ad+bc+bd
- B = a*c
- C = b*d

Then (a+bi)*(c+di) = (B-C) + (A-B-C)i, which only requires 3 multiplications!

A related method is the Strassen algorithm for matrix multiplication, or the Strassen algorithm for polynomial multiplication.

xriso points out some people prefer polar notation. You don't even need to open brackets, it's so much easier: (r*(cosθ+isinθ)) * (s*(cosφ+isinφ)) = (r*s)*(cos(θ+φ)+isin(θ+φ)).