Skip to content

Commit fa15161

Browse files
bench: refactor random number generation in stats/base/dists/frechet
PR-URL: #4922 Reviewed-by: Athan Reines <kgryte@gmail.com> Co-authored-by: stdlib-bot <noreply@stdlib.io>
1 parent 6335415 commit fa15161

File tree

17 files changed

+324
-116
lines changed

17 files changed

+324
-116
lines changed

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

Lines changed: 23 additions & 8 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 EPS = require( '@stdlib/constants/float64/eps' );
2728
var pkg = require( './../package.json' ).name;
@@ -32,19 +33,28 @@ var cdf = require( './../lib' );
3233

3334
bench( pkg, function benchmark( b ) {
3435
var alpha;
36+
var len;
3537
var m;
3638
var s;
3739
var x;
3840
var y;
3941
var i;
4042

43+
len = 100;
44+
x = new Float64Array( len );
45+
alpha = new Float64Array( len );
46+
s = new Float64Array( len );
47+
m = new Float64Array( len );
48+
for ( i = 0; i < len; i++ ) {
49+
x[ i ] = uniform( -50.0, 50.0 );
50+
alpha[ i ] = uniform( EPS, 20.0 );
51+
m[ i ] = uniform( -20.0, 40.0 );
52+
s[ i ] = uniform( EPS, 20.0 );
53+
}
54+
4155
b.tic();
4256
for ( i = 0; i < b.iterations; i++ ) {
43-
x = ( randu()*100.0 ) - 50.0;
44-
alpha = ( randu()*20.0 ) + EPS;
45-
m = ( randu()*60.0 ) - 20.0;
46-
s = ( randu()*20.0 ) + EPS;
47-
y = cdf( x, alpha, s, m );
57+
y = cdf( x[ i % len ], alpha[ i % len ], s[ i % len ], m[ i % len ] );
4858
if ( isnan( y ) ) {
4959
b.fail( 'should not return NaN' );
5060
}
@@ -60,6 +70,7 @@ bench( pkg, function benchmark( b ) {
6070
bench( pkg+':factory', function benchmark( b ) {
6171
var mycdf;
6272
var alpha;
73+
var len;
6374
var m;
6475
var s;
6576
var x;
@@ -70,11 +81,15 @@ bench( pkg+':factory', function benchmark( b ) {
7081
s = 3.0;
7182
m = 4.0;
7283
mycdf = cdf.factory( alpha, s, m );
84+
len = 100;
85+
x = new Float64Array( len );
86+
for ( i = 0; i < len; i++ ) {
87+
x[ i ] = uniform( 0.0, 50.0 );
88+
}
7389

7490
b.tic();
7591
for ( i = 0; i < b.iterations; i++ ) {
76-
x = randu() * 50.0;
77-
y = mycdf( x );
92+
y = mycdf( x[ i % len ]);
7893
if ( isnan( y ) ) {
7994
b.fail( 'should not return NaN' );
8095
}

0 commit comments

Comments
 (0)