Since I'm back on this topic, here are some items I'd propose to change. Yeah I know you can say they're small, but they get harder to fix as time goes on. But nevertheless what do you think of...
1. serialVersionUID should not be used. The default serialization mechanism errs on the side of considering differing class versions serialization-incompatble. This is almost always completely fine. Using serialVersionUID -- and forgetting to update it -- introduces subtler runtime bugs. I prefer to never use it. 2. Javadoc that just read (non-javadoc) with a @see tag, or just has [EMAIL PROTECTED], adds no value and can be removed. 3. UpdatableFloat/Long -- just use Float[1] / Long[1]? these classes don't seem to be used. 4. floats to double? are there cases where storage is important enough to sacrifice precision and CPU time? 5. BruteForceTravellingSalesman says "copyright Daniel Dwyer" -- can this be replaced by the standard copyright header? 6. I never declare RuntimeException subclasses in a method signature. They are not required and do not tell the compiler anything new. They can be javadoc'ed of course. I don't feel strongly about it but do slightly prefer to only declare checked exceptions in a signature for clarity.