Multiplying Algebraic Terms