Cardinality estimates are taken from Theorem 1 on page 15 of "Cardinality estimation and dynamic length adaptation for Bloom filters" by Papapetrou, Siberski, and Nejdl: http://www.softnet.tuc.gr/~papapetrou/publications/Bloomfilters-DAPD.pdf
Cardinality estimates are taken from Theorem 1 on page 15 of "Cardinality estimation and dynamic length adaptation for Bloom filters" by Papapetrou, Siberski, and Nejdl: http://www.softnet.tuc.gr/~papapetrou/publications/Bloomfilters-DAPD.pdf
Roughly, by using bounds on the expected number of true bits after n elements have been inserted into the Bloom filter, we can go from the actual number of true bits (which is known) to an estimate of the cardinality.
approximationWidth defines an interval around the maximum-likelihood cardinality estimate. Namely, the approximation returned is of the form (min, estimate, max) = ((1 - approxWidth) * estimate, estimate, (1 + approxWidth) * estimate)