Skip to content

Commit 8e7ee5f

Browse files
committed
Refactor random number generation in JS benchmarks for stats/base/dists/triangular #4989
Resolves #4989
1 parent 1187431 commit 8e7ee5f

File tree

19 files changed

+105
-93
lines changed

19 files changed

+105
-93
lines changed

lib/node_modules/@stdlib/stats/base/dists/triangular/ctor/benchmark/benchmark.js

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

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
2524
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2625
var EPS = require( '@stdlib/constants/float64/eps' );
2726
var pkg = require( './../package.json' ).name;
2827
var Triangular = require( './../lib' );
28+
var uniform = require( '@stdlib/random/base/uniform' );
29+
var Float64Array = require( '@stdlib/array/float64' );
2930

3031

3132
// MAIN //
@@ -36,12 +37,23 @@ bench( pkg+'::instantiation', function benchmark( bm ) {
3637
var b;
3738
var c;
3839
var i;
40+
var as = new Float64Array(bm.iterations);
41+
var bs = new Float64Array(bm.iterations);
42+
var cs = new Float64Array(bm.iterations);
43+
for( i = 0; i<bm.iterations; i++){
44+
a = uniform(EPS , 10.0);
45+
b = uniform(a + EPS , a + 10.0);
46+
c = uniform(a , b);
47+
as[i] = a;
48+
bs[i] = b;
49+
cs[i] = c;
50+
}
3951

4052
bm.tic();
4153
for ( i = 0; i < bm.iterations; i++ ) {
42-
a = ( randu() * 10.0 ) + EPS;
43-
b = ( randu() * 10.0 ) + a + EPS;
44-
c = ( randu() * ( b-a ) ) + a;
54+
a = as[i];
55+
b = bs[i];
56+
c = cs[i];
4557
dist = new Triangular( a, b, c );
4658
if ( !( dist instanceof Triangular ) ) {
4759
bm.fail( 'should return a distribution instance' );
@@ -98,7 +110,7 @@ bench( pkg+'::set:a', function benchmark( bm ) {
98110

99111
bm.tic();
100112
for ( i = 0; i < bm.iterations; i++ ) {
101-
y = ( 100.0*randu() ) + EPS;
113+
y = uniform(EPS , 100.0);
102114
dist.a = y;
103115
if ( dist.a !== y ) {
104116
bm.fail( 'should return set value' );
@@ -155,7 +167,7 @@ bench( pkg+'::set:b', function benchmark( bm ) {
155167

156168
bm.tic();
157169
for ( i = 0; i < bm.iterations; i++ ) {
158-
y = ( 100.0*randu() ) + c + EPS;
170+
y = uniform(EPS+c , 100.0+c+EPS);
159171
dist.b = y;
160172
if ( dist.b !== y ) {
161173
bm.fail( 'should return set value' );
@@ -212,7 +224,7 @@ bench( pkg+'::set:c', function benchmark( bm ) {
212224

213225
bm.tic();
214226
for ( i = 0; i < bm.iterations; i++ ) {
215-
y = ( randu() * ( b-a ) ) + a;
227+
y = uniform(a , b);
216228
dist.c = y;
217229
if ( dist.c !== y ) {
218230
bm.fail( 'should return set value' );
@@ -241,7 +253,7 @@ bench( pkg+':entropy', function benchmark( bm ) {
241253

242254
bm.tic();
243255
for ( i = 0; i < bm.iterations; i++ ) {
244-
dist.a = randu() * c;
256+
dist.a = uniform(0,c);
245257
y = dist.entropy;
246258
if ( isnan( y ) ) {
247259
bm.fail( 'should not return NaN' );
@@ -270,7 +282,7 @@ bench( pkg+':kurtosis', function benchmark( bm ) {
270282

271283
bm.tic();
272284
for ( i = 0; i < bm.iterations; i++ ) {
273-
dist.a = randu() * c;
285+
dist.a = uniform(0.0 , c);
274286
y = dist.kurtosis;
275287
if ( isnan( y ) ) {
276288
bm.fail( 'should not return NaN' );
@@ -299,7 +311,7 @@ bench( pkg+':mean', function benchmark( bm ) {
299311

300312
bm.tic();
301313
for ( i = 0; i < bm.iterations; i++ ) {
302-
dist.a = randu() * c;
314+
dist.a = uniform(0.0 , c);
303315
y = dist.mean;
304316
if ( isnan( y ) ) {
305317
bm.fail( 'should not return NaN' );
@@ -328,7 +340,7 @@ bench( pkg+':median', function benchmark( bm ) {
328340

329341
bm.tic();
330342
for ( i = 0; i < bm.iterations; i++ ) {
331-
dist.a = randu() * c;
343+
dist.a = uniform(0.0 , c);
332344
y = dist.median;
333345
if ( isnan( y ) ) {
334346
bm.fail( 'should not return NaN' );
@@ -357,7 +369,7 @@ bench( pkg+':skewness', function benchmark( bm ) {
357369

358370
bm.tic();
359371
for ( i = 0; i < bm.iterations; i++ ) {
360-
dist.a = randu() * c;
372+
dist.a = uniform(0.0 , c);
361373
y = dist.skewness;
362374
if ( isnan( y ) ) {
363375
bm.fail( 'should not return NaN' );
@@ -386,7 +398,7 @@ bench( pkg+':stdev', function benchmark( bm ) {
386398

387399
bm.tic();
388400
for ( i = 0; i < bm.iterations; i++ ) {
389-
dist.a = randu() * c;
401+
dist.a = uniform(0.0 , c);
390402
y = dist.stdev;
391403
if ( isnan( y ) ) {
392404
bm.fail( 'should not return NaN' );
@@ -415,7 +427,7 @@ bench( pkg+':variance', function benchmark( bm ) {
415427

416428
bm.tic();
417429
for ( i = 0; i < bm.iterations; i++ ) {
418-
dist.a = randu() * c;
430+
dist.a = uniform(0.0 , c);
419431
y = dist.variance;
420432
if ( isnan( y ) ) {
421433
bm.fail( 'should not return NaN' );
@@ -445,7 +457,7 @@ bench( pkg+':cdf', function benchmark( bm ) {
445457

446458
bm.tic();
447459
for ( i = 0; i < bm.iterations; i++ ) {
448-
x = randu() * 60.0;
460+
x = uniform(0.0 , 60.0);
449461
y = dist.cdf( x );
450462
if ( isnan( y ) ) {
451463
bm.fail( 'should not return NaN' );
@@ -475,7 +487,7 @@ bench( pkg+':mgf', function benchmark( bm ) {
475487

476488
bm.tic();
477489
for ( i = 0; i < bm.iterations; i++ ) {
478-
x = randu();
490+
x = uniform(0.0 , 1.0);
479491
y = dist.mgf( x );
480492
if ( isnan( y ) ) {
481493
bm.fail( 'should not return NaN' );
@@ -505,7 +517,7 @@ bench( pkg+':pdf', function benchmark( bm ) {
505517

506518
bm.tic();
507519
for ( i = 0; i < bm.iterations; i++ ) {
508-
x = randu() * 60.0;
520+
x = uniform(0.0 , 60.0);
509521
y = dist.pdf( x );
510522
if ( isnan( y ) ) {
511523
bm.fail( 'should not return NaN' );
@@ -535,7 +547,7 @@ bench( pkg+':quantile', function benchmark( bm ) {
535547

536548
bm.tic();
537549
for ( i = 0; i < bm.iterations; i++ ) {
538-
x = randu();
550+
x = uniform(0.0 , 1.0);
539551
y = dist.quantile( x );
540552
if ( isnan( y ) ) {
541553
bm.fail( 'should not return NaN' );

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

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

2323
var bench = require( '@stdlib/bench' );
2424
var Float64Array = require( '@stdlib/array/float64' );
25-
var randu = require( '@stdlib/random/base/randu' );
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;
2928
var entropy = require( './../lib' );
29+
var uniform = require( '@stdlib/random/base/uniform' );
3030

3131

3232
// MAIN //
@@ -44,9 +44,9 @@ bench( pkg, function benchmark( b ) {
4444
max = new Float64Array( len );
4545
mode = new Float64Array( len );
4646
for ( i = 0; i < len; i++ ) {
47-
min[ i ] = ( randu()*10.0 );
48-
max[ i ] = ( randu()*10.0 ) + min[ i ] + EPS;
49-
mode[ i ] = ( ( max[ i ] - min[ i ] ) * randu() ) + min[ i ];
47+
min[ i ] = uniform(0.0 , 10.0);
48+
max[ i ] = uniform( min[ i ] + EPS , 10.0 + min[ i ] + EPS);
49+
mode[ i ] = uniform( min[ i ] , max[ i ]);
5050
}
5151

5252
b.tic();

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
2525
var Float64Array = require( '@stdlib/array/float64' );
26-
var randu = require( '@stdlib/random/base/randu' );
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' );
3029
var pkg = require( './../package.json' ).name;
30+
var uniform = require( '@stdlib/random/base/uniform' );
3131

3232

3333
// VARIABLES //
@@ -53,9 +53,9 @@ bench( pkg+'::native', opts, function benchmark( b ) {
5353
max = new Float64Array( len );
5454
mode = new Float64Array( len );
5555
for ( i = 0; i < len; i++ ) {
56-
min[ i ] = ( randu()*10.0 );
57-
max[ i ] = ( randu()*10.0 ) + min[ i ] + EPS;
58-
mode[ i ] = ( ( max[ i ] - min[ i ] ) * randu() ) + min[ i ];
56+
min[ i ] = ( uniform(0.0 , 10.0) );
57+
max[ i ] = uniform(min[ i ] + EPS,10.0+min[ i ] + EPS);
58+
mode[ i ] = uniform(min[ i ] + max[ i ]);
5959
}
6060

6161
b.tic();

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

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

2323
var bench = require( '@stdlib/bench' );
2424
var Float64Array = require( '@stdlib/array/float64' );
25-
var randu = require( '@stdlib/random/base/randu' );
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;
2928
var kurtosis = require( './../lib' );
29+
var uniform = require( '@stdlib/random/base/uniform' );
3030

3131

3232
// MAIN //
@@ -44,9 +44,9 @@ bench( pkg, function benchmark( b ) {
4444
max = new Float64Array( len );
4545
mode = new Float64Array( len );
4646
for ( i = 0; i < len; i++ ) {
47-
min[ i ] = ( randu()*10.0 );
48-
max[ i ] = ( randu()*10.0 ) + min[ i ] + EPS;
49-
mode[ i ] = ( ( max[ i ] - min[ i ] ) * randu() ) + min[ i ];
47+
min[ i ] = uniform(0.0 , 10.0);
48+
max[ i ] = uniform(min[ i ] + EPS, 10.0+min[ i ] + EPS);
49+
mode[ i ] = uniform(min[ i ], max[ i ]);
5050
}
5151

5252
b.tic();

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
2525
var Float64Array = require( '@stdlib/array/float64' );
26-
var randu = require( '@stdlib/random/base/randu' );
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' );
3029
var pkg = require( './../package.json' ).name;
30+
var uniform = require( '@stdlib/random/base/uniform' );
3131

3232

3333
// VARIABLES //
@@ -53,9 +53,9 @@ bench( pkg+'::native', opts, function benchmark( b ) {
5353
max = new Float64Array( len );
5454
mode = new Float64Array( len );
5555
for ( i = 0; i < len; i++ ) {
56-
min[ i ] = ( randu()*10.0 );
57-
max[ i ] = ( randu()*10.0 ) + min[ i ] + EPS;
58-
mode[ i ] = ( ( max[ i ] - min[ i ] ) * randu() ) + min[ i ];
56+
min[ i ] = uniform(0.0 , 10.0);
57+
max[ i ] = uniform(min[ i ] + EPS, 10.0+min[ i ] + EPS);
58+
mode[ i ] = uniform(min[ i ], max[ i ]);
5959
}
6060

6161
b.tic();

lib/node_modules/@stdlib/stats/base/dists/triangular/mean/benchmark/benchmark.js

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

2323
var bench = require( '@stdlib/bench' );
2424
var Float64Array = require( '@stdlib/array/float64' );
25-
var randu = require( '@stdlib/random/base/randu' );
2625
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2726
var pkg = require( './../package.json' ).name;
2827
var mean = require( './../lib' );
28+
var uniform = require( '@stdlib/random/base/uniform' );
2929

3030

3131
// MAIN //
@@ -43,9 +43,9 @@ bench( pkg, function benchmark( b ) {
4343
bnd = new Float64Array( len );
4444
c = new Float64Array( len );
4545
for ( i = 0; i < len; i++ ) {
46-
a[ i ] = randu() * 20.0;
47-
bnd[ i ] = ( randu() * 20.0 ) + a[ i ];
48-
c[ i ] = ( randu() * ( bnd[i] - a[i] ) ) + a[i];
46+
a[ i ] = uniform(0.0 , 20.0);
47+
bnd[ i ] = uniform(a[ i ] , 20.0 + a[ i ]);
48+
c[ i ] = uniform( a[ i ], bnd[ i ] );
4949
}
5050

5151
b.tic();

lib/node_modules/@stdlib/stats/base/dists/triangular/mean/benchmark/benchmark.native.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@
2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
2525
var Float64Array = require( '@stdlib/array/float64' );
26-
var randu = require( '@stdlib/random/base/randu' );
2726
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2827
var tryRequire = require( '@stdlib/utils/try-require' );
2928
var pkg = require( './../package.json' ).name;
29+
var uniform = require( '@stdlib/random/base/uniform' );
3030

3131

3232
// VARIABLES //
@@ -52,9 +52,9 @@ bench( pkg+'::native', opts, function benchmark( b ) {
5252
bnd = new Float64Array( len );
5353
c = new Float64Array( len );
5454
for ( i = 0; i < len; i++ ) {
55-
a[ i ] = ( randu() * 20.0 );
56-
bnd[ i ] = ( randu() * 20.0 ) + a[ i ];
57-
c[ i ] = ( randu() * ( bnd[i] - a[i] ) ) + a[i];
55+
a[ i ] = uniform(0.0 , 20.0);
56+
bnd[ i ] = uniform(a[ i ] , 20.0 + a[ i ]);
57+
c[ i ] = uniform( a[ i ], bnd[ i ] );
5858
}
5959

6060
b.tic();

lib/node_modules/@stdlib/stats/base/dists/triangular/median/benchmark/benchmark.js

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

2323
var bench = require( '@stdlib/bench' );
2424
var Float64Array = require( '@stdlib/array/float64' );
25-
var randu = require( '@stdlib/random/base/randu' );
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;
2928
var median = require( './../lib' );
29+
var uniform = require( '@stdlib/random/base/uniform' );
3030

3131

3232
// MAIN //
@@ -44,9 +44,9 @@ bench( pkg, function benchmark( b ) {
4444
max = new Float64Array( len );
4545
mode = new Float64Array( len );
4646
for ( i = 0; i < len; i++ ) {
47-
min[ i ] = ( randu()*10.0 );
48-
max[ i ] = ( randu()*10.0 ) + min[ i ] + EPS;
49-
mode[ i ] = ( ( max[ i ] - min[ i ] ) * randu() ) + min[ i ];
47+
min[ i ] = uniform(0.0 , 10.0);
48+
max[ i ] = uniform(min[ i ] + EPS , 10.0 + min[ i ] + EPS );
49+
mode[ i ] = uniform(min[ i ] , max[ i ]);
5050
}
5151

5252
b.tic();

lib/node_modules/@stdlib/stats/base/dists/triangular/median/benchmark/benchmark.native.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
2525
var Float64Array = require( '@stdlib/array/float64' );
26-
var randu = require( '@stdlib/random/base/randu' );
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' );
3029
var pkg = require( './../package.json' ).name;
30+
var uniform = require( '@stdlib/random/base/uniform' );
3131

3232

3333
// VARIABLES //
@@ -53,9 +53,9 @@ bench( pkg+'::native', opts, function benchmark( b ) {
5353
max = new Float64Array( len );
5454
mode = new Float64Array( len );
5555
for ( i = 0; i < len; i++ ) {
56-
min[ i ] = ( randu()*10.0 );
57-
max[ i ] = ( randu()*10.0 ) + min[ i ] + EPS;
58-
mode[ i ] = ( ( max[ i ] - min[ i ] ) * randu() ) + min[ i ];
56+
min[ i ] = uniform(0.0 , 10.0);
57+
max[ i ] = uniform(min[ i ] + EPS , 10.0 + min[ i ] + EPS );
58+
mode[ i ] = uniform(min[ i ] , max[ i ]);
5959
}
6060

6161
b.tic();

lib/node_modules/@stdlib/stats/base/dists/triangular/mode/benchmark/benchmark.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
var bench = require( '@stdlib/bench' );
2424
var Float64Array = require( '@stdlib/array/float64' );
25-
var randu = require( '@stdlib/random/base/randu' );
25+
var uniform = require( '@stdlib/random/base/uniform' );
2626
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2727
var pkg = require( './../package.json' ).name;
2828
var mode = require( './../lib' );
@@ -43,9 +43,9 @@ bench( pkg, function benchmark( b ) {
4343
bnd = new Float64Array( len );
4444
c = new Float64Array( len );
4545
for ( i = 0; i < len; i++ ) {
46-
a[ i ] = randu() * 20.0;
47-
bnd[ i ] = ( randu() * 20.0 ) + a[ i ];
48-
c[ i ] = ( randu() * ( bnd[i] - a[i] ) ) + a[i];
46+
a[ i ] = uniform(0.0 , 20.0);
47+
bnd[ i ] = uniform(a[ i ] , 20.0);
48+
c[ i ] = uniform(a[i] , bnd[i]);
4949
}
5050

5151
b.tic();

0 commit comments

Comments
 (0)