From 309edef15ccd75306237b8f3af5e368aa2a29312 Mon Sep 17 00:00:00 2001 From: Pranav Agrawal Date: Sat, 8 Feb 2025 06:16:16 +0530 Subject: [PATCH] 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 --- --- .../dists/poisson/cdf/benchmark/benchmark.js | 27 ++- .../dists/poisson/ctor/benchmark/benchmark.js | 157 +++++++++++++----- .../poisson/entropy/benchmark/benchmark.js | 12 +- .../poisson/kurtosis/benchmark/benchmark.js | 12 +- .../poisson/logpmf/benchmark/benchmark.js | 27 ++- .../dists/poisson/mean/benchmark/benchmark.js | 6 +- .../mean/benchmark/benchmark.native.js | 4 +- .../poisson/median/benchmark/benchmark.js | 12 +- .../dists/poisson/mgf/benchmark/benchmark.js | 25 ++- .../dists/poisson/mode/benchmark/benchmark.js | 12 +- .../dists/poisson/pmf/benchmark/benchmark.js | 27 ++- .../poisson/quantile/benchmark/benchmark.js | 25 ++- .../poisson/skewness/benchmark/benchmark.js | 12 +- .../poisson/stdev/benchmark/benchmark.js | 12 +- .../poisson/variance/benchmark/benchmark.js | 4 +- .../variance/benchmark/benchmark.native.js | 4 +- 16 files changed, 273 insertions(+), 105 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/poisson/cdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/poisson/cdf/benchmark/benchmark.js index ac89df3786c5..6f238aa6f491 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/poisson/cdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/poisson/cdf/benchmark/benchmark.js @@ -21,8 +21,9 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var ceil = require( '@stdlib/math/base/special/ceil' ); -var randu = require( '@stdlib/random/base/randu' ); +var Float64Array = require( '@stdlib/array/float64' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var cdf = require( './../lib' ); @@ -32,15 +33,21 @@ var cdf = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var x; var y; var i; + len = 100; + lambda = new Float64Array( len ); + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = discreteUniform( 1, 100 ); + lambda[ i ] = uniform( 0.0, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ceil( randu()*100.0 ); - lambda = ( randu()*100.0 ); - y = cdf( x, lambda ); + y = cdf( x[ i % len ], lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -56,17 +63,21 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var lambda; var mycdf; + var len; var x; var y; var i; lambda = 10.0; mycdf = cdf.factory( lambda ); - + len = 100; + x= new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = discreteUniform( 1, 50 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ceil( randu()*50.0 ); - y = mycdf( x ); + y = mycdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/poisson/ctor/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/poisson/ctor/benchmark/benchmark.js index cb7870b4f8b5..c35eb7c597bf 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/poisson/ctor/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/poisson/ctor/benchmark/benchmark.js @@ -21,8 +21,9 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); -var round = require( '@stdlib/math/base/special/round' ); +var Float64Array = require( '@stdlib/array/float64' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -34,12 +35,17 @@ var Poisson = require( './../lib' ); bench( pkg+'::instantiation', function benchmark( b ) { var lambda; var dist; + var len; var i; + len=100; + lambda = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + lambda[ i ] = ( uniform( EPS, 10.0 )); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - lambda = ( randu() * 10.0 ) + EPS; - dist = new Poisson( lambda ); + dist = new Poisson( lambda[ i % len ] ); if ( !( dist instanceof Poisson ) ) { b.fail( 'should return a distribution instance' ); } @@ -60,7 +66,6 @@ bench( pkg+'::get:lambda', function benchmark( b ) { lambda = 5.54; dist = new Poisson( lambda ); - b.tic(); for ( i = 0; i < b.iterations; i++ ) { y = dist.lambda; @@ -79,17 +84,21 @@ bench( pkg+'::get:lambda', function benchmark( b ) { bench( pkg+'::set:lambda', function benchmark( b ) { var lambda; var dist; + var len; var y; var i; lambda = 5.54; dist = new Poisson( lambda ); - + len=100; + y = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + y[ i ] = uniform( EPS, 10.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = ( 10.0*randu() ) + EPS; - dist.lambda = y; - if ( dist.lambda !== y ) { + dist.lambda = y[ i % len ]; + if ( dist.lambda !== y[ i % len ] ) { b.fail( 'should return set value' ); } } @@ -104,15 +113,21 @@ bench( pkg+'::set:lambda', function benchmark( b ) { bench( pkg+':entropy', function benchmark( b ) { var lambda; var dist; + var len; + var x; var y; var i; lambda = 5.54; dist = new Poisson( lambda ); - + len=100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ]= uniform( EPS, 10.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.lambda = ( 10.0*randu() ) + EPS; + dist.lambda = x[ i % len ]; y = dist.entropy; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -129,15 +144,21 @@ bench( pkg+':entropy', function benchmark( b ) { bench( pkg+':kurtosis', function benchmark( b ) { var lambda; var dist; + var len; + var x; var y; var i; lambda = 5.54; dist = new Poisson( lambda ); - + len=100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ]= uniform( EPS + 1.0, 11.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.lambda = ( 10.0*randu() ) + 1.0 + EPS; + dist.lambda = x[ i % len ]; y = dist.kurtosis; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -154,15 +175,21 @@ bench( pkg+':kurtosis', function benchmark( b ) { bench( pkg+':mean', function benchmark( b ) { var lambda; var dist; + var len; + var x; var y; var i; lambda = 5.54; dist = new Poisson( lambda ); - + len=100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ]= uniform( EPS, 10.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.lambda = ( 10.0*randu() ) + EPS; + dist.lambda = x[ i % len ]; y = dist.mean; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -179,15 +206,21 @@ bench( pkg+':mean', function benchmark( b ) { bench( pkg+':median', function benchmark( b ) { var lambda; var dist; + var len; + var x; var y; var i; lambda = 5.54; dist = new Poisson( lambda ); - + len=100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ]= uniform( EPS, 10.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.lambda = ( 10.0*randu() ) + EPS; + dist.lambda = x[ i % len ]; y = dist.median; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -204,15 +237,21 @@ bench( pkg+':median', function benchmark( b ) { bench( pkg+':mode', function benchmark( b ) { var lambda; var dist; + var len; + var x; var y; var i; lambda = 5.54; dist = new Poisson( lambda ); - + len=100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ]= uniform( 1.0 + EPS, 11.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.lambda = ( 10.0*randu() ) + 1.0 + EPS; + dist.lambda = x[ i % len ]; y = dist.mode; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -229,15 +268,21 @@ bench( pkg+':mode', function benchmark( b ) { bench( pkg+':skewness', function benchmark( b ) { var lambda; var dist; + var len; + var x; var y; var i; lambda = 5.54; dist = new Poisson( lambda ); - + len=100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ]= uniform( 1.0 + EPS, 11.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.lambda = ( 10.0*randu() ) + 1.0 + EPS; + dist.lambda = x[ i % len ]; y = dist.skewness; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -254,15 +299,21 @@ bench( pkg+':skewness', function benchmark( b ) { bench( pkg+':stdev', function benchmark( b ) { var lambda; var dist; + var len; + var x; var y; var i; lambda = 5.54; dist = new Poisson( lambda ); - + len=100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ]= uniform( 1.0 + EPS, 11.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.lambda = ( 10.0*randu() ) + 1.0 + EPS; + dist.lambda = x[ i % len ]; y = dist.stdev; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -279,15 +330,21 @@ bench( pkg+':stdev', function benchmark( b ) { bench( pkg+':variance', function benchmark( b ) { var lambda; var dist; + var len; + var x; var y; var i; lambda = 5.54; dist = new Poisson( lambda ); - + len=100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ]= uniform( 1.0 + EPS, 11.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.lambda = ( 10.0*randu() ) + 1.0 + EPS; + dist.lambda = x[ i % len ]; y = dist.variance; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -304,17 +361,21 @@ bench( pkg+':variance', function benchmark( b ) { bench( pkg+':cdf', function benchmark( b ) { var lambda; var dist; + var len; var x; var y; var i; lambda = 5.54; dist = new Poisson( lambda ); - + len=100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ]= uniform( 0.0, 60.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu() * 6.0; - y = dist.cdf( x ); + y = dist.cdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -330,17 +391,21 @@ bench( pkg+':cdf', function benchmark( b ) { bench( pkg+':logpmf', function benchmark( b ) { var lambda; var dist; + var len; var x; var y; var i; lambda = 5.54; dist = new Poisson( lambda ); - + len=100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ]= discreteUniform( 0.0, 6.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = round( randu() * 6.0 ); - y = dist.logpmf( x ); + y = dist.logpmf( x[ i % len] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -356,17 +421,21 @@ bench( pkg+':logpmf', function benchmark( b ) { bench( pkg+':mgf', function benchmark( b ) { var lambda; var dist; + var len; var x; var y; var i; lambda = 5.54; dist = new Poisson( lambda ); - + len=100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ]= uniform( 0.0, 1.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu(); - y = dist.mgf( x ); + y = dist.mgf( x[ i % len] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -382,17 +451,21 @@ bench( pkg+':mgf', function benchmark( b ) { bench( pkg+':pmf', function benchmark( b ) { var lambda; var dist; + var len; var x; var y; var i; lambda = 5.54; dist = new Poisson( lambda ); - + len=100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ]= discreteUniform( 0.0, 8.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = round( randu() * 8.0 ); - y = dist.pmf( x ); + y = dist.pmf( x[ i % len] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -408,17 +481,21 @@ bench( pkg+':pmf', function benchmark( b ) { bench( pkg+':quantile', function benchmark( b ) { var lambda; var dist; + var len; var x; var y; var i; lambda = 5.54; dist = new Poisson( lambda ); - + len=100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ]= uniform( 0.0, 1.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu(); - y = dist.quantile( x ); + y = dist.quantile( x[ i % len] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/poisson/entropy/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/poisson/entropy/benchmark/benchmark.js index b8a8f247178e..18501c82185b 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/poisson/entropy/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/poisson/entropy/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var Float64Array = require( '@stdlib/array/float64' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -32,13 +33,18 @@ var entropy = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var y; var i; + len = 100; + lambda = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + lambda[ i ] = ( uniform( EPS, 20.0 )); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - lambda = ( randu()*20.0 ) + EPS; - y = entropy( lambda ); + y = entropy( lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/poisson/kurtosis/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/poisson/kurtosis/benchmark/benchmark.js index c70bb6c5cebc..526d17d1291a 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/poisson/kurtosis/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/poisson/kurtosis/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var Float64Array = require( '@stdlib/array/float64' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -32,13 +33,18 @@ var kurtosis = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var y; var i; + len = 100; + lambda = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + lambda[ i ] = ( uniform( EPS, 20.0 )); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - lambda = ( randu()*20.0 ) + EPS; - y = kurtosis( lambda ); + y = kurtosis( lambda[ i % len] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/poisson/logpmf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/poisson/logpmf/benchmark/benchmark.js index 926545bea772..0bd53dfe0628 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/poisson/logpmf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/poisson/logpmf/benchmark/benchmark.js @@ -21,8 +21,9 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var ceil = require( '@stdlib/math/base/special/ceil' ); -var randu = require( '@stdlib/random/base/randu' ); +var Float64Array = require( '@stdlib/array/float64' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var logpmf = require( './../lib' ); @@ -32,15 +33,21 @@ var logpmf = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var x; var y; var i; + len = 100; + lambda = new Float64Array( len ); + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = discreteUniform( 1, 100 ); + lambda[ i ] = uniform( 0.0, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ceil( randu()*100.0 ); - lambda = ( randu()*100.0 ); - y = logpmf( x, lambda ); + y = logpmf( x[ i % len ], lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -56,17 +63,21 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var lambda; var mypmf; + var len; var x; var y; var i; lambda = 10.0; mypmf = logpmf.factory( lambda ); - + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = discreteUniform( 1, 50 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ceil( randu()*50.0 ); - y = mypmf( x ); + y = mypmf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/poisson/mean/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/poisson/mean/benchmark/benchmark.js index 1b7633302268..223ed72dcc96 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/poisson/mean/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/poisson/mean/benchmark/benchmark.js @@ -22,7 +22,7 @@ var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -40,12 +40,12 @@ bench( pkg, function benchmark( b ) { len = 100; lambda = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - lambda[ i ] = ( randu()*20.0 ) + EPS; + lambda[ i ] = uniform( EPS, 20.0 ); } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = mean( lambda[i%len] ); + y = mean( lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/poisson/mean/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/poisson/mean/benchmark/benchmark.native.js index 2d7237fc65dd..ebb65d643fce 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/poisson/mean/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/poisson/mean/benchmark/benchmark.native.js @@ -23,7 +23,7 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var EPS = require( '@stdlib/constants/float64/eps' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -49,7 +49,7 @@ bench( pkg+'::native', opts, function benchmark( b ) { len = 100; lambda = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - lambda[ i ] = ( randu()*20.0 ) + EPS; + lambda[ i ] = uniform( EPS, 20.0); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/poisson/median/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/poisson/median/benchmark/benchmark.js index 227e02ccbc6a..07c5ad3ff7cf 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/poisson/median/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/poisson/median/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var Float64Array = require( '@stdlib/array/float64' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -32,13 +33,18 @@ var median = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var y; var i; + len = 100; + lambda = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + lambda[ i ] = uniform( EPS, 20.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - lambda = ( randu()*20.0 ) + EPS; - y = median( lambda ); + y = median( lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/poisson/mgf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/poisson/mgf/benchmark/benchmark.js index a6a4ccfa4dd3..89ff1838efe2 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/poisson/mgf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/poisson/mgf/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var Float64Array = require( '@stdlib/array/float64' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var mgf = require( './../lib' ); @@ -31,15 +32,21 @@ var mgf = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var t; var y; var i; + len = 100; + t = new Float64Array( len ); + lambda = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + t[ i ] = uniform( 0.0, 100.0 ); + lambda[ i ] = uniform( 0.0, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - t = randu() * 100.0; - lambda = randu() * 100.0; - y = mgf( t, lambda ); + y = mgf( t[ i % len ], lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -55,17 +62,21 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var lambda; var mymgf; + var len; var t; var y; var i; lambda = 10.0; mymgf = mgf.factory( lambda ); - + len = 100; + t = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + t[ i ] = uniform( 0.0, 5.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - t = randu() * 5.0; - y = mymgf( t ); + y = mymgf( t[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/poisson/mode/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/poisson/mode/benchmark/benchmark.js index e20e9b7598e4..dec823b4947f 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/poisson/mode/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/poisson/mode/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var Float64Array = require( '@stdlib/array/float64' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -32,13 +33,18 @@ var mode = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var y; var i; + len = 100; + lambda = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + lambda[ i ] = ( uniform( EPS, 20.0 )); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - lambda = ( randu()*20.0 ) + EPS; - y = mode( lambda ); + y = mode( lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/poisson/pmf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/poisson/pmf/benchmark/benchmark.js index 92e1d61faa12..fc6e382aedbc 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/poisson/pmf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/poisson/pmf/benchmark/benchmark.js @@ -21,8 +21,9 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var ceil = require( '@stdlib/math/base/special/ceil' ); -var randu = require( '@stdlib/random/base/randu' ); +var Float64Array = require( '@stdlib/array/float64' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var pmf = require( './../lib' ); @@ -32,15 +33,21 @@ var pmf = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var x; var y; var i; + len = 100; + x = new Float64Array( len ); + lambda = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = discreteUniform( 1, 100 ); + lambda[ i ] = uniform( 0.0, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ceil( randu()*100.0 ); - lambda = ( randu()*100.0 ); - y = pmf( x, lambda ); + y = pmf( x[ i % len ], lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -56,17 +63,21 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var lambda; var mypmf; + var len; var x; var y; var i; lambda = 10.0; mypmf = pmf.factory( lambda ); - + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = discreteUniform( 1, 50 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ceil( randu()*50.0 ); - y = mypmf( x ); + y = mypmf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/poisson/quantile/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/poisson/quantile/benchmark/benchmark.js index d5738e03e9ce..88c99ad7a7a3 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/poisson/quantile/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/poisson/quantile/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var Float64Array = require( '@stdlib/array/float64' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var quantile = require( './../lib' ); @@ -31,15 +32,21 @@ var quantile = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var p; var y; var i; + len = 100; + p = new Float64Array( len ); + lambda = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + p[ i ] = uniform( 0.0, 1.0 ); + lambda[ i ] = uniform( 0.0, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - p = randu(); - lambda = randu() * 100.0; - y = quantile( p, lambda ); + y = quantile( p[ i % len ], lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -55,17 +62,21 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var myquantile; var lambda; + var len; var p; var y; var i; lambda = 10.0; myquantile = quantile.factory( lambda ); - + len = 100; + p = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + p[ i ] = uniform( 0.0, 1.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - p = randu(); - y = myquantile( p ); + y = myquantile( p[ i % len] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/poisson/skewness/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/poisson/skewness/benchmark/benchmark.js index ce18a7b975fa..c759d73bc0c9 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/poisson/skewness/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/poisson/skewness/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var Float64Array = require( '@stdlib/array/float64' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -32,13 +33,18 @@ var skewness = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var y; var i; + len = 100; + lambda = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + lambda[ i ] = ( uniform( EPS, 20.0 )); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - lambda = ( randu()*20.0 ) + EPS; - y = skewness( lambda ); + y = skewness( lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/poisson/stdev/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/poisson/stdev/benchmark/benchmark.js index 370ae350b5f1..406da9ba28ac 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/poisson/stdev/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/poisson/stdev/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var Float64Array = require( '@stdlib/array/float64' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -32,13 +33,18 @@ var stdev = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var y; var i; + len = 100; + lambda = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + lambda[ i ] = ( uniform( EPS, 20.0 )); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - lambda = ( randu()*20.0 ) + EPS; - y = stdev( lambda ); + y = stdev( lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/poisson/variance/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/poisson/variance/benchmark/benchmark.js index 1421ea2c7509..16f2e1b88790 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/poisson/variance/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/poisson/variance/benchmark/benchmark.js @@ -22,7 +22,7 @@ var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -40,7 +40,7 @@ bench( pkg, function benchmark( b ) { len = 100; lambda = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - lambda[ i ] = ( randu() * 20.0 ) + EPS; + lambda[ i ] = uniform( EPS, 20.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/poisson/variance/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/poisson/variance/benchmark/benchmark.native.js index de7a967d9951..2fe2449833b9 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/poisson/variance/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/poisson/variance/benchmark/benchmark.native.js @@ -24,7 +24,7 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); var tryRequire = require( '@stdlib/utils/try-require' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -49,7 +49,7 @@ bench( pkg+'::native', opts, function benchmark( b ) { len = 100; lambda = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - lambda[ i ] = ( randu() * 20.0 ) + EPS; + lambda[ i ] = uniform( EPS, 20.0 ); } b.tic();