1. An apparatus comprising: a binary multiplier; a set of integer multipliers which are distinct from each other, each of said set of integer multipliers to operate independently from the binary multiplier; and a memory to store operands for a multiplication problem, the memory shared by the binary multiplier and the integer multiplier, the multiplication problem to be performed using the stored operands by a selected one of the multipliers, the one of the multipliers selected dependent on a multiplier type associated with the multiplication problem; wherein the binary multiplier is a carryless multiplier optimized to perform binary multiplication and the integer multiplier is a carry save multiplier optimized to perform unsigned integer multiplication.