Skip to content

Commit 2f54879

Browse files
hrshyaanandkaranubcstdlib-bot
authored
bench: refactor random number generation in stats/base/dists/studentized-range
PR-URL: #5175 Closes: #4987 Ref: #4955 Ref: #4837 Co-authored-by: Karan Anand <[email protected]> Co-authored-by: stdlib-bot <[email protected]> Reviewed-by: Karan Anand <[email protected]> Signed-off-by: Harsh <[email protected]>
1 parent 3587230 commit 2f54879

File tree

2 files changed

+42
-14
lines changed

2 files changed

+42
-14
lines changed

Diff for: lib/node_modules/@stdlib/stats/base/dists/studentized-range/cdf/benchmark/benchmark.js

+21-7
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,36 @@
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' );
25+
var uniform = require( '@stdlib/random/base/uniform' );
26+
var Float64Array = require( '@stdlib/array/float64' );
2627
var pkg = require( './../package.json' ).name;
2728
var cdf = require( './../lib' );
2829

2930

3031
// MAIN //
3132

3233
bench( pkg, function benchmark( b ) {
34+
var len;
3335
var v;
3436
var r;
3537
var q;
3638
var y;
3739
var i;
3840

41+
len = 100;
42+
q = new Float64Array( len );
43+
r = new Float64Array( len );
44+
v = new Float64Array( len );
45+
for ( i = 0; i < len; i++ ) {
46+
q[ i ] = uniform( 0.0, 12.0 );
47+
r[ i ] = uniform( 2.0, 20.0 );
48+
v[ i ] = uniform( 2.0, 20.0 );
49+
}
50+
3951
b.tic();
4052
for ( i = 0; i < b.iterations; i++ ) {
41-
q = randu() * 12.0;
42-
r = ( randu()*20.0 ) + 2.0;
43-
v = ( randu()*20.0 ) + 2.0;
44-
y = cdf( q, r, v );
53+
y = cdf( q[ i % len ], r[ i % len ], v[ i % len ] );
4554
if ( isnan( y ) ) {
4655
b.fail( 'should not return NaN' );
4756
}
@@ -56,20 +65,25 @@ bench( pkg, function benchmark( b ) {
5665

5766
bench( pkg+':factory', function benchmark( b ) {
5867
var mycdf;
68+
var len;
5969
var r;
6070
var q;
6171
var v;
6272
var y;
6373
var i;
6474

75+
len = 100;
6576
v = 5.0;
6677
r = 3.0;
78+
q = new Float64Array( len );
6779
mycdf = cdf.factory( v, r );
80+
for ( i = 0; i < len; i++ ) {
81+
q[ i ] = uniform( 0.0, 1.0 );
82+
}
6883

6984
b.tic();
7085
for ( i = 0; i < b.iterations; i++ ) {
71-
q = randu();
72-
y = mycdf( q );
86+
y = mycdf( q[ i % len ] );
7387
if ( isnan( y ) ) {
7488
b.fail( 'should not return NaN' );
7589
}

Diff for: lib/node_modules/@stdlib/stats/base/dists/studentized-range/quantile/benchmark/benchmark.js

+21-7
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,36 @@
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' );
25+
var uniform = require( '@stdlib/random/base/uniform' );
26+
var Float64Array = require( '@stdlib/array/float64' );
2627
var pkg = require( './../package.json' ).name;
2728
var quantile = require( './../lib' );
2829

2930

3031
// MAIN //
3132

3233
bench( pkg, function benchmark( b ) {
34+
var len;
3335
var v;
3436
var r;
3537
var p;
3638
var y;
3739
var i;
3840

41+
len = 100;
42+
p = new Float64Array( len );
43+
r = new Float64Array( len );
44+
v = new Float64Array( len );
45+
for ( i = 0; i < len; i++ ) {
46+
p[ i ] = uniform( 0.0, 1.0 );
47+
r[ i ] = uniform( 2.0, 20.0 );
48+
v[ i ] = uniform( 2.0, 20.0 );
49+
}
50+
3951
b.tic();
4052
for ( i = 0; i < b.iterations; i++ ) {
41-
p = randu();
42-
r = ( randu()*20.0 ) + 2.0;
43-
v = ( randu()*20.0 ) + 2.0;
44-
y = quantile( p, r, v );
53+
y = quantile( p[ i % len ], r[ i % len ], v[ i % len ] );
4554
if ( isnan( y ) ) {
4655
b.fail( 'should not return NaN' );
4756
}
@@ -56,20 +65,25 @@ bench( pkg, function benchmark( b ) {
5665

5766
bench( pkg+':factory', function benchmark( b ) {
5867
var myquantile;
68+
var len;
5969
var r;
6070
var p;
6171
var v;
6272
var y;
6373
var i;
6474

75+
len = 100;
6576
v = 5.0;
6677
r = 3.0;
78+
p = new Float64Array( len );
6779
myquantile = quantile.factory( v, r );
80+
for ( i = 0; i < len; i++ ) {
81+
p[ i ] = uniform( 0.0, 1.0 );
82+
}
6883

6984
b.tic();
7085
for ( i = 0; i < b.iterations; i++ ) {
71-
p = randu();
72-
y = myquantile( p );
86+
y = myquantile( p[ i % len ] );
7387
if ( isnan( y ) ) {
7488
b.fail( 'should not return NaN' );
7589
}

0 commit comments

Comments
 (0)