This problem predates your change, but testing for float equality like this is dubious.  (See http://stackoverflow.com/questions/1088216/whats-wrong-with-using-to-compare-floats-in-java).   Similarly for `isZero()`.  I'm not sure if we should eliminate these methods or give them an epsilon parameter or what ...