- don't use float.Epsilon since it does evaluate to 0 on ARM