From 40aae666b0b950dc99a5b8b80ff46c3e61ca405c Mon Sep 17 00:00:00 2001 From: Karan Anand Date: Thu, 16 Jan 2025 07:44:13 -0800 Subject: [PATCH 1/4] refactor: random number generation in JS benchmarks for stats/base/dists/bernoulli --- 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: passed - task: run_c_examples status: passed - task: run_cpp_examples status: na - task: run_javascript_readme_examples status: passed - task: run_c_benchmarks status: passed - 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: passed --- --- type: pre_push_report description: Results of running various checks prior to pushing changes. report: - task: run_javascript_examples status: passed - task: run_c_examples status: passed - task: run_cpp_examples status: na - task: run_javascript_readme_examples status: passed - task: run_c_benchmarks status: passed - 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: passed --- --- .../stats/base/dists/bernoulli/cdf/benchmark/benchmark.js | 5 +++-- .../stats/base/dists/bernoulli/mean/benchmark/benchmark.js | 4 ++-- .../base/dists/bernoulli/mean/benchmark/benchmark.native.js | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/cdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/cdf/benchmark/benchmark.js index a8e6ab48ee60..c8d1260e32bd 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/cdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/cdf/benchmark/benchmark.js @@ -22,6 +22,7 @@ var bench = require( '@stdlib/bench' ); var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var cdf = require( './../lib' ); @@ -37,7 +38,7 @@ bench( pkg, function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*3.0 ) - 1.0; + x = uniform( -1.0, 2.0 ); p = randu(); y = cdf( x, p ); if ( isnan( y ) ) { @@ -64,7 +65,7 @@ bench( pkg+':factory', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*3.0 ) - 1.0; + x = uniform( -1.0, 2.0 ); y = mycdf( x ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.js index 3f21a07a88e4..ba3a14265900 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/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,7 +40,7 @@ bench( pkg, function benchmark( b ) { len = 100; p = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - p[ i ] = ( randu()*1.0 ) + EPS; + p[ i ] = uniform( EPS, EPS + 1.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.native.js index bc1fb7c2475a..a9a4caa2c52a 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/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; p = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - p[ i ] = ( randu()*1.0 ) + EPS; + p[ i ] = uniform( EPS, EPS + 1.0 ); } b.tic(); From 3aea2d66a0bc13275198b2f1c6438110cde02b5a Mon Sep 17 00:00:00 2001 From: Athan Date: Thu, 16 Jan 2025 14:28:18 -0800 Subject: [PATCH 2/4] Apply suggestions from code review Signed-off-by: Athan --- .../stats/base/dists/bernoulli/mean/benchmark/benchmark.js | 2 +- .../base/dists/bernoulli/mean/benchmark/benchmark.native.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.js index ba3a14265900..c3660d5ddfda 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.js @@ -40,7 +40,7 @@ bench( pkg, function benchmark( b ) { len = 100; p = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - p[ i ] = uniform( EPS, EPS + 1.0 ); + p[ i ] = uniform( EPS, 1.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.native.js index a9a4caa2c52a..8343e06bbeba 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.native.js @@ -49,7 +49,7 @@ bench( pkg+'::native', opts, function benchmark( b ) { len = 100; p = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - p[ i ] = uniform( EPS, EPS + 1.0 ); + p[ i ] = uniform( EPS, 1.0 ); } b.tic(); From d6c90840b44124f5d1c762e68ea6bc49153a690b Mon Sep 17 00:00:00 2001 From: Karan Anand Date: Fri, 17 Jan 2025 22:07:47 -0800 Subject: [PATCH 3/4] refactor: improve random number generation in JS benchmarks for stats/base/dists/bernoulli --- 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 --- --- .../bernoulli/cdf/benchmark/benchmark.js | 3 +- .../bernoulli/ctor/benchmark/benchmark.js | 30 +++++++++---------- .../bernoulli/entropy/benchmark/benchmark.js | 4 +-- .../bernoulli/kurtosis/benchmark/benchmark.js | 4 +-- .../bernoulli/mean/benchmark/benchmark.js | 2 +- .../mean/benchmark/benchmark.native.js | 2 +- .../bernoulli/median/benchmark/benchmark.js | 4 +-- .../bernoulli/mgf/benchmark/benchmark.js | 8 ++--- .../bernoulli/mode/benchmark/benchmark.js | 4 +-- .../mode/benchmark/benchmark.native.js | 4 +-- .../bernoulli/pmf/benchmark/benchmark.js | 10 +++---- .../bernoulli/quantile/benchmark/benchmark.js | 8 ++--- .../bernoulli/skewness/benchmark/benchmark.js | 4 +-- .../bernoulli/stdev/benchmark/benchmark.js | 4 +-- .../bernoulli/variance/benchmark/benchmark.js | 4 +-- 15 files changed, 47 insertions(+), 48 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/cdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/cdf/benchmark/benchmark.js index c8d1260e32bd..e652cad339f7 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/cdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/cdf/benchmark/benchmark.js @@ -21,7 +21,6 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; @@ -39,7 +38,7 @@ bench( pkg, function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { x = uniform( -1.0, 2.0 ); - p = randu(); + p = uniform( 0.0, 1.0 ); y = cdf( x, p ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/ctor/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/ctor/benchmark/benchmark.js index ccc73d6e7059..68661667a2e2 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/ctor/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/ctor/benchmark/benchmark.js @@ -21,8 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); -var round = require( '@stdlib/math/base/special/round' ); +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 ln = require( '@stdlib/math/base/special/ln' ); var pkg = require( './../package.json' ).name; @@ -38,7 +38,7 @@ bench( pkg+'::instantiation', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - p = randu(); + p = uniform( 0.0, 1.0 ); dist = new Bernoulli( p ); if ( !( dist instanceof Bernoulli ) ) { b.fail( 'should return a distribution instance' ); @@ -87,7 +87,7 @@ bench( pkg+'::set:p', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = randu(); + y = uniform( 0.0, 1.0 ); dist.p = y; if ( dist.p !== y ) { b.fail( 'should return set value' ); @@ -112,7 +112,7 @@ bench( pkg+':entropy', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.p = randu(); + dist.p = uniform( 0.0, 1.0 ); y = dist.entropy; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -137,7 +137,7 @@ bench( pkg+':kurtosis', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.p = randu(); + dist.p = uniform( 0.0, 1.0 ); y = dist.kurtosis; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -162,7 +162,7 @@ bench( pkg+':mean', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.p = randu(); + dist.p = uniform( 0.0, 1.0 ); y = dist.mean; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -187,7 +187,7 @@ bench( pkg+':median', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.p = randu(); + dist.p = uniform( 0.0, 1.0 ); y = dist.median; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -212,7 +212,7 @@ bench( pkg+':skewness', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.p = randu(); + dist.p = uniform( 0.0, 1.0 ); y = dist.skewness; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -237,7 +237,7 @@ bench( pkg+':stdev', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.p = randu(); + dist.p = uniform( 0.0, 1.0 ); y = dist.stdev; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -262,7 +262,7 @@ bench( pkg+':variance', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.p = randu(); + dist.p = uniform( 0.0, 1.0 ); y = dist.variance; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -288,7 +288,7 @@ bench( pkg+':cdf', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu() * 6.0; + x = uniform( 0.0, 6.0 ); y = dist.cdf( x ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -314,7 +314,7 @@ bench( pkg+':mgf', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu() * ( -ln( 1.0-p ) ); + x = uniform( 0.0, -ln( 1.0-p ) ); y = dist.mgf( x ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -340,7 +340,7 @@ bench( pkg+':pmf', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = round( randu() * 8.0 ); + x = discreteUniform( 0, 8 ); y = dist.pmf( x ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -366,7 +366,7 @@ bench( pkg+':quantile', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu(); + x = uniform( 0.0, 1.0 ); y = dist.quantile( x ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/entropy/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/entropy/benchmark/benchmark.js index 9298ac5cb302..509f5ea88732 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/entropy/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/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 pkg = require( './../package.json' ).name; var entropy = require( './../lib' ); @@ -39,7 +39,7 @@ bench( pkg, function benchmark( b ) { len = 100; p = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - p[ i ] = randu(); + p[ i ] = uniform( 0.0, 1.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/kurtosis/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/kurtosis/benchmark/benchmark.js index c53005a17531..3a551ebca586 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/kurtosis/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/kurtosis/benchmark/benchmark.js @@ -21,7 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var kurtosis = require( './../lib' ); @@ -36,7 +36,7 @@ bench( pkg, function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - p = randu(); + p = uniform( 0.0, 1.0 ); y = kurtosis( p ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.js index ba3a14265900..c3660d5ddfda 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.js @@ -40,7 +40,7 @@ bench( pkg, function benchmark( b ) { len = 100; p = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - p[ i ] = uniform( EPS, EPS + 1.0 ); + p[ i ] = uniform( EPS, 1.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.native.js index a9a4caa2c52a..8343e06bbeba 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mean/benchmark/benchmark.native.js @@ -49,7 +49,7 @@ bench( pkg+'::native', opts, function benchmark( b ) { len = 100; p = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - p[ i ] = uniform( EPS, EPS + 1.0 ); + p[ i ] = uniform( EPS, 1.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/median/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/median/benchmark/benchmark.js index 504b50bea9b5..8931f38cc224 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/median/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/median/benchmark/benchmark.js @@ -21,7 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var median = require( './../lib' ); @@ -36,7 +36,7 @@ bench( pkg, function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - p = randu(); + p = uniform( 0.0, 1.0 ); y = median( p ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mgf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mgf/benchmark/benchmark.js index 01dbb093cdad..5a66b3171885 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mgf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mgf/benchmark/benchmark.js @@ -21,7 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +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' ); @@ -37,8 +37,8 @@ bench( pkg, function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - p = randu(); - t = randu() * 3.0; + p = uniform( 0.0, 1.0 ); + t = uniform( 0.0, 3.0 ); y = mgf( t, p ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -64,7 +64,7 @@ bench( pkg+':factory', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - t = randu() * 3.0; + t = uniform( 0.0, 3.0 ); y = mymgf( t ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mode/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mode/benchmark/benchmark.js index c9593b5244c1..e36cce4b1222 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mode/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mode/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 pkg = require( './../package.json' ).name; var mode = require( './../lib' ); @@ -39,7 +39,7 @@ bench( pkg, function benchmark( b ) { len = 100; p = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - p[ i ] = randu(); + p[ i ] = uniform( 0.0, 1.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mode/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mode/benchmark/benchmark.native.js index 9f05adb6c77a..7080b2c2811a 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mode/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mode/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 pkg = require( './../package.json' ).name; @@ -48,7 +48,7 @@ bench( pkg+'::native', opts, function benchmark( b ) { len = 100; p = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - p[ i ] = randu(); + p[ i ] = uniform( 0.0, 1.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/benchmark/benchmark.js index 6a067aebb893..1b45d96fd15b 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/benchmark/benchmark.js @@ -21,8 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); -var round = require( '@stdlib/math/base/special/round' ); +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' ); @@ -38,8 +38,8 @@ bench( pkg, function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = round( randu()*3.0 ); - p = randu(); + x = discreteUniform( 0, 3 ); + p = uniform( 0.0, 1.0 ); y = pmf( x, p ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -65,7 +65,7 @@ bench( pkg+':factory', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu() * 3.0; + x = uniform( 0.0, 3.0 ); y = mypmf( x ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.js index afdccc79cc91..2bfcaea27081 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.js @@ -21,7 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +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' ); @@ -37,8 +37,8 @@ bench( pkg, function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - r = randu(); - p = randu(); + r = uniform( 0.0, 1.0 ); + p = uniform( 0.0, 1.0 ); y = quantile( r, p ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -64,7 +64,7 @@ bench( pkg+':factory', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - r = randu(); + r = uniform( 0.0, 1.0 ); y = myquantile( r ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/skewness/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/skewness/benchmark/benchmark.js index e9cf3043fd80..2df2943189a4 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/skewness/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/skewness/benchmark/benchmark.js @@ -21,7 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var skewness = require( './../lib' ); @@ -36,7 +36,7 @@ bench( pkg, function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - p = randu(); + p = uniform( 0.0, 1.0 ); y = skewness( p ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/stdev/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/stdev/benchmark/benchmark.js index 5bf35c5265ec..b3d395bab1c2 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/stdev/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/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 pkg = require( './../package.json' ).name; var stdev = require( './../lib' ); @@ -39,7 +39,7 @@ bench( pkg, function benchmark( b ) { len = 100; p = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - p[ i ] = randu(); + p[ i ] = uniform( 0.0, 1.0 ); } b.tic(); for ( i = 0; i < b.iterations; i++ ) { diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/variance/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/variance/benchmark/benchmark.js index 06540cf44d99..887a3cdeeb1d 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/variance/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/variance/benchmark/benchmark.js @@ -21,7 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var variance = require( './../lib' ); @@ -36,7 +36,7 @@ bench( pkg, function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - p = randu(); + p = uniform( 0.0, 1.0 ); y = variance( p ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); From f2ab87adb46a2a93340b8aadd6b742a219cdf466 Mon Sep 17 00:00:00 2001 From: Karan Anand Date: Fri, 17 Jan 2025 23:33:25 -0800 Subject: [PATCH 4/4] bench: move random number generation outside the benchmarking loops --- 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 --- --- .../bernoulli/cdf/benchmark/benchmark.js | 23 +++- .../bernoulli/ctor/benchmark/benchmark.js | 121 +++++++++++++++--- .../bernoulli/kurtosis/benchmark/benchmark.js | 11 +- .../bernoulli/median/benchmark/benchmark.js | 11 +- .../bernoulli/mgf/benchmark/benchmark.js | 23 +++- .../bernoulli/mode/benchmark/benchmark.js | 2 +- .../bernoulli/pmf/benchmark/benchmark.js | 23 +++- .../bernoulli/quantile/benchmark/benchmark.js | 23 +++- .../bernoulli/skewness/benchmark/benchmark.js | 11 +- .../bernoulli/variance/benchmark/benchmark.js | 11 +- 10 files changed, 210 insertions(+), 49 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/cdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/cdf/benchmark/benchmark.js index e652cad339f7..a19bc1f5be82 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/cdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/cdf/benchmark/benchmark.js @@ -21,6 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); +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; @@ -30,16 +31,23 @@ var cdf = require( './../lib' ); // MAIN // bench( pkg, function benchmark( b ) { + var len; var p; var x; var y; var i; + len = 100; + p = new Float64Array( len ); + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -1.0, 2.0 ); + p[ i ] = uniform( 0.0, 1.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = uniform( -1.0, 2.0 ); - p = uniform( 0.0, 1.0 ); - y = cdf( x, p ); + y = cdf( x[ i % len ], p[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -54,6 +62,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var mycdf; + var len; var p; var x; var y; @@ -61,11 +70,15 @@ bench( pkg+':factory', function benchmark( b ) { p = 0.3; mycdf = cdf.factory( p ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -1.0, 2.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = uniform( -1.0, 2.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/bernoulli/ctor/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/ctor/benchmark/benchmark.js index 68661667a2e2..a316f0e6ab81 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/ctor/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/ctor/benchmark/benchmark.js @@ -21,6 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); +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' ); @@ -33,13 +34,19 @@ var Bernoulli = require( './../lib' ); bench( pkg+'::instantiation', function benchmark( b ) { var dist; + var len; var p; var i; + 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 = uniform( 0.0, 1.0 ); - dist = new Bernoulli( p ); + dist = new Bernoulli( p[ i % len ] ); if ( !( dist instanceof Bernoulli ) ) { b.fail( 'should return a distribution instance' ); } @@ -78,18 +85,23 @@ bench( pkg+'::get:p', function benchmark( b ) { bench( pkg+'::set:p', function benchmark( b ) { var dist; + var len; var p; var y; var i; p = 0.54; dist = new Bernoulli( p ); + len = 100; + y = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + y[ i ] = uniform( 0.0, 1.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = uniform( 0.0, 1.0 ); - dist.p = y; - if ( dist.p !== y ) { + dist.p = y[ i % len ]; + if ( dist.p !== y[ i % len ] ) { b.fail( 'should return set value' ); } } @@ -103,16 +115,23 @@ bench( pkg+'::set:p', function benchmark( b ) { bench( pkg+':entropy', function benchmark( b ) { var dist; + var len; + var x; var p; var y; var i; p = 0.54; dist = new Bernoulli( p ); + 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++ ) { - dist.p = uniform( 0.0, 1.0 ); + dist.p = x[ i % len ]; y = dist.entropy; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -128,16 +147,23 @@ bench( pkg+':entropy', function benchmark( b ) { bench( pkg+':kurtosis', function benchmark( b ) { var dist; + var len; + var x; var p; var y; var i; p = 0.54; dist = new Bernoulli( p ); + 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++ ) { - dist.p = uniform( 0.0, 1.0 ); + dist.p = x[ i % len ]; y = dist.kurtosis; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -153,16 +179,23 @@ bench( pkg+':kurtosis', function benchmark( b ) { bench( pkg+':mean', function benchmark( b ) { var dist; + var len; + var x; var p; var y; var i; p = 0.54; dist = new Bernoulli( p ); + 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++ ) { - dist.p = uniform( 0.0, 1.0 ); + dist.p = x[ i % len ]; y = dist.mean; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -178,16 +211,23 @@ bench( pkg+':mean', function benchmark( b ) { bench( pkg+':median', function benchmark( b ) { var dist; + var len; + var x; var p; var y; var i; p = 0.54; dist = new Bernoulli( p ); + 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++ ) { - dist.p = uniform( 0.0, 1.0 ); + dist.p = x[ i % len ]; y = dist.median; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -203,16 +243,23 @@ bench( pkg+':median', function benchmark( b ) { bench( pkg+':skewness', function benchmark( b ) { var dist; + var len; + var x; var p; var y; var i; p = 0.54; dist = new Bernoulli( p ); + 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++ ) { - dist.p = uniform( 0.0, 1.0 ); + dist.p = x[ i % len ]; y = dist.skewness; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -228,16 +275,23 @@ bench( pkg+':skewness', function benchmark( b ) { bench( pkg+':stdev', function benchmark( b ) { var dist; + var len; + var x; var p; var y; var i; p = 0.54; dist = new Bernoulli( p ); + 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++ ) { - dist.p = uniform( 0.0, 1.0 ); + dist.p = x[ i % len ]; y = dist.stdev; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -253,16 +307,23 @@ bench( pkg+':stdev', function benchmark( b ) { bench( pkg+':variance', function benchmark( b ) { var dist; + var len; + var x; var p; var y; var i; p = 0.54; dist = new Bernoulli( p ); + 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++ ) { - dist.p = uniform( 0.0, 1.0 ); + dist.p = x[ i % len ]; y = dist.variance; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -278,6 +339,7 @@ bench( pkg+':variance', function benchmark( b ) { bench( pkg+':cdf', function benchmark( b ) { var dist; + var len; var p; var x; var y; @@ -285,11 +347,15 @@ bench( pkg+':cdf', function benchmark( b ) { p = 0.54; dist = new Bernoulli( p ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, 6.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = uniform( 0.0, 6.0 ); - y = dist.cdf( x ); + y = dist.cdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -304,6 +370,7 @@ bench( pkg+':cdf', function benchmark( b ) { bench( pkg+':mgf', function benchmark( b ) { var dist; + var len; var p; var x; var y; @@ -311,11 +378,15 @@ bench( pkg+':mgf', function benchmark( b ) { p = 0.54; dist = new Bernoulli( p ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, -ln( 1.0-p ) ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = uniform( 0.0, -ln( 1.0-p ) ); - y = dist.mgf( x ); + y = dist.mgf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -330,6 +401,7 @@ bench( pkg+':mgf', function benchmark( b ) { bench( pkg+':pmf', function benchmark( b ) { var dist; + var len; var p; var x; var y; @@ -337,11 +409,15 @@ bench( pkg+':pmf', function benchmark( b ) { p = 0.54; dist = new Bernoulli( p ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = discreteUniform( 0, 8 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = discreteUniform( 0, 8 ); - y = dist.pmf( x ); + y = dist.pmf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -356,6 +432,7 @@ bench( pkg+':pmf', function benchmark( b ) { bench( pkg+':quantile', function benchmark( b ) { var dist; + var len; var p; var x; var y; @@ -363,11 +440,15 @@ bench( pkg+':quantile', function benchmark( b ) { p = 0.54; dist = new Bernoulli( p ); + 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 = uniform( 0.0, 1.0 ); - 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/bernoulli/kurtosis/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/kurtosis/benchmark/benchmark.js index 3a551ebca586..afbb7e7ec478 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/kurtosis/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/kurtosis/benchmark/benchmark.js @@ -21,6 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); +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; @@ -30,14 +31,20 @@ var kurtosis = require( './../lib' ); // MAIN // bench( pkg, function benchmark( b ) { + var len; var p; var y; var i; + 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 = uniform( 0.0, 1.0 ); - y = kurtosis( p ); + y = kurtosis( p[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/median/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/median/benchmark/benchmark.js index 8931f38cc224..d2477293053c 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/median/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/median/benchmark/benchmark.js @@ -21,6 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); +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; @@ -30,14 +31,20 @@ var median = require( './../lib' ); // MAIN // bench( pkg, function benchmark( b ) { + var len; var p; var y; var i; + 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 = uniform( 0.0, 1.0 ); - y = median( p ); + y = median( p[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mgf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mgf/benchmark/benchmark.js index 5a66b3171885..2abe4e684614 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mgf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mgf/benchmark/benchmark.js @@ -21,6 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); +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; @@ -30,16 +31,23 @@ var mgf = require( './../lib' ); // MAIN // bench( pkg, function benchmark( b ) { + var len; var p; var t; var y; var i; + len = 100; + p = new Float64Array( len ); + t = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + p[ i ] = uniform( 0.0, 1.0 ); + t[ i ] = uniform( 0.0, 3.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - p = uniform( 0.0, 1.0 ); - t = uniform( 0.0, 3.0 ); - y = mgf( t, p ); + y = mgf( t[ i % len ], p[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -54,6 +62,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var mymgf; + var len; var p; var t; var y; @@ -61,11 +70,15 @@ bench( pkg+':factory', function benchmark( b ) { p = 0.3; mymgf = mgf.factory( p ); + len = 100; + t = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + t[ i ] = uniform( 0.0, 3.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - t = uniform( 0.0, 3.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/bernoulli/mode/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mode/benchmark/benchmark.js index e36cce4b1222..2bffbc9405e6 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mode/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/mode/benchmark/benchmark.js @@ -44,7 +44,7 @@ bench( pkg, function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = mode( p[ i%len ] ); + y = mode( p[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/benchmark/benchmark.js index 1b45d96fd15b..5a1ae4b5e3dd 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/pmf/benchmark/benchmark.js @@ -21,6 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); +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' ); @@ -31,16 +32,23 @@ var pmf = require( './../lib' ); // MAIN // bench( pkg, function benchmark( b ) { + var len; var p; var x; var y; var i; + len = 100; + x = new Float64Array( len ); + p = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = discreteUniform( 0, 3 ); + p[ i ] = uniform( 0.0, 1.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = discreteUniform( 0, 3 ); - p = uniform( 0.0, 1.0 ); - y = pmf( x, p ); + y = pmf( x[ i % len ], p[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -55,6 +63,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var mypmf; + var len; var p; var x; var y; @@ -62,11 +71,15 @@ bench( pkg+':factory', function benchmark( b ) { p = 0.3; mypmf = pmf.factory( p ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = discreteUniform( 0, 3 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = uniform( 0.0, 3.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/bernoulli/quantile/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.js index 2bfcaea27081..73717f76bdfd 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/benchmark/benchmark.js @@ -21,6 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); +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; @@ -30,16 +31,23 @@ var quantile = require( './../lib' ); // MAIN // bench( pkg, function benchmark( b ) { + var len; var p; var r; var y; var i; + len = 100; + r = new Float64Array( len ); + p = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + r[ i ] = uniform( 0.0, 1.0 ); + p[ i ] = uniform( 0.0, 1.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - r = uniform( 0.0, 1.0 ); - p = uniform( 0.0, 1.0 ); - y = quantile( r, p ); + y = quantile( r[ i % len ], p[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -54,6 +62,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var myquantile; + var len; var p; var r; var y; @@ -61,11 +70,15 @@ bench( pkg+':factory', function benchmark( b ) { p = 0.3; myquantile = quantile.factory( p ); + len = 100; + r = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + r[ i ] = uniform( 0.0, 1.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - r = uniform( 0.0, 1.0 ); - y = myquantile( r ); + y = myquantile( r[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/skewness/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/skewness/benchmark/benchmark.js index 2df2943189a4..edada70ad347 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/skewness/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/skewness/benchmark/benchmark.js @@ -21,6 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); +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; @@ -30,14 +31,20 @@ var skewness = require( './../lib' ); // MAIN // bench( pkg, function benchmark( b ) { + var len; var p; var y; var i; + 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 = uniform( 0.0, 1.0 ); - y = skewness( p ); + y = skewness( p[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/variance/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/variance/benchmark/benchmark.js index 887a3cdeeb1d..d995fd0aaa03 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/variance/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/variance/benchmark/benchmark.js @@ -21,6 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); +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; @@ -30,14 +31,20 @@ var variance = require( './../lib' ); // MAIN // bench( pkg, function benchmark( b ) { + var len; var p; var y; var i; + 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 = uniform( 0.0, 1.0 ); - y = variance( p ); + y = variance( p[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); }