Skip to content

Commit 2e3e0e9

Browse files
bench: update random value generation for stats/base/dists/f
PR-URL: stdlib-js#10316 Reviewed-by: Philipp Burckhardt <pburckhardt@outlook.com>
1 parent 1ebdf55 commit 2e3e0e9

File tree

8 files changed

+90
-113
lines changed

8 files changed

+90
-113
lines changed

lib/node_modules/@stdlib/stats/base/dists/f/pdf/benchmark/benchmark.js

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -21,38 +21,35 @@
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 EPS = require( '@stdlib/constants/float64/eps' );
28+
var format = require( '@stdlib/string/format' );
2929
var pkg = require( './../package.json' ).name;
3030
var pdf = require( './../lib' );
3131

3232

3333
// MAIN //
3434

3535
bench( pkg, function benchmark( b ) {
36-
var len;
36+
var opts;
3737
var d1;
3838
var d2;
3939
var x;
4040
var y;
4141
var i;
4242

43-
len = 100;
44-
x = new Float64Array( len );
45-
d1 = new Float64Array( len );
46-
d2 = new Float64Array( len );
47-
for ( i = 0; i < len; i++ ) {
48-
x[ i ] = uniform( EPS, 100.0 );
49-
d1[ i ] = discreteUniform( 1, 100 );
50-
d2[ i ] = discreteUniform( 1, 100 );
51-
}
43+
opts = {
44+
'dtype': 'float64'
45+
};
46+
x = uniform( 100, EPS, 100.0, opts );
47+
d1 = discreteUniform( 100, 1, 100, opts );
48+
d2 = discreteUniform( 100, 1, 100, opts );
5249

5350
b.tic();
5451
for ( i = 0; i < b.iterations; i++ ) {
55-
y = pdf( x[ i % len ], d1[ i % len ], d2[ i % len ]);
52+
y = pdf( x[ i % x.length ], d1[ i % d1.length ], d2[ i % d2.length ] );
5653
if ( isnan( y ) ) {
5754
b.fail( 'should not return NaN' );
5855
}
@@ -65,27 +62,26 @@ bench( pkg, function benchmark( b ) {
6562
b.end();
6663
});
6764

68-
bench( pkg+':factory', function benchmark( b ) {
65+
bench( format( '%s::factory', pkg ), function benchmark( b ) {
6966
var mypdf;
70-
var len;
67+
var opts;
7168
var d1;
7269
var d2;
7370
var x;
7471
var y;
7572
var i;
7673

74+
opts = {
75+
'dtype': 'float64'
76+
};
7777
d1 = 1.5;
7878
d2 = 1.5;
7979
mypdf = pdf.factory( d1, d2 );
80-
len = 100;
81-
x = new Float64Array( len );
82-
for ( i = 0; i < len; i++ ) {
83-
x[ i ] = uniform( EPS, 20.0 );
84-
}
80+
x = uniform( 100, EPS, 20.0, opts );
8581

8682
b.tic();
8783
for ( i = 0; i < b.iterations; i++ ) {
88-
y = mypdf( x[ i % len ] );
84+
y = mypdf( x[ i % x.length ] );
8985
if ( isnan( y ) ) {
9086
b.fail( 'should not return NaN' );
9187
}

lib/node_modules/@stdlib/stats/base/dists/f/quantile/benchmark/benchmark.js

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -21,37 +21,34 @@
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' );
27+
var format = require( '@stdlib/string/format' );
2828
var pkg = require( './../package.json' ).name;
2929
var quantile = require( './../lib' );
3030

3131

3232
// MAIN //
3333

3434
bench( pkg, function benchmark( b ) {
35-
var len;
35+
var opts;
3636
var d1;
3737
var d2;
3838
var p;
3939
var y;
4040
var i;
4141

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

5249
b.tic();
5350
for ( i = 0; i < b.iterations; i++ ) {
54-
y = quantile( p[ i % len ], d1[ i % len ], d2[ i % len ]);
51+
y = quantile( p[ i % p.length ], d1[ i % d1.length ], d2[ i % d2.length ] );
5552
if ( isnan( y ) ) {
5653
b.fail( 'should not return NaN' );
5754
}
@@ -64,27 +61,26 @@ bench( pkg, function benchmark( b ) {
6461
b.end();
6562
});
6663

67-
bench( pkg+':factory', function benchmark( b ) {
64+
bench( format( '%s::factory', pkg ), function benchmark( b ) {
6865
var myquantile;
69-
var len;
66+
var opts;
7067
var d1;
7168
var d2;
7269
var p;
7370
var y;
7471
var i;
7572

73+
opts = {
74+
'dtype': 'float64'
75+
};
7676
d1 = 1.5;
7777
d2 = 1.5;
7878
myquantile = quantile.factory( d1, d2 );
79-
len = 100;
80-
p = new Float64Array( len );
81-
for ( i = 0; i < len; i++ ) {
82-
p[ i ] = uniform( 0.0, 1.0 );
83-
}
79+
p = uniform( 100, 0.0, 1.0, opts );
8480

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

lib/node_modules/@stdlib/stats/base/dists/f/skewness/benchmark/benchmark.js

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

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

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

41-
len = 100;
42-
d1 = new Float64Array( len );
43-
d2 = new Float64Array( len );
44-
for ( i = 0; i < len; i++ ) {
45-
d1[ i ] = uniform( EPS, 10.0 );
46-
d2[ i ] = uniform( 6.0 + EPS, 20.0 );
47-
}
40+
opts = {
41+
'dtype': 'float64'
42+
};
43+
d1 = uniform( 100, EPS, 10.0, opts );
44+
d2 = uniform( 100, 6.0 + EPS, 20.0, opts );
4845

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

lib/node_modules/@stdlib/stats/base/dists/f/skewness/benchmark/benchmark.native.js

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

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
25-
var Float64Array = require( '@stdlib/array/float64' );
26-
var uniform = require( '@stdlib/random/base/uniform' );
25+
var uniform = require( '@stdlib/random/array/uniform' );
2726
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2827
var EPS = require( '@stdlib/constants/float64/eps' );
2928
var tryRequire = require( '@stdlib/utils/try-require' );
29+
var format = require( '@stdlib/string/format' );
3030
var pkg = require( './../package.json' ).name;
3131

3232

@@ -40,24 +40,22 @@ var opts = {
4040

4141
// MAIN //
4242

43-
bench( pkg+'::native', opts, function benchmark( b ) {
44-
var len;
43+
bench( format( '%s::native', pkg ), opts, function benchmark( b ) {
44+
var opts;
4545
var d1;
4646
var d2;
4747
var y;
4848
var i;
4949

50-
len = 100;
51-
d1 = new Float64Array( len );
52-
d2 = new Float64Array( len );
53-
for ( i = 0; i < len; i++ ) {
54-
d1[ i ] = uniform( EPS, 10.0 );
55-
d2[ i ] = uniform( 6.0 + EPS, 20.0 );
56-
}
50+
opts = {
51+
'dtype': 'float64'
52+
};
53+
d1 = uniform( 100, EPS, 10.0, opts );
54+
d2 = uniform( 100, 6.0 + EPS, 20.0, opts );
5755

5856
b.tic();
5957
for ( i = 0; i < b.iterations; i++ ) {
60-
y = skewness( d1[ i % len ], d2[ i % len ] );
58+
y = skewness( d1[ i % d1.length ], d2[ i % d2.length ] );
6159
if ( isnan( y ) ) {
6260
b.fail( 'should not return NaN' );
6361
}

lib/node_modules/@stdlib/stats/base/dists/f/stdev/benchmark/benchmark.js

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

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

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

41-
len = 100;
42-
d1 = new Float64Array( len );
43-
d2 = new Float64Array( len );
44-
for ( i = 0; i < len; i++ ) {
45-
d1[ i ] = uniform( EPS, 10.0 );
46-
d2[ i ] = uniform( 4.0 + EPS, 20.0 );
47-
}
40+
opts = {
41+
'dtype': 'float64'
42+
};
43+
d1 = uniform( 100, EPS, 10.0, opts );
44+
d2 = uniform( 100, 4.0 + EPS, 20.0, opts );
4845

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

lib/node_modules/@stdlib/stats/base/dists/f/stdev/benchmark/benchmark.native.js

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

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
25-
var Float64Array = require( '@stdlib/array/float64' );
26-
var uniform = require( '@stdlib/random/base/uniform' );
25+
var uniform = require( '@stdlib/random/array/uniform' );
2726
var EPS = require( '@stdlib/constants/float64/eps' );
2827
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2928
var tryRequire = require( '@stdlib/utils/try-require' );
29+
var format = require( '@stdlib/string/format' );
3030
var pkg = require( './../package.json' ).name;
3131

3232

@@ -40,24 +40,22 @@ var opts = {
4040

4141
// MAIN //
4242

43-
bench( pkg+'::native', opts, function benchmark( b ) {
44-
var len;
43+
bench( format( '%s::native', pkg ), opts, function benchmark( b ) {
44+
var opts;
4545
var d1;
4646
var d2;
4747
var y;
4848
var i;
4949

50-
len = 100;
51-
d1 = new Float64Array( len );
52-
d2 = new Float64Array( len );
53-
for ( i = 0; i < len; i++ ) {
54-
d1[ i ] = uniform( EPS, 10.0 );
55-
d2[ i ] = uniform( 4.0 + EPS, 20.0 );
56-
}
50+
opts = {
51+
'dtype': 'float64'
52+
};
53+
d1 = uniform( 100, EPS, 10.0, opts );
54+
d2 = uniform( 100, 4.0 + EPS, 20.0, opts );
5755

5856
b.tic();
5957
for ( i = 0; i < b.iterations; i++ ) {
60-
y = stdev( d1[ i % len ], d2[ i % len ] );
58+
y = stdev( d1[ i % d1.length ], d2[ i % d2.length ] );
6159
if ( isnan( y ) ) {
6260
b.fail( 'should not return NaN' );
6361
}

lib/node_modules/@stdlib/stats/base/dists/f/variance/benchmark/benchmark.js

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

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

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

41-
len = 100;
42-
d1 = new Float64Array( len );
43-
d2 = new Float64Array( len );
44-
for ( i = 0; i < len; i++ ) {
45-
d1[ i ] = uniform( EPS, 10.0 );
46-
d2[ i ] = uniform( 4.0 + EPS, 20.0 );
47-
}
40+
opts = {
41+
'dtype': 'float64'
42+
};
43+
d1 = uniform( 100, EPS, 10.0, opts );
44+
d2 = uniform( 100, 4.0 + EPS, 20.0, opts );
4845

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

0 commit comments

Comments
 (0)