bloom refactor.
This commit is contained in:
parent
c9bdad9bdf
commit
73832de55f
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user