common/bloom_filter: make mode match formatting

3 space tabs.. blech.  Let's not change it now, though.

Signed-off-by: Sage Weil <sage@inktank.com>
common/bloom_filter: make optimal parameter calculation static

We pass the ctor our target behavior and calculate parameters based on
that.  Avoid storing the target behavior, and make that calc a static
method.  And add a new ctor that takes the parameters explicitly.

Signed-off-by: Sage Weil <sage@inktank.com>
common/bloom_filter: make bloom_filter encodable

Signed-off-by: Sage Weil <sage@inktank.com>
common/bloom_filter: move header from include/

Signed-off-by: Sage Weil <sage@inktank.com>
common/bloom_filter: unit tests

Fun facts:

- fpp = false positive probability
- fpp is a function of insert count only
- at .1% fpp, we pay about 2 bytes per insert
- at 1-2% fpp, we pay about 1 byte per insert
- at 15% fpp, we pay about .5 bytes per insert

Signed-off-by: Sage Weil <sage@inktank.com>
common/bloom_filter: test behavior of sequences of bloom filters

Signed-off-by: Sage Weil <sage@inktank.com>
common/bloom_filter: fix whitespace

Signed-off-by: Sage Weil <sage@inktank.com>
COPYING: make note of common/bloom_filer.hpp (boost) license

Signed-off-by: Sage Weil <sage@inktank.com>
common/bloom_filter: insert/contains methods for uint32_t

This will let us pass in an hobject_t::hash directly (for example) without
rehashing a string.

Signed-off-by: Sage Weil <sage@inktank.com>
common/bloom_filter: disable sequential tests

These are slow and are not useful.

Signed-off-by: Sage Weil <sage@inktank.com>
common/bloom_filter: test binning fpp behavior

Signed-off-by: Sage Weil <sage@inktank.com>
common/bloom_filter: speed up unit tests a bit

Signed-off-by: Sage Weil <sage@inktank.com>
common/bloom_filter: note that uint32_t interface requires well-mixed values

Signed-off-by: Sage Weil <sage@inktank.com>
Merge pull request #638 from ceph/wip-bloom

bloom filter cleanups, encodability, and unit tests