Multiply Strings Algorithm

It is like to the Wallace multiplier, but it is slightly faster (for all operand sizes) and necessitates fewer gates (for all but the smallest operand sizes).In fact, Dadda and Wallace multipliers have the same three steps for two bit strings. Unlike Wallace multipliers that reduce as much as possible on each layer, Dadda multipliers try to minimize the number of gates used, as well as input / output delay.

Multiply Strings source code, pseudocode and analysis