code: @Pure
  	public static boolean isEpsilonEqual(double v1, double v2, double epsilon) {
  		if (Double.isInfinite(v1)) {
  			return Double.isInfinite(v2) && Math.signum(v1) == Math.signum(v2);
  		} else if (Double.isNaN(v1)) {
  			return false;
  		}
  		final double value = Math.abs(v1 - v2);
  		final double eps = Double.isNaN(epsilon) ? Math.ulp(value) : epsilon;
  		return value <= eps;
  	}
docs: Replies if the given values are near.
  
  @param v1 first value.
  @param v2 second value.
  @param epsilon the approximation epsilon. If {@link Double#NaN}, the function {@link Math#ulp(double)} is
  used for evaluating the epsilon.
  @return <code>true</code> if the given {@code v1}
  is near {@code v2}, otherwise <code>false</code>.