code: public static <T> SimpleBloomFilter<T> of(int approximateNumberOfElements, float acceptableFalsePositiveRate) {
  
      Assert.isTrue(approximateNumberOfElements > 0,
        "The approximate number of elements [%d] to add to the filter must be greater than 0",
        approximateNumberOfElements);
  
      Assert.isTrue(acceptableFalsePositiveRate > 0.0f && acceptableFalsePositiveRate < 1.0f,
        "The acceptable false positive rate [%s] must be greater than 0.0 and less than 1.0",
          String.valueOf(acceptableFalsePositiveRate));
  
      int requiredNumberOfBits = computeRequiredNumberOfBits(approximateNumberOfElements, acceptableFalsePositiveRate);
  
      int optimalNumberOfHashFunctions = computeOptimalNumberOfHashFunctions(approximateNumberOfElements,
        requiredNumberOfBits);
  
      SimpleBloomFilter<T> bloomFilter = new SimpleBloomFilter<>(requiredNumberOfBits, optimalNumberOfHashFunctions);
  
      bloomFilter.falsePositiveRate = acceptableFalsePositiveRate;
  
      return bloomFilter;
    }
docs: Factory method used to construct an instance of the {@link SimpleBloomFilter} class initialized with
  an approximate, estimated number of elements that the user expects will be added to the {@link BloomFilter}
  along with the desired, acceptable false positive rate.
  
  @param <T> {@link Class type} of elements added/evaluated by this Bloom Filter.
  @param approximateNumberOfElements integer value indicating the approximate, estimated number of elements
  the user expects will be added to the returned {@link SimpleBloomFilter} instance.
  @param acceptableFalsePositiveRate a floating point value indicating the acceptable percentage of false positives
  returned by the constructed {@link SimpleBloomFilter}.
  @throws IllegalArgumentException if the approximate number of elements is less than equal to 0 or the acceptable,
  false positive rate is less than equal to 0.0 or greater than equal to 1.0.
  @return a new instance of {@link SimpleBloomFilter}.
  @see #computeRequiredNumberOfBits(double, double)
  @see #computeOptimalNumberOfHashFunctions(double, double)
  @see org.cp.elements.data.struct.SimpleBloomFilter