Evaluating algebraic expressions