Skip to content

Commit e658ffd

Browse files
authored
bench: update random value generation
PR-URL: #6856 Reviewed-by: Athan Reines <[email protected]>
1 parent 22c4c3e commit e658ffd

File tree

15 files changed

+200
-222
lines changed

15 files changed

+200
-222
lines changed

lib/node_modules/@stdlib/stats/base/dists/binomial/kurtosis/benchmark/benchmark.js

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var Float64Array = require( '@stdlib/array/float64' );
25-
var uniform = require( '@stdlib/random/base/uniform' );
26-
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
24+
var uniform = require( '@stdlib/random/array/uniform' );
25+
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
2726
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2827
var pkg = require( './../package.json' ).name;
2928
var kurtosis = require( './../lib' );
@@ -32,23 +31,21 @@ var kurtosis = require( './../lib' );
3231
// MAIN //
3332

3433
bench( pkg, function benchmark( b ) {
35-
var len;
34+
var opts;
3635
var n;
3736
var p;
3837
var y;
3938
var i;
4039

41-
len = 100;
42-
n = new Float64Array( len );
43-
p = new Float64Array( len );
44-
for ( i = 0; i < len; i++ ) {
45-
n[ i ] = discreteUniform( 1, 100 );
46-
p[ i ] = uniform( 0.0, 1.0 );
47-
}
40+
opts = {
41+
'dtype': 'float64'
42+
};
43+
n = discreteUniform( 100, 1, 100, opts );
44+
p = uniform( 100, 0.0, 1.0, opts );
4845

4946
b.tic();
5047
for ( i = 0; i < b.iterations; i++ ) {
51-
y = kurtosis( n[ i % len ], p[ i % len ] );
48+
y = kurtosis( n[ i % n.length ], p[ i % p.length ] );
5249
if ( isnan( y ) ) {
5350
b.fail( 'should not return NaN' );
5451
}

lib/node_modules/@stdlib/stats/base/dists/binomial/kurtosis/benchmark/benchmark.native.js

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
25-
var Float64Array = require( '@stdlib/array/float64' );
2625
var tryRequire = require( '@stdlib/utils/try-require' );
27-
var uniform = require( '@stdlib/random/base/uniform' );
28-
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
26+
var uniform = require( '@stdlib/random/array/uniform' );
27+
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
2928
var isnan = require( '@stdlib/math/base/assert/is-nan' );
3029
var pkg = require( './../package.json' ).name;
3130

@@ -41,22 +40,21 @@ var opts = {
4140
// MAIN //
4241

4342
bench( pkg+'::native', opts, function benchmark( b ) {
44-
var len;
43+
var opts;
4544
var n;
4645
var p;
4746
var y;
4847
var i;
4948

50-
n = new Float64Array( len );
51-
p = new Float64Array( len );
52-
for ( i = 0; i < len; i++ ) {
53-
n[ i ] = discreteUniform( 1, 100 );
54-
p[ i ] = uniform( 0.0, 1.0 );
55-
}
49+
opts = {
50+
'dtype': 'float64'
51+
};
52+
n = discreteUniform( 1000, 1, 100, opts );
53+
p = uniform( 1000, 0.0, 1.0, opts );
5654

5755
b.tic();
5856
for ( i = 0; i < b.iterations; i++ ) {
59-
y = kurtosis( n[ i % len ], p[ i % len ] );
57+
y = kurtosis( n[ i % n.length ], p[ i % p.length ] );
6058
if ( isnan( y ) ) {
6159
b.fail( 'should not return NaN' );
6260
}

lib/node_modules/@stdlib/stats/base/dists/binomial/kurtosis/test/test.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,13 @@ tape( 'main export is a function', function test( t ) {
4444

4545
tape( 'if provided `NaN` for any parameter, the function returns `NaN`', function test( t ) {
4646
var v = kurtosis( NaN, 0.5 );
47-
t.equal( isnan( v ), true, 'returns NaN' );
47+
t.equal( isnan( v ), true, 'returns expected value' );
4848

4949
v = kurtosis( 10, NaN );
50-
t.equal( isnan( v ), true, 'returns NaN' );
50+
t.equal( isnan( v ), true, 'returns expected value' );
5151

5252
v = kurtosis( NaN, NaN );
53-
t.equal( isnan( v ), true, 'returns NaN' );
53+
t.equal( isnan( v ), true, 'returns expected value' );
5454

5555
t.end();
5656
});
@@ -59,19 +59,19 @@ tape( 'if provided an `n` which is not a nonnegative integer, the function retur
5959
var v;
6060

6161
v = kurtosis( 1.5, 0.5 );
62-
t.equal( isnan( v ), true, 'returns NaN' );
62+
t.equal( isnan( v ), true, 'returns expected value' );
6363

6464
v = kurtosis( -2, 0.5 );
65-
t.equal( isnan( v ), true, 'returns NaN' );
65+
t.equal( isnan( v ), true, 'returns expected value' );
6666

6767
v = kurtosis( -1, 0.5 );
68-
t.equal( isnan( v ), true, 'returns NaN' );
68+
t.equal( isnan( v ), true, 'returns expected value' );
6969

7070
v = kurtosis( 2.5, 0.5 );
71-
t.equal( isnan( v ), true, 'returns NaN' );
71+
t.equal( isnan( v ), true, 'returns expected value' );
7272

7373
v = kurtosis( PINF, 0.5 );
74-
t.equal( isnan( v ), true, 'returns NaN' );
74+
t.equal( isnan( v ), true, 'returns expected value' );
7575

7676
t.end();
7777
});
@@ -80,16 +80,16 @@ tape( 'if provided a success probability `p` outside of `[0,1]`, the function re
8080
var v;
8181

8282
v = kurtosis( 20, -1.0 );
83-
t.equal( isnan( v ), true, 'returns NaN' );
83+
t.equal( isnan( v ), true, 'returns expected value' );
8484

8585
v = kurtosis( 20, 1.5 );
86-
t.equal( isnan( v ), true, 'returns NaN' );
86+
t.equal( isnan( v ), true, 'returns expected value' );
8787

8888
v = kurtosis( 20, NINF );
89-
t.equal( isnan( v ), true, 'returns NaN' );
89+
t.equal( isnan( v ), true, 'returns expected value' );
9090

9191
v = kurtosis( 20, PINF );
92-
t.equal( isnan( v ), true, 'returns NaN' );
92+
t.equal( isnan( v ), true, 'returns expected value' );
9393

9494
t.end();
9595
});

lib/node_modules/@stdlib/stats/base/dists/binomial/kurtosis/test/test.native.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@ tape( 'main export is a function', opts, function test( t ) {
5353

5454
tape( 'if provided `NaN` for any parameter, the function returns `NaN`', opts, function test( t ) {
5555
var v = kurtosis( 10, NaN );
56-
t.equal( isnan( v ), true, 'returns NaN' );
56+
t.equal( isnan( v ), true, 'returns expected value' );
5757

5858
v = kurtosis( NaN, NaN );
59-
t.equal( isnan( v ), true, 'returns NaN' );
59+
t.equal( isnan( v ), true, 'returns expected value' );
6060

6161
t.end();
6262
});
@@ -65,10 +65,10 @@ tape( 'if provided an `n` which is not a nonnegative integer, the function retur
6565
var v;
6666

6767
v = kurtosis( -2, 0.5 );
68-
t.equal( isnan( v ), true, 'returns NaN' );
68+
t.equal( isnan( v ), true, 'returns expected value' );
6969

7070
v = kurtosis( -1, 0.5 );
71-
t.equal( isnan( v ), true, 'returns NaN' );
71+
t.equal( isnan( v ), true, 'returns expected value' );
7272

7373
t.end();
7474
});
@@ -77,16 +77,16 @@ tape( 'if provided a success probability `p` outside of `[0,1]`, the function re
7777
var v;
7878

7979
v = kurtosis( 20, -1.0 );
80-
t.equal( isnan( v ), true, 'returns NaN' );
80+
t.equal( isnan( v ), true, 'returns expected value' );
8181

8282
v = kurtosis( 20, 1.5 );
83-
t.equal( isnan( v ), true, 'returns NaN' );
83+
t.equal( isnan( v ), true, 'returns expected value' );
8484

8585
v = kurtosis( 20, NINF );
86-
t.equal( isnan( v ), true, 'returns NaN' );
86+
t.equal( isnan( v ), true, 'returns expected value' );
8787

8888
v = kurtosis( 20, PINF );
89-
t.equal( isnan( v ), true, 'returns NaN' );
89+
t.equal( isnan( v ), true, 'returns expected value' );
9090

9191
t.end();
9292
});

lib/node_modules/@stdlib/stats/base/dists/binomial/logpmf/benchmark/benchmark.js

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var Float64Array = require( '@stdlib/array/float64' );
25-
var uniform = require( '@stdlib/random/base/uniform' );
26-
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
24+
var uniform = require( '@stdlib/random/array/uniform' );
25+
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
2726
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2827
var pkg = require( './../package.json' ).name;
2928
var logpmf = require( './../lib' );
@@ -32,26 +31,23 @@ var logpmf = require( './../lib' );
3231
// MAIN //
3332

3433
bench( pkg, function benchmark( b ) {
35-
var len;
34+
var opts;
3635
var n;
3736
var p;
3837
var x;
3938
var y;
4039
var i;
4140

42-
len = 100;
43-
x = new Float64Array( len );
44-
n = new Float64Array( len );
45-
p = new Float64Array( len );
46-
for ( i = 0; i < len; i++ ) {
47-
x[ i ] = discreteUniform( 0, 50 );
48-
n[ i ] = discreteUniform( 1, 100 );
49-
p[ i ] = uniform( 0.0, 1.0 );
50-
}
41+
opts = {
42+
'dtype': 'float64'
43+
};
44+
x = discreteUniform( 100, 1, 50, opts );
45+
n = discreteUniform( 100, 1, 100, opts );
46+
p = uniform( 100, 0.0, 1.0, opts );
5147

5248
b.tic();
5349
for ( i = 0; i < b.iterations; i++ ) {
54-
y = logpmf( x[ i % len ], n[ i % len ], p[ i % len ] );
50+
y = logpmf( x[ i % x.length ], n[ i % n.length ], p[ i % p.length ] );
5551
if ( isnan( y ) ) {
5652
b.fail( 'should not return NaN' );
5753
}
@@ -66,25 +62,25 @@ bench( pkg, function benchmark( b ) {
6662

6763
bench( pkg+':factory', function benchmark( b ) {
6864
var mypmf;
69-
var len;
65+
var opts;
7066
var n;
7167
var p;
7268
var x;
7369
var y;
7470
var i;
7571

72+
opts = {
73+
'dtype': 'float64'
74+
};
75+
x = discreteUniform( 100, 1, 80, opts );
76+
7677
n = 80;
7778
p = 0.4;
7879
mypmf = logpmf.factory( n, p );
79-
len = 100;
80-
x = new Float64Array( len );
81-
for ( i = 0; i < len; i++ ) {
82-
x[ i ] = discreteUniform( 0, 80 );
83-
}
8480

8581
b.tic();
8682
for ( i = 0; i < b.iterations; i++ ) {
87-
y = mypmf( x[ i % len ] );
83+
y = mypmf( x[ i % x.length ] );
8884
if ( isnan( y ) ) {
8985
b.fail( 'should not return NaN' );
9086
}

0 commit comments

Comments
 (0)