@Override
	public double sample() {
	  double u = ThreadLocalRandom.current().nextDouble();
		if (u < fc) {
			return min + Math.sqrt(u * (max - min) * (likely - min));
		} else {
			return max - Math.sqrt((1 - u) * (max - min) * (max - likely));
		}
	}