docs: public void setEpsilon(double epsilon)
      {
          if(Double.isNaN(epsilon) || Double.isInfinite(epsilon) || epsilon <= 0)
              throw new IllegalArgumentException("epsilon must be in (0, infty), not " + epsilon);
          this.epsilon = epsilon;
      }