I just checked this again, and this function I quoted above is compressible_bloom_filter::compresss(). Unless the call graph is *really* bizarre, we're sending in numbers that are too large.
Looking at it more it does look like it's a relative ratio though, so passing in .5 definitely isn't correct either. So I think maybe just taking off the 100x multiple does what we want; if our target value was correct we get .5 out of bloom.density() and multiply by 2 to get 1.0, which is a null-op.