-
Notifications
You must be signed in to change notification settings - Fork 0
/
murmurhash3.min.js
1 lines (1 loc) · 966 Bytes
/
murmurhash3.min.js
1
var MurmurHash3={mul32:function(m,n){var nlo=n&0xffff;var nhi=n-nlo;return((nhi*m|0)+(nlo*m|0))|0;},hashBytes:function(data,len,seed){var c1=0xcc9e2d51,c2=0x1b873593;var h1=seed;var roundedEnd=len&~0x3;for(var i=0;i<roundedEnd;i+=4){var k1=(data.charCodeAt(i)&0xff)|((data.charCodeAt(i+1)&0xff)<<8)|((data.charCodeAt(i+2)&0xff)<<16)|((data.charCodeAt(i+3)&0xff)<<24);k1=this.mul32(k1,c1);k1=((k1&0x1ffff)<<15)|(k1>>>17);k1=this.mul32(k1,c2);h1^=k1;h1=((h1&0x7ffff)<<13)|(h1>>>19);h1=(h1*5+0xe6546b64)|0;}k1=0;switch(len%4){case 3:k1=(data.charCodeAt(roundedEnd+2)&0xff)<<16;case 2:k1|=(data.charCodeAt(roundedEnd+1)&0xff)<<8;case 1:k1|=(data.charCodeAt(roundedEnd)&0xff);k1=this.mul32(k1,c1);k1=((k1&0x1ffff)<<15)|(k1>>>17);k1=this.mul32(k1,c2);h1^=k1;}h1^=len;h1^=h1>>>16;h1=this.mul32(h1,0x85ebca6b);h1^=h1>>>13;h1=this.mul32(h1,0xc2b2ae35);h1^=h1>>>16;return h1;},};if(typeof module!=="undefined"&&typeof module.exports!=="undefined"){module.exports=MurmurHash3;}