UNPKG

alea-generator

Version:

A performant and effective random number generator

3 lines (2 loc) 915 B
var t=Number.EPSILON/2,r=Math.pow(2,-32),n=function(n){void 0===n&&(n=""+Date.now());var e=function(){var t=4022871197;return function(n){for(var e=n.toString(),a=0;a<e.length;a++){var u=.02519603282416938*(t+=e.charCodeAt(a));u-=t=u>>>0,t=(u*=t)>>>0,t+=4294967296*(u-=t)}return(t>>>0)*r}}(),a=[e(" "),e(" "),e(" "),1];a[0]-=e(n),a[0]<0&&(a[0]+=1),a[1]-=e(n),a[1]<0&&(a[1]+=1),a[2]-=e(n),a[2]<0&&(a[2]+=1);var u={random:function(){var t=2091639*a[0]+a[3]*r;return a[0]=a[1],a[1]=a[2],a[2]=t-(a[3]=Math.floor(t))},uint32:function(){return 4294967296*u.random()},fract53:function(){return u.random()+Math.trunc(2097152*u.random())*t},exportState:function(){return{seed0:a[0],seed1:a[1],seed2:a[2],constant:a[3]}},importState:function(t){var r=[t.seed0,t.seed1,t.seed2,t.constant];a[0]=r[0],a[1]=r[1],a[2]=r[2],a[3]=r[3]}};return u},e=n().random;exports.alea=e,exports.aleaFactory=n; //# sourceMappingURL=alea.cjs.map