public static int maxBucketsPerElement(long numElements) {
    numElements = Math.max(1, numElements);
    double v = (Long.MAX_VALUE - EXCESS) / (double) numElements;
    if (v < 1.0) {
      throw new UnsupportedOperationException("Cannot compute probabilities for " + numElements + " elements.");
    }
    return Math.min(BloomCalculations.probs.length - 1, (int) v);
  }
Calculates the maximum number of buckets per element that this implementation
can support.  Crucially, it will lower the bucket count if necessary to meet
BitSet's size restrictions.
ambry-utils/src/main/java/com/github/ambry/utils/BloomCalculations.java