There are two basic architectures to implement complex multiplication, given two operands: a = ar + jai and b = br + jbi, yielding an output p = ab = pr + jpi.
Direct implementation requires four real multiplications: pr = arbr – aibi
pi = arbi + aibr
By exploiting that pr = arbr – aibi = ar(br + bi) – (ar + ai)bi
pi = arbi + aibr = ar(br + bi) + (ai + ar)br
a three real multiplier solution can be devised, which trades off one multiplier for three pre-combining adders and increased multiplier word length.