number-generator
Version:
Generate repeatable pseudo random numbers and non-cryptographic hash numbers for usage in Node.js and browser environments.
3 lines (2 loc) • 4.64 kB
JavaScript
;function r(r,n){return function(r){if(Array.isArray(r))return r}(r)||function(r,t){var n=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null==n)return;var e,o,a=[],i=!0,u=!1;try{for(n=n.call(r);!(i=(e=n.next()).done)&&(a.push(e.value),!t||a.length!==t);i=!0);}catch(r){u=!0,o=r}finally{try{i||null==n.return||n.return()}finally{if(u)throw o}}return a}(r,n)||function(r,n){if(!r)return;if("string"==typeof r)return t(r,n);var e=Object.prototype.toString.call(r).slice(8,-1);"Object"===e&&r.constructor&&(e=r.constructor.name);if("Map"===e||"Set"===e)return Array.from(r);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return t(r,n)}(r,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function t(r,t){(null==t||t>r.length)&&(t=r.length);for(var n=0,e=new Array(t);n<t;n++)e[n]=r[n];return e}function n(t){var n=r(t,4),e=n[0],o=n[1],a=n[2],i=n[3],u="00000000";return(u+(e>>>0).toString(16)).slice(-8)+(u+(o>>>0).toString(16)).slice(-8)+(u+(a>>>0).toString(16)).slice(-8)+(u+(i>>>0).toString(16)).slice(-8)}function e(r){if(void 0!==r&&r%1!=0)throw new TypeError("Expected seed to be an integer, float given")}function o(r,t){if("string"!=typeof r)throw new TypeError("".concat(t,"(): first argument is not a string."))}function a(r){for(var t=r.length,n=-1,e=new Uint8Array(3*t),o=0;o!==t;){var a=r.charCodeAt(o);if(o+=1,a>=55296&&a<=56319){if(o===t){e[n+=1]=239,e[n+=1]=191,e[n+=1]=189;break}var i=r.charCodeAt(o);if(!(i>=56320&&i<=57343)){e[n+=1]=239,e[n+=1]=191,e[n+=1]=189;continue}if(o+=1,(a=1024*(a-55296)+i-56320+65536)>65535){e[n+=1]=240|a>>>18,e[n+=1]=128|a>>>12&63,e[n+=1]=128|a>>>6&63,e[n+=1]=128|63&a;continue}}a<=127?e[n+=1]=0|a:a<=2047?(e[n+=1]=192|a>>>6,e[n+=1]=128|63&a):(e[n+=1]=224|a>>>12,e[n+=1]=128|a>>>6&63,e[n+=1]=128|63&a)}return e.subarray(0,n+1)}function i(r){for(var t=new Uint8Array(r.length),n=0;n<r.length;n+=1){var e=r.charCodeAt(n);if(e<0||e>127)return a(r);t[n]=e}return t}var u=function(){var r=[2277735313,289559509],t=[1291169091,658871167],a=65535;function u(r,t){var n=[0,0,0,0];return r=[r[0]>>>16,r[0]&a,r[1]>>>16,r[1]&a],t=[t[0]>>>16,t[0]&a,t[1]>>>16,t[1]&a],n[3]+=r[3]*t[3],n[2]+=n[3]>>>16,n[3]&=a,n[2]+=r[2]*t[3],n[1]+=n[2]>>>16,n[2]&=a,n[2]+=r[3]*t[2],n[1]+=n[2]>>>16,n[2]&=a,n[1]+=r[1]*t[3],n[0]+=n[1]>>>16,n[1]&=a,n[1]+=r[2]*t[2],n[0]+=n[1]>>>16,n[1]&=a,n[1]+=r[3]*t[1],n[0]+=n[1]>>>16,n[1]&=a,n[0]+=r[0]*t[3]+r[1]*t[2]+r[2]*t[1]+r[3]*t[0],n[0]&=a,[n[0]<<16|n[1],n[2]<<16|n[3]]}function c(r,t){var n=[0,0,0,0];return r=[r[0]>>>16,r[0]&a,r[1]>>>16,r[1]&a],t=[t[0]>>>16,t[0]&a,t[1]>>>16,t[1]&a],n[3]+=r[3]+t[3],n[2]+=n[3]>>>16,n[3]&=a,n[2]+=r[2]+t[2],n[1]+=n[2]>>>16,n[2]&=a,n[1]+=r[1]+t[1],n[0]+=n[1]>>>16,n[1]&=a,n[0]+=r[0]+t[0],n[0]&=a,[n[0]<<16|n[1],n[2]<<16|n[3]]}function f(r,t){return(t%=64)<32?[r[0]<<t|r[1]>>>32-t,r[1]<<t|r[0]>>>32-t]:(t-=32,[r[1]<<t|r[0]>>>32-t,r[0]<<t|r[1]>>>32-t])}function l(r,t){return(t%=64)<32?[r[0]<<t|r[1]>>>32-t,r[1]<<t]:[r[1]<<t-32,0]}function s(r,t){return[r[0]^t[0],r[1]^t[1]]}function h(r){return r=s(r,[0,r[0]>>>1]),r=s(r=u(r,[4283543511,3981806797]),[0,r[0]>>>1]),r=s(r=u(r,[3301882366,444984403]),[0,r[0]>>>1])}return function(a){var g=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;o(a,"murmurhash3_x64_128"),e(g);for(var y=i(a),v=y.length%16,d=y.length-v,m=[0,g],p=[0,g],b=[0,0],w=[0,0],A=0;A<d;)b=[255&y[A+4]|(255&y[A+5])<<8|(255&y[A+6])<<16|(255&y[A+7])<<24,255&y[A]|(255&y[A+1])<<8|(255&y[A+2])<<16|(255&y[A+3])<<24],w=[255&y[A+12]|(255&y[A+13])<<8|(255&y[A+14])<<16|(255&y[A+15])<<24,255&y[A+8]|(255&y[A+9])<<8|(255&y[A+10])<<16|(255&y[A+11])<<24],b=f(b=u(b,r),31),m=c(m=f(m=s(m,b=u(b,t)),27),p),m=c(u(m,[0,5]),[0,1390208809]),w=f(w=u(w,t),33),p=c(p=f(p=s(p,w=u(w,r)),31),m),p=c(u(p,[0,5]),[0,944331445]),A+=16;switch(b=[0,0],w=[0,0],v){case 15:w=s(w,l([0,y[A+14]],48));case 14:w=s(w,l([0,y[A+13]],40));case 13:w=s(w,l([0,y[A+12]],32));case 12:w=s(w,l([0,y[A+11]],24));case 11:w=s(w,l([0,y[A+10]],16));case 10:w=s(w,l([0,y[A+9]],8));case 9:w=u(w=s(w,[0,y[A+8]]),t),p=s(p,w=u(w=f(w,33),r));case 8:b=s(b,l([0,y[A+7]],56));case 7:b=s(b,l([0,y[A+6]],48));case 6:b=s(b,l([0,y[A+5]],40));case 5:b=s(b,l([0,y[A+4]],32));case 4:b=s(b,l([0,y[A+3]],24));case 3:b=s(b,l([0,y[A+2]],16));case 2:b=s(b,l([0,y[A+1]],8));case 1:b=u(b=s(b,[0,y[A]]),r),m=s(m,b=u(b=f(b,31),t))}return m=c(m=s(m,[0,y.length]),p=s(p,[0,y.length])),p=c(p,m),m=c(m=h(m),p=h(p)),p=c(p,m),n([m[0],m[1],p[0],p[1]])}}();module.exports=u;
//# sourceMappingURL=murmurhash3_x64_128.js.map