private boolean converged(double value, double nextValue, double tolerance) {
    if (value == nextValue)
      return true;
    double valueChange = SloppyMath.abs(nextValue - value);
    double valueAverage = SloppyMath.abs(nextValue + value + EPS) / 2.0;
    if (valueChange / valueAverage < tolerance)
      return true;
    return false;
  }