bloom refactor.

This commit is contained in:
Christopher Jeffrey 2016-04-01 21:25:48 -07:00
parent c9bdad9bdf
commit 73832de55f

View File

@ -23,7 +23,7 @@ function Bloom(size, n, tweak) {
}
Bloom.prototype.hash = function hash(val, n) {
return Bloom.hash(val, sum32(mul32(n, 0xfba4c795), this.tweak)) % this.size;
return murmur(val, sum32(mul32(n, 0xfba4c795), this.tweak)) % this.size;
};
Bloom.prototype.reset = function reset() {
@ -72,10 +72,11 @@ function mul32(a, b) {
var blo = b & 0xffff;
var ahi = a >>> 16;
var bhi = b >>> 16;
var r;
var r, lo, hi;
lo = alo * blo;
hi = (ahi * blo + bhi * alo) & 0xffff;
var lo = alo * blo;
var hi = (ahi * blo + bhi * alo) & 0xffff;
hi += lo >>> 16;
lo &= 0xffff;
r = (hi << 16) | lo;
@ -99,20 +100,18 @@ function rotl32(w, b) {
return (w << b) | (w >>> (32 - b));
}
function hash(data, seed) {
data = utils.toBuffer(data);
function murmur(data, seed) {
var c1 = 0xcc9e2d51;
var c2 = 0x1b873593;
var r1 = 15;
var r2 = 13;
var m = 5;
var n = 0xe6546b64;
var hash = seed;
var i, w, r, j;
data = utils.toBuffer(data);
for (i = 0; i + 4 <= data.length; i += 4) {
w = data[i]
| (data[i + 1] << 8)
@ -156,7 +155,7 @@ function hash(data, seed) {
return hash;
}
Bloom.hash = hash;
Bloom.hash = murmur;
/**
* Expose