Programming in Mathematica (2nd ed.)