alea-generator
Version:
A performant and effective random number generator
3 lines (2 loc) • 848 B
JavaScript
const t=Number.EPSILON/2,e=(e=`${Date.now()}`)=>{const r=(()=>{let t=4022871197;return e=>{const r=e.toString();for(var n=0;n<r.length;n++){t+=r.charCodeAt(n);var o=.02519603282416938*t;t=o>>>0,o-=t,t=(o*=t)>>>0,t+=4294967296*(o-=t)}return 2.3283064365386963e-10*(t>>>0)}})(),n=[r(" "),r(" "),r(" "),1];n[0]-=r(e),n[0]<0&&(n[0]+=1),n[1]-=r(e),n[1]<0&&(n[1]+=1),n[2]-=r(e),n[2]<0&&(n[2]+=1);const o={random:()=>{const t=2091639*n[0]+2.3283064365386963e-10*n[3];return n[0]=n[1],n[1]=n[2],n[2]=t-(n[3]=Math.floor(t))},uint32:()=>4294967296*o.random(),fract53:()=>o.random()+Math.trunc(2097152*o.random())*t,exportState:()=>({seed0:n[0],seed1:n[1],seed2:n[2],constant:n[3]}),importState:t=>{[n[0],n[1],n[2],n[3]]=[t.seed0,t.seed1,t.seed2,t.constant]}};return o},r=e().random;export{r as alea,e as aleaFactory};
//# sourceMappingURL=alea.modern.js.map