From 574d6e816a1681dbe5219760f87ef31e53302632 Mon Sep 17 00:00:00 2001 From: Pranav Agrawal Date: Sat, 8 Feb 2025 12:11:49 +0530 Subject: [PATCH 1/6] bench: refactor: Refactor random number generation in JS benchmarks for stats/base/dists/normal --- 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/normal/cdf/benchmark/benchmark.js | 27 ++- .../dists/normal/ctor/benchmark/benchmark.js | 160 ++++++++++++++---- .../normal/entropy/benchmark/benchmark.js | 6 +- .../entropy/benchmark/benchmark.native.js | 7 +- .../normal/kurtosis/benchmark/benchmark.js | 16 +- .../normal/logcdf/benchmark/benchmark.js | 28 ++- .../normal/logpdf/benchmark/benchmark.js | 28 ++- .../dists/normal/mean/benchmark/benchmark.js | 16 +- .../normal/median/benchmark/benchmark.js | 16 +- .../dists/normal/mgf/benchmark/benchmark.js | 28 ++- .../dists/normal/mode/benchmark/benchmark.js | 16 +- .../dists/normal/pdf/benchmark/benchmark.js | 28 ++- .../normal/quantile/benchmark/benchmark.js | 28 ++- .../normal/skewness/benchmark/benchmark.js | 16 +- .../dists/normal/stdev/benchmark/benchmark.js | 6 +- .../stdev/benchmark/benchmark.native.js | 7 +- .../normal/variance/benchmark/benchmark.js | 16 +- 17 files changed, 341 insertions(+), 108 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/cdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/cdf/benchmark/benchmark.js index ddc5c30560e4..de6a22e92e3e 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/cdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/cdf/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,17 +33,24 @@ var cdf = require( './../lib' ); bench( pkg, function benchmark( b ) { var sigma; + var len; var mu; var x; var y; var i; + len = 100; + x = new Float64Array( len ); + mu = new Float64Array( len ); + sigma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -100.0, 100.0 ); + mu[ i ] = uniform( -50.0, 50.0 ); + sigma[ i ] = uniform( EPS, 20.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*200.0 ) - 100; - mu = ( randu()*100.0 ) - 50.0; - sigma = ( randu()*20.0 ) + EPS; - y = cdf( x, mu, sigma ); + y = cdf( x[ i % len ], mu[ i % len ], sigma[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -58,6 +66,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var mycdf; var sigma; + var len; var mu; var x; var y; @@ -66,11 +75,15 @@ bench( pkg+':factory', function benchmark( b ) { mu = 0.0; sigma = 1.5; mycdf = cdf.factory( mu, sigma ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -3.0, 3.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*6.0 ) - 3.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/normal/ctor/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js index f0ea2ca7f249..160bfdbbb1b7 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/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; @@ -33,18 +34,26 @@ var Normal = require( './../lib' ); bench( pkg+'::instantiation', function benchmark( b ) { var sigma; var dist; + var len; var mu; var i; + len = 100; + mu = new Float64Array( len ); + sigma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + mu[ i ] = uniform( EPS, 10.0 ); + sigma[ i ] = uniform( EPS, 10.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - mu = ( randu() * 10.0 ) + EPS; - sigma = ( randu() * 10.0 ) + EPS; - dist = new Normal( mu, sigma ); + dist = new Normal( mu[ i % len ], sigma[ i % len ] ); if ( !( dist instanceof Normal ) ) { b.fail( 'should return a distribution instance' ); } } + b.toc(); if ( !( dist instanceof Normal ) ) { b.fail( 'should return a distribution instance' ); @@ -71,6 +80,7 @@ bench( pkg+'::get:mu', function benchmark( b ) { b.fail( 'should return set value' ); } } + b.toc(); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -82,6 +92,7 @@ bench( pkg+'::get:mu', function benchmark( b ) { bench( pkg+'::set:mu', function benchmark( b ) { var sigma; var dist; + var len; var mu; var y; var i; @@ -89,12 +100,16 @@ bench( pkg+'::set:mu', function benchmark( b ) { mu = 2.0; sigma = 3.0; dist = new Normal( mu, sigma ); + len = 100; + y = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + y[ i ] = uniform( EPS, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = ( 100.0*randu() ) + EPS; - dist.mu = y; - if ( dist.mu !== y ) { + dist.mu = y[ i % len ]; + if ( dist.mu !== y[ i % len ] ) { b.fail( 'should return set value' ); } } @@ -124,6 +139,7 @@ bench( pkg+'::get:sigma', function benchmark( b ) { b.fail( 'should return set value' ); } } + b.toc(); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -135,6 +151,7 @@ bench( pkg+'::get:sigma', function benchmark( b ) { bench( pkg+'::set:sigma', function benchmark( b ) { var sigma; var dist; + var len; var mu; var y; var i; @@ -142,12 +159,16 @@ bench( pkg+'::set:sigma', function benchmark( b ) { mu = 2.0; sigma = 3.0; dist = new Normal( mu, sigma ); + len = 100; + y = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + y[ i ] = uniform( EPS, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = ( 100.0*randu() ) + EPS; - dist.sigma = y; - if ( dist.sigma !== y ) { + dist.sigma = y[ i % len ]; + if ( dist.sigma !== y[ i % len ] ) { b.fail( 'should return set value' ); } } @@ -162,17 +183,24 @@ bench( pkg+'::set:sigma', function benchmark( b ) { bench( pkg+':entropy', function benchmark( b ) { var sigma; var dist; + var len; var mu; + var x; var y; var i; mu = 2.0; sigma = 3.0; dist = new Normal( mu, sigma ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.mu = ( 100.0*randu() ) + EPS; + dist.mu = x[ i % len ]; y = dist.entropy; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -189,17 +217,24 @@ bench( pkg+':entropy', function benchmark( b ) { bench( pkg+':kurtosis', function benchmark( b ) { var sigma; var dist; + var len; var mu; + var x; var y; var i; mu = 2.0; sigma = 3.0; dist = new Normal( mu, sigma ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.mu = ( 100.0*randu() ) + EPS; + dist.mu = x[ i % len ]; y = dist.kurtosis; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -216,17 +251,24 @@ bench( pkg+':kurtosis', function benchmark( b ) { bench( pkg+':mean', function benchmark( b ) { var sigma; var dist; + var len; var mu; + var x; var y; var i; mu = 2.0; sigma = 3.0; dist = new Normal( mu, sigma ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.mu = ( 100.0*randu() ) + EPS; + dist.mu = x[ i % len ]; y = dist.mean; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -243,17 +285,24 @@ bench( pkg+':mean', function benchmark( b ) { bench( pkg+':median', function benchmark( b ) { var sigma; var dist; + var len; var mu; + var x; var y; var i; mu = 2.0; sigma = 3.0; dist = new Normal( mu, sigma ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.mu = ( 100.0*randu() ) + EPS; + dist.mu = x[ i % len ]; y = dist.median; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -270,17 +319,24 @@ bench( pkg+':median', function benchmark( b ) { bench( pkg+':mode', function benchmark( b ) { var sigma; var dist; + var len; var mu; + var x; var y; var i; mu = 2.0; sigma = 3.0; dist = new Normal( mu, sigma ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS + 1.0, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.mu = ( 100.0*randu() ) + 1.0 + EPS; + dist.mu = x[ i % len ]; y = dist.mode; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -297,17 +353,24 @@ bench( pkg+':mode', function benchmark( b ) { bench( pkg+':skewness', function benchmark( b ) { var sigma; var dist; + var len; var mu; + var x; var y; var i; mu = 2.0; sigma = 3.0; dist = new Normal( mu, sigma ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.mu = ( 100.0*randu() ) + EPS; + dist.mu = x[ i % len ]; y = dist.skewness; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -324,17 +387,23 @@ bench( pkg+':skewness', function benchmark( b ) { bench( pkg+':variance', function benchmark( b ) { var sigma; var dist; + var len; var mu; + var x; var y; var i; mu = 2.0; sigma = 3.0; dist = new Normal( mu, sigma ); - + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.mu = ( 100.0*randu() ) + EPS; + dist.mu = x[ i % len ]; y = dist.stdev; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -351,17 +420,24 @@ bench( pkg+':variance', function benchmark( b ) { bench( pkg+':variance', function benchmark( b ) { var sigma; var dist; + var len; var mu; + var x; var y; var i; mu = 2.0; sigma = 3.0; dist = new Normal( mu, sigma ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.mu = ( 100.0*randu() ) + EPS; + dist.mu = x[ i % len ]; y = dist.variance; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -378,6 +454,7 @@ bench( pkg+':variance', function benchmark( b ) { bench( pkg+':cdf', function benchmark( b ) { var sigma; var dist; + var len; var mu; var x; var y; @@ -386,11 +463,15 @@ bench( pkg+':cdf', function benchmark( b ) { mu = 2.0; sigma = 3.0; dist = new Normal( mu, sigma ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -3.0, 3.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*6.0 ) - 3.0; - y = dist.cdf( x ); + y = dist.cdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -406,6 +487,7 @@ bench( pkg+':cdf', function benchmark( b ) { bench( pkg+':logpdf', function benchmark( b ) { var sigma; var dist; + var len; var mu; var x; var y; @@ -414,11 +496,15 @@ bench( pkg+':logpdf', function benchmark( b ) { mu = 2.0; sigma = 3.0; dist = new Normal( mu, sigma ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -3.0, 3.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*6.0 ) - 3.0; - y = dist.logpdf( x ); + y = dist.logpdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -434,6 +520,7 @@ bench( pkg+':logpdf', function benchmark( b ) { bench( pkg+':mgf', function benchmark( b ) { var sigma; var dist; + var len; var mu; var x; var y; @@ -442,11 +529,15 @@ bench( pkg+':mgf', function benchmark( b ) { mu = 2.0; sigma = 0.2; dist = new Normal( mu, sigma ); + 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' ); } @@ -462,6 +553,7 @@ bench( pkg+':mgf', function benchmark( b ) { bench( pkg+':pdf', function benchmark( b ) { var sigma; var dist; + var len; var mu; var x; var y; @@ -470,11 +562,14 @@ bench( pkg+':pdf', function benchmark( b ) { mu = 2.0; sigma = 3.0; dist = new Normal( mu, sigma ); - + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -3.0, 3.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*6.0 ) - 3.0; - y = dist.pdf( x ); + y = dist.pdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -490,6 +585,7 @@ bench( pkg+':pdf', function benchmark( b ) { bench( pkg+':quantile', function benchmark( b ) { var sigma; var dist; + var len; var mu; var x; var y; @@ -498,11 +594,15 @@ bench( pkg+':quantile', function benchmark( b ) { mu = 2.0; sigma = 3.0; dist = new Normal( mu, sigma ); + 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/normal/entropy/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/entropy/benchmark/benchmark.js index 96820f8fbd43..feff6382a7a7 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/entropy/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/entropy/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; @@ -42,8 +42,8 @@ bench( pkg, function benchmark( b ) { mu = new Float64Array( len ); sigma = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - mu[ i ] = ( randu() * 100.0 ) - 50.0; - sigma[ i ] = ( randu() * 20.0 ) + EPS; + mu[ i ] = uniform( -50.0, 50.0 ); + sigma[ i ] = uniform( EPS, 20.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/entropy/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/normal/entropy/benchmark/benchmark.native.js index fc503983ade3..189668ce1eec 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/entropy/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/entropy/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 isnan = require( '@stdlib/math/base/assert/is-nan' ); var tryRequire = require( '@stdlib/utils/try-require' ); var EPS = require( '@stdlib/constants/float64/eps' ); @@ -51,9 +51,10 @@ bench( pkg+'::native', opts, function benchmark( b ) { mu = new Float64Array( len ); sigma = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - mu[ i ] = ( randu() * 100.0 ) - 50.0; - sigma[ i ] = ( randu() * 20.0 ) + EPS; + mu[ i ] = uniform( -50.0, 50.0 ); + sigma[ i ] = uniform( EPS, 20.0 ); } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { y = entropy( mu[ i % len ], sigma[ i % len ] ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/kurtosis/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/kurtosis/benchmark/benchmark.js index b3526149e651..bbd6032157d3 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/kurtosis/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/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,15 +33,22 @@ var kurtosis = require( './../lib' ); bench( pkg, function benchmark( b ) { var sigma; + var len; var mu; var y; var i; + len = 100; + mu = new Float64Array( len ); + sigma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + mu[ i ] = uniform( -50.0, 50.0 ); + sigma[ i ] = uniform( EPS, 20.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - mu = ( randu()*100.0 ) - 50.0; - sigma = ( randu()*20.0 ) + EPS; - y = kurtosis( mu, sigma ); + y = kurtosis( mu[ i % len ], sigma[ i % len] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/logcdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/logcdf/benchmark/benchmark.js index 56ab2fc449c7..b84feb24667a 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/logcdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/logcdf/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,17 +33,25 @@ var logcdf = require( './../lib' ); bench( pkg, function benchmark( b ) { var sigma; + var len; var mu; var x; var y; var i; + len = 100; + x = new Float64Array( len ); + mu = new Float64Array( len ); + sigma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -100.0, 100.0 ); + mu[ i ] = uniform( -50.0, 50.0 ); + sigma[ i ] = uniform( EPS, 20.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*200.0 ) - 100; - mu = ( randu()*100.0 ) - 50.0; - sigma = ( randu()*20.0 ) + EPS; - y = logcdf( x, mu, sigma ); + y = logcdf( x[ i % len ], mu[ i % len ], sigma[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -58,6 +67,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var mylogcdf; var sigma; + var len; var mu; var x; var y; @@ -66,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { mu = 0.0; sigma = 1.5; mylogcdf = logcdf.factory( mu, sigma ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -3.0, 3.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*6.0 ) - 3.0; - y = mylogcdf( x ); + y = mylogcdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/logpdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/logpdf/benchmark/benchmark.js index 4f4e863198a9..3a84ed57fe41 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/logpdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/logpdf/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,17 +33,25 @@ var logpdf = require( './../lib' ); bench( pkg, function benchmark( b ) { var sigma; + var len; var mu; var x; var y; var i; + len = 100; + x = new Float64Array( len ); + mu = new Float64Array( len ); + sigma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -100.0, 100.0 ); + mu[ i ] = uniform( -50.0, 50.0 ); + sigma[ i ] = uniform( EPS, 20.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*200.0 ) - 100; - mu = ( randu()*100.0 ) - 50.0; - sigma = ( randu()*20.0 ) + EPS; - y = logpdf( x, mu, sigma ); + y = logpdf( x[ i % len ], mu[ i % len ], sigma[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -58,6 +67,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var mylogpdf; var sigma; + var len; var mu; var x; var y; @@ -66,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { mu = 0.0; sigma = 1.5; mylogpdf = logpdf.factory( mu, sigma ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -3.0, 3.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*6.0 ) - 3.0; - y = mylogpdf( x ); + y = mylogpdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/mean/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/mean/benchmark/benchmark.js index ba35a34723d0..3a87197ae43f 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/mean/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/mean/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,15 +33,22 @@ var mean = require( './../lib' ); bench( pkg, function benchmark( b ) { var sigma; + var len; var mu; var y; var i; + len = 100; + mu = new Float64Array( len ); + sigma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + mu[ i ] = uniform( -50.0, 50.0 ); + sigma[ i ] = uniform( EPS, 20.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - mu = ( randu()*100.0 ) - 50.0; - sigma = ( randu()*20.0 ) + EPS; - y = mean( mu, sigma ); + y = mean( mu[ i % len ], sigma[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/median/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/median/benchmark/benchmark.js index 55185ccb1fdf..f0a00c5c2fba 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/median/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/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,15 +33,22 @@ var median = require( './../lib' ); bench( pkg, function benchmark( b ) { var sigma; + var len; var mu; var y; var i; + len = 100; + mu = new Float64Array( len ); + sigma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + mu[ i ] = uniform( -50.0, 50.0 ); + sigma[ i ] = uniform( EPS, 20.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - mu = ( randu()*100.0 ) - 50.0; - sigma = ( randu()*20.0 ) + EPS; - y = median( mu, sigma ); + y = median( mu[ i % len ], sigma[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/mgf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/mgf/benchmark/benchmark.js index d41f7bc5a100..2926817f5467 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/mgf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/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 EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -32,17 +33,25 @@ var mgf = require( './../lib' ); bench( pkg, function benchmark( b ) { var sigma; + var len; var mu; var t; var y; var i; + len = 100; + t = new Float64Array( len ); + mu = new Float64Array( len ); + sigma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + t[ i ] = uniform( 0.0, 1.0 ); + mu[ i ] = uniform( -50.0, 50.0 ); + sigma[ i ] = uniform( EPS, 20.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - t = randu(); - mu = ( randu()*100.0 ) - 50.0; - sigma = ( randu()*20.0 ) + EPS; - y = mgf( t, mu, sigma ); + y = mgf( t[ i % len ], mu[ i % len ], sigma[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -58,6 +67,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var mymgf; var sigma; + var len; var mu; var t; var y; @@ -66,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { mu = 0.0; sigma = 1.5; mymgf = mgf.factory( mu, sigma ); + len = 100; + t = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + t[ i ] = uniform( 0.0, 1.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - t = randu(); - 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/normal/mode/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/mode/benchmark/benchmark.js index efbace495dac..dc7bd2f29261 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/mode/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/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,15 +33,22 @@ var mode = require( './../lib' ); bench( pkg, function benchmark( b ) { var sigma; + var len; var mu; var y; var i; + len = 100; + mu = new Float64Array( len ); + sigma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + mu[ i ] = uniform( -50.0, 50.0 ); + sigma[ i ] = uniform( EPS, 20.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - mu = ( randu()*100.0 ) - 50.0; - sigma = ( randu()*20.0 ) + EPS; - y = mode( mu, sigma ); + y = mode( mu[ i % 100 ], sigma[ i % 100 ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/pdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/pdf/benchmark/benchmark.js index e5eeb61063a7..caf5aeb0e8bc 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/pdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/pdf/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,17 +33,25 @@ var pdf = require( './../lib' ); bench( pkg, function benchmark( b ) { var sigma; + var len; var mu; var x; var y; var i; + len = 100; + x = new Float64Array( len ); + mu = new Float64Array( len ); + sigma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -100.0, 100.0 ); + mu[ i ] = uniform( -50.0, 50.0 ); + sigma[ i ] = uniform( EPS, 20.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*200.0 ) - 100; - mu = ( randu()*100.0 ) - 50.0; - sigma = ( randu()*20.0 ) + EPS; - y = pdf( x, mu, sigma ); + y = pdf( x[ i % 100 ], mu[ i % 100 ], sigma[ i % 100 ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -58,6 +67,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var mypdf; var sigma; + var len; var mu; var x; var y; @@ -66,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { mu = 0.0; sigma = 1.5; mypdf = pdf.factory( mu, sigma ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -3.0, 3.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*6.0 ) - 3.0; - y = mypdf( x ); + y = mypdf( x[ i % 100 ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/quantile/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/quantile/benchmark/benchmark.js index a1545d665809..5a9cda163a1e 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/quantile/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/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 EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -32,17 +33,25 @@ var quantile = require( './../lib' ); bench( pkg, function benchmark( b ) { var sigma; + var len; var mu; var p; var y; var i; + len = 100; + p = new Float64Array( len ); + mu = new Float64Array( len ); + sigma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + p[ i ] = uniform( 0.0, 1.0 ); + mu[ i ] = uniform( -50.0, 50.0 ); + sigma[ i ] = uniform( EPS, 20.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - p = randu(); - mu = ( randu()*100.0 ) - 50.0; - sigma = ( randu()*20.0 ) + EPS; - y = quantile( p, mu, sigma ); + y = quantile( p[ i % 100 ], mu[ i % 100 ], sigma[ i % 100 ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -58,6 +67,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var myquantile; var sigma; + var len; var mu; var p; var y; @@ -66,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { mu = 0.0; sigma = 1.5; myquantile = quantile.factory( mu, sigma ); + 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 % 100 ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/skewness/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/skewness/benchmark/benchmark.js index c836ff5e0ee9..0a8c75085af0 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/skewness/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/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,15 +33,22 @@ var skewness = require( './../lib' ); bench( pkg, function benchmark( b ) { var sigma; + var len; var mu; var y; var i; + len = 100; + mu = new Float64Array( len ); + sigma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + mu[ i ] = uniform( -50.0, 50.0 ); + sigma[ i ] = uniform( EPS, 20.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - mu = ( randu()*100.0 ) - 50.0; - sigma = ( randu()*20.0 ) + EPS; - y = skewness( mu, sigma ); + y = skewness( mu[ i % len ], sigma[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/stdev/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/stdev/benchmark/benchmark.js index 8033db80b4f5..7e502459850b 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/stdev/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/stdev/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; @@ -42,8 +42,8 @@ bench( pkg, function benchmark( b ) { mu = new Float64Array( len ); sigma = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - mu[ i ] = ( randu() * 100.0 ) - 50.0; - sigma[ i ] = ( randu() * 20.0 ) + EPS; + mu[ i ] = uniform( -50.0, 50.0 ); + sigma[ i ] = uniform( EPS, 20.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/stdev/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/normal/stdev/benchmark/benchmark.native.js index dd11d665757a..45ea2f7b5d7f 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/stdev/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/stdev/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 isnan = require( '@stdlib/math/base/assert/is-nan' ); var tryRequire = require( '@stdlib/utils/try-require' ); var EPS = require( '@stdlib/constants/float64/eps' ); @@ -51,9 +51,10 @@ bench( pkg+'::native', opts, function benchmark( b ) { mu = new Float64Array( len ); sigma = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - mu[ i ] = ( randu() * 100.0 ) - 50.0; - sigma[ i ] = ( randu() * 20.0 ) + EPS; + mu[ i ] = uniform( -50.0, 50.0 ); + sigma[ i ] = uniform( EPS, 20.0 ); } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { y = stdev( mu[ i % len ], sigma[ i % len ] ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/variance/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/variance/benchmark/benchmark.js index 3e7c92d2e3e2..a4806e716a75 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/variance/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/variance/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,15 +33,22 @@ var variance = require( './../lib' ); bench( pkg, function benchmark( b ) { var sigma; + var len; var mu; var y; var i; + len = 100; + mu = new Float64Array( len ); + sigma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + mu[ i ] = uniform( -50.0, 50.0 ); + sigma[ i ] = uniform( EPS, 20.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - mu = ( randu()*100.0 ) - 50.0; - sigma = ( randu()*20.0 ) + EPS; - y = variance( mu, sigma ); + y = variance( mu[ i % len ], sigma[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } From 5720f6cec07cb68044cbb32034eabc9251c34922 Mon Sep 17 00:00:00 2001 From: Pranav Agrawal Date: Mon, 10 Feb 2025 14:05:21 +0530 Subject: [PATCH 2/6] bench: refactor random number generation in stats/base/dists/normal --- 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 --- --- .../@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js | 2 +- .../@stdlib/stats/base/dists/normal/mode/benchmark/benchmark.js | 2 +- .../@stdlib/stats/base/dists/normal/pdf/benchmark/benchmark.js | 2 +- .../stats/base/dists/normal/quantile/benchmark/benchmark.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js index 160bfdbbb1b7..26c188c802a6 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js @@ -534,7 +534,6 @@ bench( pkg+':mgf', function benchmark( b ) { for ( i = 0; i < len; i++ ) { x[ i ] = uniform( 0.0, 1.0 ); } - b.tic(); for ( i = 0; i < b.iterations; i++ ) { y = dist.mgf( x[ i % len ] ); @@ -567,6 +566,7 @@ bench( pkg+':pdf', function benchmark( b ) { for ( i = 0; i < len; i++ ) { x[ i ] = uniform( -3.0, 3.0 ); } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { y = dist.pdf( x[ i % len ] ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/mode/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/mode/benchmark/benchmark.js index dc7bd2f29261..beac575f834d 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/mode/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/mode/benchmark/benchmark.js @@ -48,7 +48,7 @@ bench( pkg, function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = mode( mu[ i % 100 ], sigma[ i % 100 ] ); + y = mode( mu[ i % len ], sigma[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/pdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/pdf/benchmark/benchmark.js index caf5aeb0e8bc..1a0b690f4e56 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/pdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/pdf/benchmark/benchmark.js @@ -84,7 +84,7 @@ bench( pkg+':factory', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = mypdf( x[ i % 100 ] ); + y = mypdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/quantile/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/quantile/benchmark/benchmark.js index 5a9cda163a1e..395e2d6002cc 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/quantile/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/quantile/benchmark/benchmark.js @@ -84,7 +84,7 @@ bench( pkg+':factory', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = myquantile( p[ i % 100 ] ); + y = myquantile( p[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } From 4928d86560d71b88939d9e821fa9801dade9c35e Mon Sep 17 00:00:00 2001 From: Pranav Agrawal Date: Mon, 10 Feb 2025 14:06:27 +0530 Subject: [PATCH 3/6] bench: refactor random number generation in stats/base/dists/normal --- 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 --- --- .../@stdlib/stats/base/dists/normal/pdf/benchmark/benchmark.js | 2 +- .../stats/base/dists/normal/quantile/benchmark/benchmark.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/pdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/pdf/benchmark/benchmark.js index 1a0b690f4e56..2dd3a3aeed4d 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/pdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/pdf/benchmark/benchmark.js @@ -51,7 +51,7 @@ bench( pkg, function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = pdf( x[ i % 100 ], mu[ i % 100 ], sigma[ i % 100 ] ); + y = pdf( x[ i % len ], mu[ i % len ], sigma[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/quantile/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/quantile/benchmark/benchmark.js index 395e2d6002cc..fcd709bbc336 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/quantile/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/quantile/benchmark/benchmark.js @@ -51,7 +51,7 @@ bench( pkg, function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = quantile( p[ i % 100 ], mu[ i % 100 ], sigma[ i % 100 ] ); + y = quantile( p[ i % len ], mu[ i % len ], sigma[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } From ccc971504cdb1111c89a6d7fab7d54e6ca0cbb61 Mon Sep 17 00:00:00 2001 From: Pranav Agrawal Date: Tue, 11 Feb 2025 04:11:18 +0530 Subject: [PATCH 4/6] bench: refactor random number generation in stats/base/dists/normal --- 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 --- --- type: pre_push_report description: Results of running various checks prior to pushing changes. report: - task: run_javascript_examples status: na - task: run_c_examples status: na - task: run_cpp_examples status: na - task: run_javascript_readme_examples status: na - task: run_c_benchmarks status: na - task: run_cpp_benchmarks status: na - task: run_fortran_benchmarks status: na - task: run_javascript_benchmarks status: passed - task: run_julia_benchmarks status: na - task: run_python_benchmarks status: na - task: run_r_benchmarks status: na - task: run_javascript_tests status: na --- --- .../stats/base/dists/normal/ctor/benchmark/benchmark.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js index 26c188c802a6..b764d39b3083 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js @@ -53,7 +53,6 @@ bench( pkg+'::instantiation', function benchmark( b ) { b.fail( 'should return a distribution instance' ); } } - b.toc(); if ( !( dist instanceof Normal ) ) { b.fail( 'should return a distribution instance' ); @@ -80,7 +79,6 @@ bench( pkg+'::get:mu', function benchmark( b ) { b.fail( 'should return set value' ); } } - b.toc(); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -139,7 +137,6 @@ bench( pkg+'::get:sigma', function benchmark( b ) { b.fail( 'should return set value' ); } } - b.toc(); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); From 4fd5961a7467967d1121cc79b5569a32588b96e8 Mon Sep 17 00:00:00 2001 From: Pranav Agrawal Date: Tue, 18 Feb 2025 22:22:51 +0530 Subject: [PATCH 5/6] bench: refactor random number generation in stats/base/dists/normal --- 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 --- --- .../@stdlib/stats/base/dists/normal/cdf/benchmark/benchmark.js | 1 + .../@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js | 2 ++ .../stats/base/dists/normal/logcdf/benchmark/benchmark.js | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/cdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/cdf/benchmark/benchmark.js index de6a22e92e3e..54c83e66ecae 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/cdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/cdf/benchmark/benchmark.js @@ -48,6 +48,7 @@ bench( pkg, function benchmark( b ) { mu[ i ] = uniform( -50.0, 50.0 ); sigma[ i ] = uniform( EPS, 20.0 ); } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { y = cdf( x[ i % len ], mu[ i % len ], sigma[ i % len ] ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js index b764d39b3083..6e76e8c932d1 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js @@ -398,6 +398,7 @@ bench( pkg+':variance', function benchmark( b ) { for ( i = 0; i < len; i++ ) { x[ i ] = uniform( EPS, 100.0 ); } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { dist.mu = x[ i % len ]; @@ -531,6 +532,7 @@ bench( pkg+':mgf', function benchmark( b ) { for ( i = 0; i < len; i++ ) { x[ i ] = uniform( 0.0, 1.0 ); } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { y = dist.mgf( x[ i % len ] ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/logcdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/logcdf/benchmark/benchmark.js index b84feb24667a..6c4806545647 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/logcdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/logcdf/benchmark/benchmark.js @@ -22,7 +22,7 @@ var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var uniform = require( '@stdlib/random/base/uniform' ); +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; From b48b6361ff01de0137026505b9c62ab6c5f7e94b Mon Sep 17 00:00:00 2001 From: Pranav Agrawal Date: Tue, 18 Feb 2025 22:23:59 +0530 Subject: [PATCH 6/6] bench: refactor random number generation in stats/base/dists/normal --- 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 --- --- .../@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js index 6e76e8c932d1..ce0efaebc333 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/normal/ctor/benchmark/benchmark.js @@ -328,7 +328,7 @@ bench( pkg+':mode', function benchmark( b ) { len = 100; x = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = uniform( EPS + 1.0, 100.0 ); + x[ i ] = uniform( 1.0 + EPS, 100.0 ); } b.tic();