Skip to content

Commit adcf747

Browse files
anandkaranubckgryte
authored andcommitted
bench: refactor random number generation in stats/base/dists/bernoulli
PR-URL: stdlib-js#4775 Co-authored-by: Athan Reines <[email protected]> Reviewed-by: Athan Reines <[email protected]>
1 parent 4dfc055 commit adcf747

File tree

15 files changed

+233
-72
lines changed

15 files changed

+233
-72
lines changed

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

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

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
24+
var Float64Array = require( '@stdlib/array/float64' );
25+
var uniform = require( '@stdlib/random/base/uniform' );
2526
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2627
var pkg = require( './../package.json' ).name;
2728
var cdf = require( './../lib' );
@@ -30,16 +31,23 @@ var cdf = require( './../lib' );
3031
// MAIN //
3132

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

40+
len = 100;
41+
p = new Float64Array( len );
42+
x = new Float64Array( len );
43+
for ( i = 0; i < len; i++ ) {
44+
x[ i ] = uniform( -1.0, 2.0 );
45+
p[ i ] = uniform( 0.0, 1.0 );
46+
}
47+
3848
b.tic();
3949
for ( i = 0; i < b.iterations; i++ ) {
40-
x = ( randu()*3.0 ) - 1.0;
41-
p = randu();
42-
y = cdf( x, p );
50+
y = cdf( x[ i % len ], p[ i % len ] );
4351
if ( isnan( y ) ) {
4452
b.fail( 'should not return NaN' );
4553
}
@@ -54,18 +62,23 @@ bench( pkg, function benchmark( b ) {
5462

5563
bench( pkg+':factory', function benchmark( b ) {
5664
var mycdf;
65+
var len;
5766
var p;
5867
var x;
5968
var y;
6069
var i;
6170

6271
p = 0.3;
6372
mycdf = cdf.factory( p );
73+
len = 100;
74+
x = new Float64Array( len );
75+
for ( i = 0; i < len; i++ ) {
76+
x[ i ] = uniform( -1.0, 2.0 );
77+
}
6478

6579
b.tic();
6680
for ( i = 0; i < b.iterations; i++ ) {
67-
x = ( randu()*3.0 ) - 1.0;
68-
y = mycdf( x );
81+
y = mycdf( x[ i % len ] );
6982
if ( isnan( y ) ) {
7083
b.fail( 'should not return NaN' );
7184
}

0 commit comments

Comments
 (0)