func (this *PartitionedBloom) Reset() { this.k = bloom.K(this.e) this.m = bloom.M(this.n, this.p, this.e) this.s = bloom.S(this.m, this.k) this.b = makePartitions(this.k, this.s) this.bs = make([]uint, this.k) if this.h == nil { this.h = fnv.New64() } else { this.h.Reset() } }
// New initializes a new partitioned bloom filter. // n is the number of items this bloom filter predicted to hold. func New(n uint) bloom.Bloom { var ( p float64 = 0.5 e float64 = 0.001 k uint = bloom.K(e) m uint = bloom.M(n, p, e) s uint = bloom.S(m, k) ) return &PartitionedBloom{ h: fnv.New64(), n: n, p: p, e: e, k: k, m: m, s: s, b: makePartitions(k, s), bs: make([]uint, k), } }