Skip to content

Commit 0c1fea4

Browse files
bench: update random value generation for stats/base/dists/levy
PR-URL: #10449 Co-authored-by: Philipp Burckhardt <pburckhardt@outlook.com> Reviewed-by: Philipp Burckhardt <pburckhardt@outlook.com> Signed-off-by: Philipp Burckhardt <pburckhardt@outlook.com>
1 parent 6d2d900 commit 0c1fea4

File tree

7 files changed

+79
-108
lines changed

7 files changed

+79
-108
lines changed

lib/node_modules/@stdlib/stats/base/dists/levy/cdf/benchmark/benchmark.js

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

2323
var bench = require( '@stdlib/bench' );
24-
var Float64Array = require( '@stdlib/array/float64' );
25-
var uniform = require( '@stdlib/random/base/uniform' );
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 format = require( '@stdlib/string/format' );
@@ -34,25 +33,22 @@ var cdf = require( './../lib' );
3433

3534
bench( pkg, function benchmark( b ) {
3635
var scale;
37-
var len;
36+
var opts;
3837
var mu;
3938
var x;
4039
var y;
4140
var i;
4241

43-
len = 100;
44-
mu = new Float64Array( len );
45-
scale = new Float64Array( len );
46-
x = new Float64Array( len );
47-
for ( i = 0; i < len; i++ ) {
48-
mu[ i ] = uniform( -50.0, 50.0 );
49-
x[ i ] = uniform( mu[ i ], 100.0 );
50-
scale[ i ] = uniform( EPS, 20.0 );
51-
}
42+
opts = {
43+
'dtype': 'float64'
44+
};
45+
mu = uniform( 100, -50.0, 50.0, opts );
46+
scale = uniform( 100, EPS, 20.0, opts );
47+
x = uniform( 100, 50.0, 150.0, opts );
5248

5349
b.tic();
5450
for ( i = 0; i < b.iterations; i++ ) {
55-
y = cdf( x[ i % len ], mu[ i % len ], scale[ i % len ] );
51+
y = cdf( x[ i % x.length ], mu[ i % mu.length ], scale[ i % scale.length ] );
5652
if ( isnan( y ) ) {
5753
b.fail( 'should not return NaN' );
5854
}
@@ -68,24 +64,23 @@ bench( pkg, function benchmark( b ) {
6864
bench( format( '%s:factory', pkg ), function benchmark( b ) {
6965
var mycdf;
7066
var scale;
71-
var len;
67+
var opts;
7268
var mu;
7369
var x;
7470
var y;
7571
var i;
7672

73+
opts = {
74+
'dtype': 'float64'
75+
};
7776
mu = 0.0;
7877
scale = 1.5;
79-
len = 100;
80-
x = new Float64Array( len );
78+
x = uniform( 100, 0.0, 4.0, opts );
8179
mycdf = cdf.factory( mu, scale );
82-
for ( i = 0; i < len; i++ ) {
83-
x[ i ] = uniform( 0.0, 4.0 );
84-
}
8580

8681
b.tic();
8782
for ( i = 0; i < b.iterations; i++ ) {
88-
y = mycdf( x[ i % len ] );
83+
y = mycdf( x[ i % x.length ] );
8984
if ( isnan( y ) ) {
9085
b.fail( 'should not return NaN' );
9186
}

lib/node_modules/@stdlib/stats/base/dists/levy/entropy/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 Float64Array = require( '@stdlib/array/float64' );
25-
var uniform = require( '@stdlib/random/base/uniform' );
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 entropy = require( './../lib' );
3231
// MAIN //
3332

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

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

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

lib/node_modules/@stdlib/stats/base/dists/levy/entropy/benchmark/benchmark.native.js

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
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' );
@@ -42,23 +41,21 @@ var opts = {
4241
// MAIN //
4342

4443
bench( format( '%s::native', pkg ), opts, function benchmark( b ) {
45-
var len;
44+
var opts;
4645
var mu;
4746
var c;
4847
var y;
4948
var i;
5049

51-
len = 100;
52-
mu = new Float64Array( len );
53-
c = new Float64Array( len );
54-
for ( i = 0; i < len; i++ ) {
55-
mu[ i ] = uniform( -50.0, 50.0 );
56-
c[ i ] = uniform( EPS, 20.0 );
57-
}
50+
opts = {
51+
'dtype': 'float64'
52+
};
53+
mu = uniform( 100, -50.0, 50.0, opts );
54+
c = uniform( 100, EPS, 20.0, opts );
5855

5956
b.tic();
6057
for ( i = 0; i < b.iterations; i++ ) {
61-
y = entropy( mu[ i % len ], c[ i % len ] );
58+
y = entropy( mu[ i % mu.length ], c[ i % c.length ] );
6259
if ( isnan( y ) ) {
6360
b.fail( 'should not return NaN' );
6461
}

lib/node_modules/@stdlib/stats/base/dists/levy/logcdf/benchmark/benchmark.js

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

2323
var bench = require( '@stdlib/bench' );
24-
var Float64Array = require( '@stdlib/array/float64' );
25-
var uniform = require( '@stdlib/random/base/uniform' );
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 format = require( '@stdlib/string/format' );
@@ -34,25 +33,22 @@ var logcdf = require( './../lib' );
3433

3534
bench( pkg, function benchmark( b ) {
3635
var scale;
37-
var len;
36+
var opts;
3837
var mu;
3938
var x;
4039
var y;
4140
var i;
4241

43-
len = 100;
44-
mu = new Float64Array( len );
45-
scale = new Float64Array( len );
46-
x = new Float64Array( len );
47-
for ( i = 0; i < len; i++ ) {
48-
mu[ i ] = uniform( -50.0, 50.0 );
49-
x[ i ] = uniform( mu[ i ], 100.0 );
50-
scale[ i ] = uniform( EPS, 20.0 );
51-
}
42+
opts = {
43+
'dtype': 'float64'
44+
};
45+
mu = uniform( 100, -50.0, 50.0, opts );
46+
scale = uniform( 100, EPS, 20.0, opts );
47+
x = uniform( 100, 50.0, 150.0, opts );
5248

5349
b.tic();
5450
for ( i = 0; i < b.iterations; i++ ) {
55-
y = logcdf( x[ i % len ], mu[ i % len ], scale[ i % len ] );
51+
y = logcdf( x[ i % x.length ], mu[ i % mu.length ], scale[ i % scale.length ] );
5652
if ( isnan( y ) ) {
5753
b.fail( 'should not return NaN' );
5854
}
@@ -68,24 +64,23 @@ bench( pkg, function benchmark( b ) {
6864
bench( format( '%s:factory', pkg ), function benchmark( b ) {
6965
var mylogcdf;
7066
var scale;
71-
var len;
67+
var opts;
7268
var mu;
7369
var x;
7470
var y;
7571
var i;
7672

73+
opts = {
74+
'dtype': 'float64'
75+
};
7776
mu = 0.0;
78-
len = 100;
7977
scale = 1.5;
8078
mylogcdf = logcdf.factory( mu, scale );
81-
x = new Float64Array( len );
82-
for ( i = 0; i < len; i++ ) {
83-
x[ i ] = uniform( 0.0, 4.0 );
84-
}
79+
x = uniform( 100, 0.0, 4.0, opts );
8580

8681
b.tic();
8782
for ( i = 0; i < b.iterations; i++ ) {
88-
y = mylogcdf( x[ i % len ] );
83+
y = mylogcdf( x[ i % x.length ] );
8984
if ( isnan( y ) ) {
9085
b.fail( 'should not return NaN' );
9186
}

lib/node_modules/@stdlib/stats/base/dists/levy/logcdf/benchmark/benchmark.native.js

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
2525
var tryRequire = require( '@stdlib/utils/try-require' );
26-
var Float64Array = require( '@stdlib/array/float64' );
27-
var uniform = require( '@stdlib/random/base/uniform' );
26+
var uniform = require( '@stdlib/random/array/uniform' );
2827
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2928
var EPS = require( '@stdlib/constants/float64/eps' );
3029
var pkg = require( './../package.json' ).name;
@@ -42,25 +41,22 @@ var opts = {
4241

4342
bench( pkg, opts, function benchmark( b ) {
4443
var scale;
45-
var len;
44+
var opts;
4645
var mu;
4746
var x;
4847
var y;
4948
var i;
5049

51-
len = 100;
52-
mu = new Float64Array( len );
53-
scale = new Float64Array( len );
54-
x = new Float64Array( len );
55-
for ( i = 0; i < len; i++ ) {
56-
mu[ i ] = uniform( -50.0, 50.0 );
57-
x[ i ] = uniform( mu[ i ] + EPS, mu[ i ] + 100.0 );
58-
scale[ i ] = uniform( EPS, 20.0 );
59-
}
50+
opts = {
51+
'dtype': 'float64'
52+
};
53+
mu = uniform( 100, -50.0, 50.0, opts );
54+
x = uniform( 100, 50.0, 150.0, opts );
55+
scale = uniform( 100, EPS + 50.0, 150.0, opts );
6056

6157
b.tic();
6258
for ( i = 0; i < b.iterations; i++ ) {
63-
y = logcdf( x[ i % len ], mu[ i % len ], scale[ i % len ] );
59+
y = logcdf( x[ i % x.length ], mu[ i % mu.length ], scale[ i % scale.length ] );
6460
if ( isnan( y ) ) {
6561
b.fail( 'should not return NaN' );
6662
}

lib/node_modules/@stdlib/stats/base/dists/levy/logpdf/benchmark/benchmark.js

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

2323
var bench = require( '@stdlib/bench' );
24-
var Float64Array = require( '@stdlib/array/float64' );
25-
var uniform = require( '@stdlib/random/base/uniform' );
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 format = require( '@stdlib/string/format' );
@@ -33,26 +32,23 @@ var logpdf = require( './../lib' );
3332
// MAIN //
3433

3534
bench( pkg, function benchmark( b ) {
36-
var len;
35+
var opts;
3736
var mu;
3837
var s;
3938
var x;
4039
var y;
4140
var i;
4241

43-
len = 100;
44-
mu = new Float64Array( len );
45-
s = new Float64Array( len );
46-
x = new Float64Array( len );
47-
for ( i = 0; i < len; i++ ) {
48-
mu[ i ] = uniform( -10.0, 10.0 );
49-
x[ i ] = uniform( mu[ i ], 100.0 );
50-
s[ i ] = uniform( EPS, 5.0 );
51-
}
42+
opts = {
43+
'dtype': 'float64'
44+
};
45+
mu = uniform( 100, -10.0, 10.0, opts );
46+
s = uniform( 100, EPS, 5.0, opts );
47+
x = uniform( 100, 10, 100.0, opts );
5248

5349
b.tic();
5450
for ( i = 0; i < b.iterations; i++ ) {
55-
y = logpdf( x[ i % len ], mu[ i % len ], s[ i % len ] );
51+
y = logpdf( x[ i % x.length ], mu[ i % mu.length ], s[ i % s.length ] );
5652
if ( isnan( y ) ) {
5753
b.fail( 'should not return NaN' );
5854
}
@@ -67,25 +63,24 @@ bench( pkg, function benchmark( b ) {
6763

6864
bench( format( '%s:factory', pkg ), function benchmark( b ) {
6965
var mylogpdf;
70-
var len;
66+
var opts;
7167
var mu;
7268
var s;
7369
var x;
7470
var y;
7571
var i;
7672

73+
opts = {
74+
'dtype': 'float64'
75+
};
7776
mu = 10.0;
7877
s = 4.0;
79-
len = 100;
8078
mylogpdf = logpdf.factory( mu, s );
81-
x = new Float64Array( len );
82-
for ( i = 0; i < len; i++ ) {
83-
x[ i ] = uniform( 0.0, 4.0 );
84-
}
79+
x = uniform( 100, 0.0, 4.0, opts );
8580

8681
b.tic();
8782
for ( i = 0; i < b.iterations; i++ ) {
88-
y = mylogpdf( x[ i % len ] );
83+
y = mylogpdf( x[ i % x.length ] );
8984
if ( isnan( y ) ) {
9085
b.fail( 'should not return NaN' );
9186
}

lib/node_modules/@stdlib/stats/base/dists/levy/logpdf/benchmark/benchmark.native.js

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
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' );
@@ -42,26 +41,23 @@ var opts = {
4241
// MAIN //
4342

4443
bench( format( '%s::native', pkg ), opts, function benchmark( b ) {
45-
var len;
44+
var opts;
4645
var mu;
4746
var x;
4847
var c;
4948
var y;
5049
var i;
5150

52-
len = 100;
53-
mu = new Float64Array( len );
54-
x = new Float64Array( len );
55-
c = new Float64Array( len );
56-
for ( i = 0; i < len; i++ ) {
57-
mu[ i ] = uniform( -10.0, 10.0 );
58-
x[ i ] = uniform( mu[ i ], 40.0 );
59-
c[ i ] = uniform( EPS, 5.0 );
60-
}
51+
opts = {
52+
'dtype': 'float64'
53+
};
54+
mu = uniform( 100, -10.0, 10.0, opts );
55+
x = uniform( 100, 10.0, 40.0, opts );
56+
c = uniform( 100, EPS, 5.0, opts );
6157

6258
b.tic();
6359
for ( i = 0; i < b.iterations; i++ ) {
64-
y = logpdf( x[ i % len ], mu[ i % len ], c[ i % len ] );
60+
y = logpdf( x[ i % x.length ], mu[ i % mu.length ], c[ i % c.length ] );
6561
if ( isnan( y ) ) {
6662
b.fail( 'should not return NaN' );
6763
}

0 commit comments

Comments
 (0)