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) • 7.84 kB
JavaScript
function e(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var t,c,a=[],o=!0,u=!1;try{for(r=r.call(e);!(o=(t=r.next()).done)&&(a.push(t.value),!n||a.length!==n);o=!0);}catch(e){u=!0,c=e}finally{try{o||null==r.return||r.return()}finally{if(u)throw c}}return a}(e,r)||function(e,r){if(!e)return;if("string"==typeof e)return n(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return n(e,r)}(e,r)||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 n(e,n){(null==n||n>e.length)&&(n=e.length);for(var r=0,t=new Array(n);r<n;r++)t[r]=e[r];return t}function r(e,n){return(65535&(e|=0))*(n|=0)+(((e>>>16)*n&65535)<<16)|0}function t(e,n){return e[n++]+(e[n++]<<8)+(e[n++]<<16)+(e[n++]<<24)}function c(e){return e=r(e^=e>>>16,2246822507),e=r(e^=e>>>13,3266489909),e^=e>>>16}function a(e,n){return e<<n|e>>>32-n}function o(n){var r=e(n,4),t=r[0],c=r[1],a=r[2],o=r[3],u="00000000";return(u+(t>>>0).toString(16)).slice(-8)+(u+(c>>>0).toString(16)).slice(-8)+(u+(a>>>0).toString(16)).slice(-8)+(u+(o>>>0).toString(16)).slice(-8)}function u(e){if(void 0!==e&&e%1!=0)throw new TypeError("Expected seed to be an integer, float given")}function i(e,n){if("string"!=typeof e)throw new TypeError("".concat(n,"(): first argument is not a string."))}function s(e){for(var n=e.length,r=-1,t=new Uint8Array(3*n),c=0;c!==n;){var a=e.charCodeAt(c);if(c+=1,a>=55296&&a<=56319){if(c===n){t[r+=1]=239,t[r+=1]=191,t[r+=1]=189;break}var o=e.charCodeAt(c);if(!(o>=56320&&o<=57343)){t[r+=1]=239,t[r+=1]=191,t[r+=1]=189;continue}if(c+=1,(a=1024*(a-55296)+o-56320+65536)>65535){t[r+=1]=240|a>>>18,t[r+=1]=128|a>>>12&63,t[r+=1]=128|a>>>6&63,t[r+=1]=128|63&a;continue}}a<=127?t[r+=1]=0|a:a<=2047?(t[r+=1]=192|a>>>6,t[r+=1]=128|63&a):(t[r+=1]=224|a>>>12,t[r+=1]=128|a>>>6&63,t[r+=1]=128|63&a)}return t.subarray(0,r+1)}function f(e){for(var n=new Uint8Array(e.length),r=0;r<e.length;r+=1){var t=e.charCodeAt(r);if(t<0||t>127)return s(e);n[r]=t}return n}var l,h,g,v,y,d,m,p=(l=Math.pow(2,-32),h=Math.pow(2,32),function(e){var n=1,r=0,t=0,c=0;function a(e){return function(e){if(e%1!=0||e<=0)throw new TypeError('Expected seed to be an unsigned integer greater or equal 1, but got "'.concat(e,'"'))}(e),r=(e>>>0)*l,t=(e=69069*e+1>>>0)*l,c=(e=69069*e+1>>>0)*l,n=1,e}function o(){var e=2091639*r+n*l;return r=t,t=c,c=e-(n=0|e)}return a(void 0===e?1:e),{setSeed:a,uFloat32:o,uInt32:function(){return o()*h>>>0},getState:function(){return{correction:n,sequence:[r,t,c]}},setState:function(e){(e=e||{correction:1,sequence:[0,0,0]}).sequence=e.sequence||[],n=e.correction||1,r=e.sequence[0]||0,t=e.sequence[1]||0,c=e.sequence[2]||0}}}),w=(g=1540483477,v=function(e,n){return e[n++]+(e[n]<<8)},function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;i(e,"murmurhash2_x86_32"),u(n);for(var c=f(e),a=0,o=n^c.length,s=c.length;s>=4;){var l=t(c,a);l=r(l,g),l=r(l^=l>>>24,g),o=r(o,g),o^=l,a+=4,s-=4}switch(s){case 3:o^=v(c,a),o=r(o^=c[a+2]<<16,g);break;case 2:o=r(o^=v(c,a),g);break;case 1:o=r(o^=c[a],g)}return o=r(o^=o>>>13,g),(o^=o>>>15)>>>0}),b=(y=3432918353,d=461845907,m=3864292196,function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;i(e,"murmurhash3_x86_32"),u(n);for(var o=f(e),s=o.length%4,l=o.length-s,h=0,g=0,v=n;g<l;)h=r(h=t(o,g),y),h=r(h=a(h,15),d),v=r(v=a(v^=h,13),5)+m,g+=4;switch(h=0,s){case 3:h^=(255&o[g+2])<<16;case 2:h^=(255&o[g+1])<<8;case 1:h=r(h^=o[g],y),v^=h=r(h=a(h,15),d)}return(v=c(v^=o.length))>>>0}),S=function(){var e=597399067,n=2869860233,t=951274213,s=2716044179,l=1444728091,h=197830471,g=2530024501,v=850148119;return function(y){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;i(y,"murmurhash3_x86_128"),u(d);for(var m=f(y),p=m.length%16,w=m.length-p,b=d,S=d,A=d,q=d,x=0,_=0,E=0,C=0,I=0;I<w;)x=255&m[I]|(255&m[I+1])<<8|(255&m[I+2])<<16|(255&m[I+3])<<24,_=255&m[I+4]|(255&m[I+5])<<8|(255&m[I+6])<<16|(255&m[I+7])<<24,E=255&m[I+8]|(255&m[I+9])<<8|(255&m[I+10])<<16|(255&m[I+11])<<24,C=255&m[I+12]|(255&m[I+13])<<8|(255&m[I+14])<<16|(255&m[I+15])<<24,x=a(x=r(x,e),15),b=a(b^=x=r(x,n),19),b=r(b+=S,5)+l,_=a(_=r(_,n),16),S=a(S^=_=r(_,t),17),S=r(S+=A,5)+h,E=a(E=r(E,t),17),A=a(A^=E=r(E,s),15),A=r(A+=q,5)+g,C=a(C=r(C,s),18),q=a(q^=C=r(C,e),13),q=r(q+=b,5)+v,I+=16;switch(x=0,_=0,E=0,C=0,p){case 15:C^=m[I+14]<<16;case 14:C^=m[I+13]<<8;case 13:C=r(C^=m[I+12],s),q^=C=r(C=a(C,18),e);case 12:E^=m[I+11]<<24;case 11:E^=m[I+10]<<16;case 10:E^=m[I+9]<<8;case 9:E=r(E^=m[I+8],t),A^=E=r(E=a(E,17),s);case 8:_^=m[I+7]<<24;case 7:_^=m[I+6]<<16;case 6:_^=m[I+5]<<8;case 5:_=r(_^=m[I+4],n),S^=_=r(_=a(_,16),t);case 4:x^=m[I+3]<<24;case 3:x^=m[I+2]<<16;case 2:x^=m[I+1]<<8;case 1:x=r(x^=m[I],e),b^=x=r(x=a(x,15),n)}return b^=m.length,b+=S^=m.length,b+=A^=m.length,S+=b+=q^=m.length,A+=b,q+=b,b=c(b),b+=S=c(S),b+=A=c(A),o([b+=q=c(q),S+=b,A+=b,q+=b])}}(),A=function(){var e=[2277735313,289559509],n=[1291169091,658871167],r=65535;function t(e,n){var t=[0,0,0,0];return e=[e[0]>>>16,e[0]&r,e[1]>>>16,e[1]&r],n=[n[0]>>>16,n[0]&r,n[1]>>>16,n[1]&r],t[3]+=e[3]*n[3],t[2]+=t[3]>>>16,t[3]&=r,t[2]+=e[2]*n[3],t[1]+=t[2]>>>16,t[2]&=r,t[2]+=e[3]*n[2],t[1]+=t[2]>>>16,t[2]&=r,t[1]+=e[1]*n[3],t[0]+=t[1]>>>16,t[1]&=r,t[1]+=e[2]*n[2],t[0]+=t[1]>>>16,t[1]&=r,t[1]+=e[3]*n[1],t[0]+=t[1]>>>16,t[1]&=r,t[0]+=e[0]*n[3]+e[1]*n[2]+e[2]*n[1]+e[3]*n[0],t[0]&=r,[t[0]<<16|t[1],t[2]<<16|t[3]]}function c(e,n){var t=[0,0,0,0];return e=[e[0]>>>16,e[0]&r,e[1]>>>16,e[1]&r],n=[n[0]>>>16,n[0]&r,n[1]>>>16,n[1]&r],t[3]+=e[3]+n[3],t[2]+=t[3]>>>16,t[3]&=r,t[2]+=e[2]+n[2],t[1]+=t[2]>>>16,t[2]&=r,t[1]+=e[1]+n[1],t[0]+=t[1]>>>16,t[1]&=r,t[0]+=e[0]+n[0],t[0]&=r,[t[0]<<16|t[1],t[2]<<16|t[3]]}function a(e,n){return(n%=64)<32?[e[0]<<n|e[1]>>>32-n,e[1]<<n|e[0]>>>32-n]:(n-=32,[e[1]<<n|e[0]>>>32-n,e[0]<<n|e[1]>>>32-n])}function s(e,n){return(n%=64)<32?[e[0]<<n|e[1]>>>32-n,e[1]<<n]:[e[1]<<n-32,0]}function l(e,n){return[e[0]^n[0],e[1]^n[1]]}function h(e){return e=l(e,[0,e[0]>>>1]),e=l(e=t(e,[4283543511,3981806797]),[0,e[0]>>>1]),e=l(e=t(e,[3301882366,444984403]),[0,e[0]>>>1])}return function(r){var g=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;i(r,"murmurhash3_x64_128"),u(g);for(var v=f(r),y=v.length%16,d=v.length-y,m=[0,g],p=[0,g],w=[0,0],b=[0,0],S=0;S<d;)w=[255&v[S+4]|(255&v[S+5])<<8|(255&v[S+6])<<16|(255&v[S+7])<<24,255&v[S]|(255&v[S+1])<<8|(255&v[S+2])<<16|(255&v[S+3])<<24],b=[255&v[S+12]|(255&v[S+13])<<8|(255&v[S+14])<<16|(255&v[S+15])<<24,255&v[S+8]|(255&v[S+9])<<8|(255&v[S+10])<<16|(255&v[S+11])<<24],w=a(w=t(w,e),31),m=c(m=a(m=l(m,w=t(w,n)),27),p),m=c(t(m,[0,5]),[0,1390208809]),b=a(b=t(b,n),33),p=c(p=a(p=l(p,b=t(b,e)),31),m),p=c(t(p,[0,5]),[0,944331445]),S+=16;switch(w=[0,0],b=[0,0],y){case 15:b=l(b,s([0,v[S+14]],48));case 14:b=l(b,s([0,v[S+13]],40));case 13:b=l(b,s([0,v[S+12]],32));case 12:b=l(b,s([0,v[S+11]],24));case 11:b=l(b,s([0,v[S+10]],16));case 10:b=l(b,s([0,v[S+9]],8));case 9:b=t(b=l(b,[0,v[S+8]]),n),p=l(p,b=t(b=a(b,33),e));case 8:w=l(w,s([0,v[S+7]],56));case 7:w=l(w,s([0,v[S+6]],48));case 6:w=l(w,s([0,v[S+5]],40));case 5:w=l(w,s([0,v[S+4]],32));case 4:w=l(w,s([0,v[S+3]],24));case 3:w=l(w,s([0,v[S+2]],16));case 2:w=l(w,s([0,v[S+1]],8));case 1:w=t(w=l(w,[0,v[S]]),e),m=l(m,w=t(w=a(w,31),n))}return m=c(m=l(m,[0,v.length]),p=l(p,[0,v.length])),p=c(p,m),m=c(m=h(m),p=h(p)),p=c(p,m),o([m[0],m[1],p[0],p[1]])}}();export{p as aleaRNGFactory,w as murmurhash2_x86_32,A as murmurhash3_x64_128,S as murmurhash3_x86_128,b as murmurhash3_x86_32};
//# sourceMappingURL=index.esm.js.map