I have brief look at this book and it looks nice and easy to read, however I noted the author works with floating point numbers and in some places, you can see snippets like this: // are the two points in the same location? if (x1 == x2 && y1 == y2) { return true; } You should never compare two floating-point numbers for equality. Use interval and to determine if two numbers are close.
https://randomascii.wordpress.com/2012/02/25/comparing-float...
In particular, in many cases, you want to consider alternatives to comparing against a fixed epsilon: the relative epsilon approach, and the ULP (Units in the Last Place) method, which tests for how many other floats/doubles are representable between two values you're comparing. The benefit of these two methods is that they scale with the compared numbers.