public static List<Double> getLogRange(double min, double max, int n) {
		if (min == max && n == 1) {
			return Collections.singletonList(min);
		}

		if (min < 0 && max < 0) {
			return negate(getLogRange(-max, -min, n));
		}

		List<Double> out = new LinkedList<Double>();
		double logMin = Math.log(min);
		double logMax = Math.log(max);
		double dx = (logMax - logMin) / (n - 1);
		for (int i = 0; i < n; i++) {
			double log = logMin + i * dx;
			out.add(Math.exp(log));
		}
		return out;
	}