Skip to content

Commit 309edef

Browse files
committed
refactor(stats): refactor random number generation in JS benchmarks for Poisson
--- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: passed - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed ---
1 parent 1024672 commit 309edef

File tree

16 files changed

+273
-105
lines changed

16 files changed

+273
-105
lines changed

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

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

2323
var bench = require( '@stdlib/bench' );
24-
var ceil = require( '@stdlib/math/base/special/ceil' );
25-
var randu = require( '@stdlib/random/base/randu' );
24+
var Float64Array = require( '@stdlib/array/float64' );
25+
var uniform = require( '@stdlib/random/base/uniform' );
26+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
2627
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2728
var pkg = require( './../package.json' ).name;
2829
var cdf = require( './../lib' );
@@ -32,15 +33,21 @@ var cdf = require( './../lib' );
3233

3334
bench( pkg, function benchmark( b ) {
3435
var lambda;
36+
var len;
3537
var x;
3638
var y;
3739
var i;
3840

41+
len = 100;
42+
lambda = new Float64Array( len );
43+
x = new Float64Array( len );
44+
for ( i = 0; i < len; i++ ) {
45+
x[ i ] = discreteUniform( 1, 100 );
46+
lambda[ i ] = uniform( 0.0, 100.0 );
47+
}
3948
b.tic();
4049
for ( i = 0; i < b.iterations; i++ ) {
41-
x = ceil( randu()*100.0 );
42-
lambda = ( randu()*100.0 );
43-
y = cdf( x, lambda );
50+
y = cdf( x[ i % len ], lambda[ i % len ] );
4451
if ( isnan( y ) ) {
4552
b.fail( 'should not return NaN' );
4653
}
@@ -56,17 +63,21 @@ bench( pkg, function benchmark( b ) {
5663
bench( pkg+':factory', function benchmark( b ) {
5764
var lambda;
5865
var mycdf;
66+
var len;
5967
var x;
6068
var y;
6169
var i;
6270

6371
lambda = 10.0;
6472
mycdf = cdf.factory( lambda );
65-
73+
len = 100;
74+
x= new Float64Array( len );
75+
for ( i = 0; i < len; i++ ) {
76+
x[ i ] = discreteUniform( 1, 50 );
77+
}
6678
b.tic();
6779
for ( i = 0; i < b.iterations; i++ ) {
68-
x = ceil( randu()*50.0 );
69-
y = mycdf( x );
80+
y = mycdf( x[ i % len ] );
7081
if ( isnan( y ) ) {
7182
b.fail( 'should not return NaN' );
7283
}

0 commit comments

Comments
 (0)