Socket
Socket
Sign inDemoInstall

seedrandom

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

seedrandom - npm Package Compare versions

Comparing version 2.4.0 to 2.4.1

lib/alea.js

1

Gruntfile.js

@@ -25,2 +25,3 @@ module.exports = function(grunt) {

"<%= pkg.name %>.min.js": [ "<%= pkg.name %>.js" ],
"lib/alea.min.js": [ "lib/alea.js" ],
"lib/tychei.min.js": [ "lib/tychei.js" ],

@@ -27,0 +28,0 @@ "lib/xor4096.min.js": [ "lib/xor4096.js" ],

@@ -10,2 +10,7 @@ // A library of seedable RNGs implemented in Javascript.

// alea, a 53-bit multiply-with-carry generator by Johannes Baagøe.
// Period: ~2^116
// Reported to pass all BigCrush tests.
var alea = require('./lib/alea');
// xor128, a pure xor-shift generator by George Marsaglia.

@@ -49,2 +54,3 @@ // Period: 2^128-1.

sr.alea = alea;
sr.xor128 = xor128;

@@ -51,0 +57,0 @@ sr.xorwow = xorwow;

6

lib/tychei.js

@@ -46,3 +46,3 @@ // A Javascript implementaion of the "Tyche-i" prng algorithm by

// Integer seed.
me.a = (seed / ((1 << 30) * 4)) | 0;
me.a = (seed / 0x100000000) | 0;
me.b = seed | 0;

@@ -72,7 +72,7 @@ } else {

state = opts && opts.state,
prng = function() { return (xg.next() >>> 0) / ((1 << 30) * 4); };
prng = function() { return (xg.next() >>> 0) / 0x100000000; };
prng.double = function() {
do {
var top = xg.next() >>> 11,
bot = (xg.next() >>> 0) / ((1 << 30) * 4),
bot = (xg.next() >>> 0) / 0x100000000,
result = (top + bot) / (1 << 21);

@@ -79,0 +79,0 @@ } while (result === 0);

@@ -1,1 +0,1 @@

!function(a,b,c){function d(a){var b=this,c="";b.next=function(){var a=b.b,c=b.c,d=b.d,e=b.a;return a=a<<25^a>>>7^c,c=c-d|0,d=d<<24^d>>>8^e,e=e-a|0,b.b=a=a<<20^a>>>12^c,b.c=c=c-d|0,b.d=d<<16^c>>>16^e,b.a=e-a|0},b.a=0,b.b=0,b.c=-1640531527,b.d=1367130551,a===Math.floor(a)?(b.a=a/(4*(1<<30))|0,b.b=0|a):c+=a;for(var d=0;d<c.length+20;d++)b.b^=0|c.charCodeAt(d),b.next()}function e(a,b){return b.a=a.a,b.b=a.b,b.c=a.c,b.d=a.d,b}function f(a,b){var c=new d(a),f=b&&b.state,g=function(){return(c.next()>>>0)/(4*(1<<30))};return g["double"]=function(){do var a=c.next()>>>11,b=(c.next()>>>0)/(4*(1<<30)),d=(a+b)/(1<<21);while(0===d);return d},g.int32=c.next,g.quick=g,f&&("object"==typeof f&&e(f,c),g.state=function(){return e(c,{})}),g}b&&b.exports?b.exports=f:c&&c.amd?c(function(){return f}):this.tychei=f}(this,"object"==typeof module&&module,"function"==typeof define&&define);
!function(a,b,c){function d(a){var b=this,c="";b.next=function(){var a=b.b,c=b.c,d=b.d,e=b.a;return a=a<<25^a>>>7^c,c=c-d|0,d=d<<24^d>>>8^e,e=e-a|0,b.b=a=a<<20^a>>>12^c,b.c=c=c-d|0,b.d=d<<16^c>>>16^e,b.a=e-a|0},b.a=0,b.b=0,b.c=-1640531527,b.d=1367130551,a===Math.floor(a)?(b.a=a/4294967296|0,b.b=0|a):c+=a;for(var d=0;d<c.length+20;d++)b.b^=0|c.charCodeAt(d),b.next()}function e(a,b){return b.a=a.a,b.b=a.b,b.c=a.c,b.d=a.d,b}function f(a,b){var c=new d(a),f=b&&b.state,g=function(){return(c.next()>>>0)/4294967296};return g["double"]=function(){do var a=c.next()>>>11,b=(c.next()>>>0)/4294967296,d=(a+b)/(1<<21);while(0===d);return d},g.int32=c.next,g.quick=g,f&&("object"==typeof f&&e(f,c),g.state=function(){return e(c,{})}),g}b&&b.exports?b.exports=f:c&&c.amd?c(function(){return f}):this.tychei=f}(this,"object"==typeof module&&module,"function"==typeof define&&define);

@@ -49,7 +49,7 @@ // A Javascript implementaion of the "xor128" prng algorithm by

state = opts && opts.state,
prng = function() { return (xg.next() >>> 0) / ((1 << 30) * 4); };
prng = function() { return (xg.next() >>> 0) / 0x100000000; };
prng.double = function() {
do {
var top = xg.next() >>> 11,
bot = (xg.next() >>> 0) / ((1 << 30) * 4),
bot = (xg.next() >>> 0) / 0x100000000,
result = (top + bot) / (1 << 21);

@@ -56,0 +56,0 @@ } while (result === 0);

@@ -1,1 +0,1 @@

!function(a,b,c){function d(a){var b=this,c="";b.x=0,b.y=0,b.z=0,b.w=0,b.next=function(){var a=b.x^b.x<<11;return b.x=b.y,b.y=b.z,b.z=b.w,b.w^=b.w>>>19^a^a>>>8},a===(0|a)?b.x=a:c+=a;for(var d=0;d<c.length+64;d++)b.x^=0|c.charCodeAt(d),b.next()}function e(a,b){return b.x=a.x,b.y=a.y,b.z=a.z,b.w=a.w,b}function f(a,b){var c=new d(a),f=b&&b.state,g=function(){return(c.next()>>>0)/(4*(1<<30))};return g["double"]=function(){do var a=c.next()>>>11,b=(c.next()>>>0)/(4*(1<<30)),d=(a+b)/(1<<21);while(0===d);return d},g.int32=c.next,g.quick=g,f&&("object"==typeof f&&e(f,c),g.state=function(){return e(c,{})}),g}b&&b.exports?b.exports=f:c&&c.amd?c(function(){return f}):this.xor128=f}(this,"object"==typeof module&&module,"function"==typeof define&&define);
!function(a,b,c){function d(a){var b=this,c="";b.x=0,b.y=0,b.z=0,b.w=0,b.next=function(){var a=b.x^b.x<<11;return b.x=b.y,b.y=b.z,b.z=b.w,b.w^=b.w>>>19^a^a>>>8},a===(0|a)?b.x=a:c+=a;for(var d=0;d<c.length+64;d++)b.x^=0|c.charCodeAt(d),b.next()}function e(a,b){return b.x=a.x,b.y=a.y,b.z=a.z,b.w=a.w,b}function f(a,b){var c=new d(a),f=b&&b.state,g=function(){return(c.next()>>>0)/4294967296};return g["double"]=function(){do var a=c.next()>>>11,b=(c.next()>>>0)/4294967296,d=(a+b)/(1<<21);while(0===d);return d},g.int32=c.next,g.quick=g,f&&("object"==typeof f&&e(f,c),g.state=function(){return e(c,{})}),g}b&&b.exports?b.exports=f:c&&c.amd?c(function(){return f}):this.xor128=f}(this,"object"==typeof module&&module,"function"==typeof define&&define);

@@ -116,7 +116,7 @@ // A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.

state = opts && opts.state,
prng = function() { return (xg.next() >>> 0) / ((1 << 30) * 4); };
prng = function() { return (xg.next() >>> 0) / 0x100000000; };
prng.double = function() {
do {
var top = xg.next() >>> 11,
bot = (xg.next() >>> 0) / ((1 << 30) * 4),
bot = (xg.next() >>> 0) / 0x100000000,
result = (top + bot) / (1 << 21);

@@ -123,0 +123,0 @@ } while (result === 0);

@@ -1,1 +0,1 @@

!function(a,b,c){function d(a){function b(a,b){var c,d,e,f,g,h=[],i=128;for(b===(0|b)?(d=b,b=null):(b+="\x00",d=0,i=Math.max(i,b.length)),e=0,f=-32;i>f;++f)b&&(d^=b.charCodeAt((f+32)%b.length)),0===f&&(g=d),d^=d<<10,d^=d>>>15,d^=d<<4,d^=d>>>13,f>=0&&(g=g+1640531527|0,c=h[127&f]^=d+g,e=0==c?e+1:0);for(e>=128&&(h[127&(b&&b.length||0)]=-1),e=127,f=512;f>0;--f)d=h[e+34&127],c=h[e=e+1&127],d^=d<<13,c^=c<<17,d^=d>>>15,c^=c>>>12,h[e]=d^c;a.w=g,a.X=h,a.i=e}var c=this;c.next=function(){var a,b,d=c.w,e=c.X,f=c.i;return c.w=d=d+1640531527|0,b=e[f+34&127],a=e[f=f+1&127],b^=b<<13,a^=a<<17,b^=b>>>15,a^=a>>>12,b=e[f]=b^a,c.i=f,b+(d^d>>>16)|0},b(c,a)}function e(a,b){return b.i=a.i,b.w=a.w,b.X=a.X.slice(),b}function f(a,b){null==a&&(a=+new Date);var c=new d(a),f=b&&b.state,g=function(){return(c.next()>>>0)/(4*(1<<30))};return g["double"]=function(){do var a=c.next()>>>11,b=(c.next()>>>0)/(4*(1<<30)),d=(a+b)/(1<<21);while(0===d);return d},g.int32=c.next,g.quick=g,f&&(f.X&&e(f,c),g.state=function(){return e(c,{})}),g}b&&b.exports?b.exports=f:c&&c.amd?c(function(){return f}):this.xor4096=f}(this,"object"==typeof module&&module,"function"==typeof define&&define);
!function(a,b,c){function d(a){function b(a,b){var c,d,e,f,g,h=[],i=128;for(b===(0|b)?(d=b,b=null):(b+="\x00",d=0,i=Math.max(i,b.length)),e=0,f=-32;i>f;++f)b&&(d^=b.charCodeAt((f+32)%b.length)),0===f&&(g=d),d^=d<<10,d^=d>>>15,d^=d<<4,d^=d>>>13,f>=0&&(g=g+1640531527|0,c=h[127&f]^=d+g,e=0==c?e+1:0);for(e>=128&&(h[127&(b&&b.length||0)]=-1),e=127,f=512;f>0;--f)d=h[e+34&127],c=h[e=e+1&127],d^=d<<13,c^=c<<17,d^=d>>>15,c^=c>>>12,h[e]=d^c;a.w=g,a.X=h,a.i=e}var c=this;c.next=function(){var a,b,d=c.w,e=c.X,f=c.i;return c.w=d=d+1640531527|0,b=e[f+34&127],a=e[f=f+1&127],b^=b<<13,a^=a<<17,b^=b>>>15,a^=a>>>12,b=e[f]=b^a,c.i=f,b+(d^d>>>16)|0},b(c,a)}function e(a,b){return b.i=a.i,b.w=a.w,b.X=a.X.slice(),b}function f(a,b){null==a&&(a=+new Date);var c=new d(a),f=b&&b.state,g=function(){return(c.next()>>>0)/4294967296};return g["double"]=function(){do var a=c.next()>>>11,b=(c.next()>>>0)/4294967296,d=(a+b)/(1<<21);while(0===d);return d},g.int32=c.next,g.quick=g,f&&(f.X&&e(f,c),g.state=function(){return e(c,{})}),g}b&&b.exports?b.exports=f:c&&c.amd?c(function(){return f}):this.xor4096=f}(this,"object"==typeof module&&module,"function"==typeof define&&define);

@@ -66,7 +66,7 @@ // A Javascript implementaion of the "xorshift7" algorithm by

state = opts && opts.state,
prng = function() { return (xg.next() >>> 0) / ((1 << 30) * 4); };
prng = function() { return (xg.next() >>> 0) / 0x100000000; };
prng.double = function() {
do {
var top = xg.next() >>> 11,
bot = (xg.next() >>> 0) / ((1 << 30) * 4),
bot = (xg.next() >>> 0) / 0x100000000,
result = (top + bot) / (1 << 21);

@@ -73,0 +73,0 @@ } while (result === 0);

@@ -1,1 +0,1 @@

!function(a,b,c){function d(a){function b(a,b){var c,d,e=[];if(b===(0|b))d=e[0]=b;else for(b=""+b,c=0;c<b.length;++c)e[7&c]=e[7&c]<<15^b.charCodeAt(c)+e[c+1&7]<<13;for(;e.length<8;)e.push(0);for(c=0;8>c&&0===e[c];++c);for(d=8==c?e[7]=-1:e[c],a.x=e,a.i=0,c=256;c>0;--c)a.next()}var c=this;c.next=function(){var a,b,d=c.x,e=c.i;return a=d[e],a^=a>>>7,b=a^a<<24,a=d[e+1&7],b^=a^a>>>10,a=d[e+3&7],b^=a^a>>>3,a=d[e+4&7],b^=a^a<<7,a=d[e+7&7],a^=a<<13,b^=a^a<<9,d[e]=b,c.i=e+1&7,b},b(c,a)}function e(a,b){return b.x=a.x.slice(),b.i=a.i,b}function f(a,b){null==a&&(a=+new Date);var c=new d(a),f=b&&b.state,g=function(){return(c.next()>>>0)/(4*(1<<30))};return g["double"]=function(){do var a=c.next()>>>11,b=(c.next()>>>0)/(4*(1<<30)),d=(a+b)/(1<<21);while(0===d);return d},g.int32=c.next,g.quick=g,f&&(f.x&&e(f,c),g.state=function(){return e(c,{})}),g}b&&b.exports?b.exports=f:c&&c.amd?c(function(){return f}):this.xorshift7=f}(this,"object"==typeof module&&module,"function"==typeof define&&define);
!function(a,b,c){function d(a){function b(a,b){var c,d,e=[];if(b===(0|b))d=e[0]=b;else for(b=""+b,c=0;c<b.length;++c)e[7&c]=e[7&c]<<15^b.charCodeAt(c)+e[c+1&7]<<13;for(;e.length<8;)e.push(0);for(c=0;8>c&&0===e[c];++c);for(d=8==c?e[7]=-1:e[c],a.x=e,a.i=0,c=256;c>0;--c)a.next()}var c=this;c.next=function(){var a,b,d=c.x,e=c.i;return a=d[e],a^=a>>>7,b=a^a<<24,a=d[e+1&7],b^=a^a>>>10,a=d[e+3&7],b^=a^a>>>3,a=d[e+4&7],b^=a^a<<7,a=d[e+7&7],a^=a<<13,b^=a^a<<9,d[e]=b,c.i=e+1&7,b},b(c,a)}function e(a,b){return b.x=a.x.slice(),b.i=a.i,b}function f(a,b){null==a&&(a=+new Date);var c=new d(a),f=b&&b.state,g=function(){return(c.next()>>>0)/4294967296};return g["double"]=function(){do var a=c.next()>>>11,b=(c.next()>>>0)/4294967296,d=(a+b)/(1<<21);while(0===d);return d},g.int32=c.next,g.quick=g,f&&(f.x&&e(f,c),g.state=function(){return e(c,{})}),g}b&&b.exports?b.exports=f:c&&c.amd?c(function(){return f}):this.xorshift7=f}(this,"object"==typeof module&&module,"function"==typeof define&&define);

@@ -54,7 +54,7 @@ // A Javascript implementaion of the "xorwow" prng algorithm by

state = opts && opts.state,
prng = function() { return (xg.next() >>> 0) / ((1 << 30) * 4); };
prng = function() { return (xg.next() >>> 0) / 0x100000000; };
prng.double = function() {
do {
var top = xg.next() >>> 11,
bot = (xg.next() >>> 0) / ((1 << 30) * 4),
bot = (xg.next() >>> 0) / 0x100000000,
result = (top + bot) / (1 << 21);

@@ -61,0 +61,0 @@ } while (result === 0);

@@ -1,1 +0,1 @@

!function(a,b,c){function d(a){var b=this,c="";b.next=function(){var a=b.x^b.x>>>2;return b.x=b.y,b.y=b.z,b.z=b.w,b.w=b.v,(b.d=b.d+362437|0)+(b.v=b.v^b.v<<4^(a^a<<1))|0},b.x=0,b.y=0,b.z=0,b.w=0,b.v=0,a===(0|a)?b.x=a:c+=a;for(var d=0;d<c.length+64;d++)b.x^=0|c.charCodeAt(d),d==c.length&&(b.d=b.x<<10^b.x>>>4),b.next()}function e(a,b){return b.x=a.x,b.y=a.y,b.z=a.z,b.w=a.w,b.v=a.v,b.d=a.d,b}function f(a,b){var c=new d(a),f=b&&b.state,g=function(){return(c.next()>>>0)/(4*(1<<30))};return g["double"]=function(){do var a=c.next()>>>11,b=(c.next()>>>0)/(4*(1<<30)),d=(a+b)/(1<<21);while(0===d);return d},g.int32=c.next,g.quick=g,f&&("object"==typeof f&&e(f,c),g.state=function(){return e(c,{})}),g}b&&b.exports?b.exports=f:c&&c.amd?c(function(){return f}):this.xorwow=f}(this,"object"==typeof module&&module,"function"==typeof define&&define);
!function(a,b,c){function d(a){var b=this,c="";b.next=function(){var a=b.x^b.x>>>2;return b.x=b.y,b.y=b.z,b.z=b.w,b.w=b.v,(b.d=b.d+362437|0)+(b.v=b.v^b.v<<4^(a^a<<1))|0},b.x=0,b.y=0,b.z=0,b.w=0,b.v=0,a===(0|a)?b.x=a:c+=a;for(var d=0;d<c.length+64;d++)b.x^=0|c.charCodeAt(d),d==c.length&&(b.d=b.x<<10^b.x>>>4),b.next()}function e(a,b){return b.x=a.x,b.y=a.y,b.z=a.z,b.w=a.w,b.v=a.v,b.d=a.d,b}function f(a,b){var c=new d(a),f=b&&b.state,g=function(){return(c.next()>>>0)/4294967296};return g["double"]=function(){do var a=c.next()>>>11,b=(c.next()>>>0)/4294967296,d=(a+b)/(1<<21);while(0===d);return d},g.int32=c.next,g.quick=g,f&&("object"==typeof f&&e(f,c),g.state=function(){return e(c,{})}),g}b&&b.exports?b.exports=f:c&&c.amd?c(function(){return f}):this.xorwow=f}(this,"object"==typeof module&&module,"function"==typeof define&&define);
{
"name": "seedrandom",
"version": "2.4.0",
"version": "2.4.1",
"description": "Seeded random number generator for Javascript.",
"main": "index.js",
"keywords": [

@@ -29,2 +28,3 @@ "random",

"seedrandom.js",
"lib/alea.js",
"lib/xor128.js",

@@ -31,0 +31,0 @@ "lib/xorwow.js",

@@ -71,10 +71,9 @@ seedrandom.js

// By default provides 32 bits of randomness in a float.
console.log(xorgen()); //
console.log(xorgen()); // Always 0.9798525865189731
// Use "double" to get 56 bits of randomness.
console.log(xorgen.double()); //
console.log(xorgen.double()); // Always 0.03583478477375346
// Use "int32" to get a 32 bit (signed) integer.
console.log(xorgen.int32()); //
console.log(xorgen.int32()); // Always 1341429986
````

@@ -86,10 +85,12 @@

|-----------|----------------|-------------|----------------------|
|`xor128` | 5.30 ns, 1.3x | 2^128-1 | Marsaglia |
|`xorwow` | 5.65 ns, 1.4x | 2^192-2^32 | Marsaglia |
|`xorshift7`| 6.70 ns, 1.6x | 2^256-1 | Panneton/L'ecuyer |
|`tychei` | 11.35 ns, 2.8x | ~2^127 | Neves/Araujo (ChaCha)|
|`quick` | 12.20 ns, 3.0x | ~2^1600 | Bau (ARC4) |
|`xor4096` | 20.70 ns, 5.0x | 2^4096-2^32 | Brent (xorgens) |
|`alea` | 1.95 ns, 0.9x | ~2^116 | Baggoe |
|`xor128` | 2.04 ns, 0.9x | 2^128-1 | Marsaglia |
|`tychei` | 2.32 ns, 1.1x | ~2^127 | Neves/Araujo (ChaCha)|
|`xorwow` | 2.40 ns, 1.1x | 2^192-2^32 | Marsaglia |
|`xor4096` | 2.40 ns, 1.1x | 2^4096-2^32 | Brent (xorgens) |
|`xorshift7`| 2.64 ns, 1.3x | 2^256-1 | Panneton/L'ecuyer |
|`quick` | 3.80 ns, 1.8x | ~2^1600 | Bau (ARC4) |
(`quick` is just the 32-bit version of the RC4-based PRNG
(Timings were done on node v0.12.2 on a single-core Google Compute Engine
instance. `quick` is just the 32-bit version of the RC4-based PRNG
originally packaged with seedrandom.)

@@ -96,0 +97,0 @@

@@ -76,3 +76,3 @@ /*

prng.int32 = function() { return arc4.g(4) | 0; }
prng.quick = function() { return arc4.g(4) / ((1 << 30) * 4); }
prng.quick = function() { return arc4.g(4) / 0x100000000; }
prng.double = prng;

@@ -79,0 +79,0 @@

@@ -1,1 +0,1 @@

!function(a,b){function c(c,j,k){var n=[];j=1==j?{entropy:!0}:j||{};var s=g(f(j.entropy?[c,i(a)]:null==c?h():c,3),n),t=new d(n),u=function(){for(var a=t.g(m),b=p,c=0;q>a;)a=(a+c)*l,b*=l,c=t.g(1);for(;a>=r;)a/=2,b/=2,c>>>=1;return(a+c)/b};return u.int32=function(){return 0|t.g(4)},u.quick=function(){return t.g(4)/(4*(1<<30))},u["double"]=u,g(i(t.S),a),(j.pass||k||function(a,c,d,f){return f&&(f.S&&e(f,t),a.state=function(){return e(t,{})}),d?(b[o]=a,c):a})(u,s,"global"in j?j.global:this==b,j.state)}function d(a){var b,c=a.length,d=this,e=0,f=d.i=d.j=0,g=d.S=[];for(c||(a=[c++]);l>e;)g[e]=e++;for(e=0;l>e;e++)g[e]=g[f=s&f+a[e%c]+(b=g[e])],g[f]=b;(d.g=function(a){for(var b,c=0,e=d.i,f=d.j,g=d.S;a--;)b=g[e=s&e+1],c=c*l+g[s&(g[e]=g[f=s&f+b])+(g[f]=b)];return d.i=e,d.j=f,c})(l)}function e(a,b){return b.i=a.i,b.j=a.j,b.S=a.S.slice(),b}function f(a,b){var c,d=[],e=typeof a;if(b&&"object"==e)for(c in a)try{d.push(f(a[c],b-1))}catch(g){}return d.length?d:"string"==e?a:a+"\0"}function g(a,b){for(var c,d=a+"",e=0;e<d.length;)b[s&e]=s&(c^=19*b[s&e])+d.charCodeAt(e++);return i(b)}function h(){try{if(j)return i(j.randomBytes(l));var b=new Uint8Array(l);return(k.crypto||k.msCrypto).getRandomValues(b),i(b)}catch(c){var d=k.navigator,e=d&&d.plugins;return[+new Date,k,e,k.screen,i(a)]}}function i(a){return String.fromCharCode.apply(0,a)}var j,k=this,l=256,m=6,n=52,o="random",p=b.pow(l,m),q=b.pow(2,n),r=2*q,s=l-1;if(b["seed"+o]=c,g(b.random(),a),"object"==typeof module&&module.exports){module.exports=c;try{j=require("crypto")}catch(t){}}else"function"==typeof define&&define.amd&&define(function(){return c})}([],Math);
!function(a,b){function c(c,j,k){var n=[];j=1==j?{entropy:!0}:j||{};var s=g(f(j.entropy?[c,i(a)]:null==c?h():c,3),n),t=new d(n),u=function(){for(var a=t.g(m),b=p,c=0;q>a;)a=(a+c)*l,b*=l,c=t.g(1);for(;a>=r;)a/=2,b/=2,c>>>=1;return(a+c)/b};return u.int32=function(){return 0|t.g(4)},u.quick=function(){return t.g(4)/4294967296},u["double"]=u,g(i(t.S),a),(j.pass||k||function(a,c,d,f){return f&&(f.S&&e(f,t),a.state=function(){return e(t,{})}),d?(b[o]=a,c):a})(u,s,"global"in j?j.global:this==b,j.state)}function d(a){var b,c=a.length,d=this,e=0,f=d.i=d.j=0,g=d.S=[];for(c||(a=[c++]);l>e;)g[e]=e++;for(e=0;l>e;e++)g[e]=g[f=s&f+a[e%c]+(b=g[e])],g[f]=b;(d.g=function(a){for(var b,c=0,e=d.i,f=d.j,g=d.S;a--;)b=g[e=s&e+1],c=c*l+g[s&(g[e]=g[f=s&f+b])+(g[f]=b)];return d.i=e,d.j=f,c})(l)}function e(a,b){return b.i=a.i,b.j=a.j,b.S=a.S.slice(),b}function f(a,b){var c,d=[],e=typeof a;if(b&&"object"==e)for(c in a)try{d.push(f(a[c],b-1))}catch(g){}return d.length?d:"string"==e?a:a+"\0"}function g(a,b){for(var c,d=a+"",e=0;e<d.length;)b[s&e]=s&(c^=19*b[s&e])+d.charCodeAt(e++);return i(b)}function h(){try{if(j)return i(j.randomBytes(l));var b=new Uint8Array(l);return(k.crypto||k.msCrypto).getRandomValues(b),i(b)}catch(c){var d=k.navigator,e=d&&d.plugins;return[+new Date,k,e,k.screen,i(a)]}}function i(a){return String.fromCharCode.apply(0,a)}var j,k=this,l=256,m=6,n=52,o="random",p=b.pow(l,m),q=b.pow(2,n),r=2*q,s=l-1;if(b["seed"+o]=c,g(b.random(),a),"object"==typeof module&&module.exports){module.exports=c;try{j=require("crypto")}catch(t){}}else"function"==typeof define&&define.amd&&define(function(){return c})}([],Math);

@@ -9,2 +9,3 @@ // A simple smoke test and benchmark for the generators.

var tychei = require('../lib/tychei');
var alea = require('../lib/alea');
var sr = require('../seedrandom');

@@ -42,3 +43,3 @@

}
if (hc !== null) {
if (hc != null) {
assert.equal(h, hc);

@@ -80,8 +81,11 @@ assert.equal(q, qc);

0.1520436450538547, 0.4206166828516871, 1312695376, 496, 241, 113, 142);
test("alea", alea,
0.5260470956849501, 0.47771977609954774, -1625913352, 494, 246, 125, 122);
it("runs benchmarks", function() {
this.timeout(50000);
this.slow(10000);
var n = 1;
var n = 4;
var trials = 10;
var top = 4;
this.timeout(200 * n * trials);
this.slow(30 * n * trials);
var fn, k, start, end, j, t;

@@ -107,3 +111,7 @@ for (k in benchmarks) {

function fastest(array) {
return (array[0] + array[1] + array[2] + array[3]) / 4;
var sum = 0;
for (var j = 0; j < top; ++j) {
sum += array[j];
}
return sum / top;
}

@@ -110,0 +118,0 @@ var nativetime = fastest(benchmarks.native.times);

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc