stopping computation on negative convergence too (i guess in ideal data it converges too fast and rounding errors could push rmse back up.)