Java Number Cruncher: The Java Programmer’s Guide to Numerical Computation by Ronald Mak. I stole this book off a co-worker’s bookshelf, but it’s not as interesting as I’d hoped it would be. I had hoped to learn about special math-related API’s or open source projects (like Jakarta Commons Math or JavaMath). The 464 pages promised lots of such information, but the content just wasn’t there.
The first section focuses on the gotchas of numerical computing: rounding errors, imprecision, overflow, etc. After that, the book presents several mathematical problems (root finding, differential equations, digits of Pi, etc.) and gives programs that can be used to solve them. In most cases, it presents several algorithms for solving the each problem, with benchmarks showing how quickly the answer is obtained. Unfortunately, the book gives every line of code for each of the algorithms. While this is good for completeness, it means there is much less content than the thickness of the book promised, especially with all the code available on the website.
On the bright side, the code is made freely available, so the examples could make the start of a good open source Java Math API if someone wanted to take up the project.