Numerical Recipes:  The Art of Scientific Computing