From f669689a5d3db18758dc5d588a251a317316a50c Mon Sep 17 00:00:00 2001 From: Karan Anand Date: Fri, 31 Jan 2025 00:19:02 -0800 Subject: [PATCH] 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: na - task: run_julia_benchmarks status: na - task: run_python_benchmarks status: na - task: run_r_benchmarks status: na - task: run_javascript_tests status: na --- --- .../dists/invgamma/cdf/benchmark/benchmark.js | 28 +++- .../invgamma/ctor/benchmark/benchmark.js | 137 ++++++++++++++---- .../invgamma/entropy/benchmark/benchmark.js | 6 +- .../entropy/benchmark/benchmark.native.js | 6 +- .../invgamma/kurtosis/benchmark/benchmark.js | 6 +- .../kurtosis/benchmark/benchmark.native.js | 6 +- .../invgamma/logpdf/benchmark/benchmark.js | 28 +++- .../invgamma/mean/benchmark/benchmark.js | 6 +- .../mean/benchmark/benchmark.native.js | 6 +- .../invgamma/mode/benchmark/benchmark.js | 6 +- .../mode/benchmark/benchmark.native.js | 6 +- .../dists/invgamma/pdf/benchmark/benchmark.js | 28 +++- .../invgamma/quantile/benchmark/benchmark.js | 28 +++- .../invgamma/skewness/benchmark/benchmark.js | 6 +- .../skewness/benchmark/benchmark.native.js | 6 +- .../invgamma/stdev/benchmark/benchmark.js | 6 +- .../stdev/benchmark/benchmark.native.js | 6 +- .../invgamma/variance/benchmark/benchmark.js | 16 +- 18 files changed, 244 insertions(+), 93 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/invgamma/cdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/cdf/benchmark/benchmark.js index c9b6db66415e..310be4e92fa4 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/cdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/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; @@ -33,16 +34,24 @@ var cdf = require( './../lib' ); bench( pkg, function benchmark( b ) { var alpha; var beta; + var len; var x; var y; var i; + len = 100; + x = new Float64Array( len ); + alpha = new Float64Array( len ); + beta = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 200.0 ); + alpha[ i ] = uniform( EPS, 100.0 ); + beta[ i ] = uniform( EPS, 100.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*200.0 ) + EPS; - alpha = ( randu()*100.0 ) + EPS; - beta = ( randu()*100.0 ) + EPS; - y = cdf( x, alpha, beta ); + y = cdf( x[ i % len ], alpha[ i % len ], beta[ i % len ]); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -59,18 +68,23 @@ bench( pkg+':factory', function benchmark( b ) { var mycdf; var alpha; var beta; + var len; var x; var y; var i; alpha = 1.5; beta = 2.3; + len = 100; mycdf = cdf.factory( alpha, beta ); + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, 10.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*10.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/invgamma/ctor/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/ctor/benchmark/benchmark.js index 297a1f2990b8..6b5c959c3cde 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/ctor/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/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; @@ -34,13 +35,20 @@ bench( pkg+'::instantiation', function benchmark( b ) { var alpha; var beta; var dist; + var len; var i; + len = 100; + alpha = new Float64Array( len ); + beta = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + alpha[ i ] = uniform( EPS, 10.0 ); + beta[ i ] = uniform( EPS, 10.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - alpha = ( randu() * 10.0 ) + EPS; - beta = ( randu() * 10.0 ) + EPS; - dist = new InvGamma( alpha, beta ); + dist = new InvGamma( alpha[ i % len ], beta[ i % len ] ); if ( !( dist instanceof InvGamma ) ) { b.fail( 'should return a distribution instance' ); } @@ -83,18 +91,23 @@ bench( pkg+'::set:alpha', function benchmark( b ) { var alpha; var beta; var dist; + var len; var y; var i; alpha = 10.332; beta = 15.54321; + len = 100; dist = new InvGamma( alpha, beta ); + 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.alpha = y; - if ( dist.alpha !== y ) { + dist.alpha = y[ i % len ]; + if ( dist.alpha !== y[ i % len ] ) { b.fail( 'should return set value' ); } } @@ -136,18 +149,23 @@ bench( pkg+'::set:beta', function benchmark( b ) { var alpha; var beta; var dist; + var len; var y; var i; alpha = 10.332; beta = 15.54321; + len = 100; dist = new InvGamma( alpha, beta ); + 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.beta = y; - if ( dist.beta !== y ) { + dist.beta = y[ i % len ]; + if ( dist.beta !== y[ i % len ] ) { b.fail( 'should return set value' ); } } @@ -163,16 +181,23 @@ bench( pkg+':entropy', function benchmark( b ) { var alpha; var beta; var dist; + var len; + var x; var y; var i; alpha = 10.332; beta = 15.54321; + len = 100; dist = new InvGamma( alpha, beta ); + 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.alpha = ( 100.0*randu() ) + EPS; + dist.alpha = x[ i % len ]; y = dist.entropy; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -190,16 +215,23 @@ bench( pkg+':kurtosis', function benchmark( b ) { var alpha; var beta; var dist; + var len; + var x; var y; var i; alpha = 10.332; beta = 15.54321; + len = 100; dist = new InvGamma( alpha, beta ); + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 4.0 + EPS, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.alpha = ( 100.0*randu() ) + 4.0 + EPS; + dist.alpha = x[ i % len ]; y = dist.kurtosis; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -217,16 +249,23 @@ bench( pkg+':mean', function benchmark( b ) { var alpha; var beta; var dist; + var len; + var x; var y; var i; alpha = 10.332; beta = 15.54321; + len = 100; dist = new InvGamma( alpha, beta ); + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 1.0 + EPS, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.alpha = ( 100.0*randu() ) + 1.0 + EPS; + dist.alpha = x[ i % len ]; y = dist.mean; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -244,16 +283,23 @@ bench( pkg+':mode', function benchmark( b ) { var alpha; var beta; var dist; + var len; + var x; var y; var i; alpha = 10.332; beta = 15.54321; + len = 100; dist = new InvGamma( alpha, beta ); + 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.alpha = ( 100.0*randu() ) + EPS; + dist.alpha = x[ i % len ]; y = dist.mode; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -271,16 +317,23 @@ bench( pkg+':skewness', function benchmark( b ) { var alpha; var beta; var dist; + var len; + var x; var y; var i; alpha = 10.332; beta = 15.54321; + len = 100; dist = new InvGamma( alpha, beta ); + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 3.0 + EPS, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.alpha = ( 100.0*randu() ) + 3.0 + EPS; + dist.alpha = x[ i % len ]; y = dist.skewness; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -298,16 +351,23 @@ bench( pkg+':stdev', function benchmark( b ) { var alpha; var beta; var dist; + var len; + var x; var y; var i; alpha = 10.332; beta = 15.54321; + len = 100; dist = new InvGamma( alpha, beta ); + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 2.0 + EPS, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.alpha = ( 100.0*randu() ) + 2.0 + EPS; + dist.alpha = x[ i % len ]; y = dist.stdev; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -325,16 +385,23 @@ bench( pkg+':variance', function benchmark( b ) { var alpha; var beta; var dist; + var len; + var x; var y; var i; alpha = 10.332; beta = 15.54321; + len = 100; dist = new InvGamma( alpha, beta ); + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 2.0 + EPS, 100.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.alpha = ( 100.0*randu() ) + 2.0 + EPS; + dist.alpha = x[ i % len ]; y = dist.variance; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -352,18 +419,23 @@ bench( pkg+':cdf', function benchmark( b ) { var alpha; var beta; var dist; + var len; var x; var y; var i; alpha = 10.332; beta = 15.54321; + len = 100; dist = new InvGamma( alpha, beta ); + 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.cdf( x ); + y = dist.cdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -380,18 +452,23 @@ bench( pkg+':logpdf', function benchmark( b ) { var alpha; var beta; var dist; + var len; var x; var y; var i; alpha = 10.332; beta = 15.54321; + len = 100; dist = new InvGamma( alpha, beta ); + 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.logpdf( x ); + y = dist.logpdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -408,18 +485,23 @@ bench( pkg+':pdf', function benchmark( b ) { var alpha; var beta; var dist; + var len; var x; var y; var i; alpha = 10.332; beta = 15.54321; + len = 100; dist = new InvGamma( alpha, beta ); + 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.pdf( x ); + y = dist.pdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -436,18 +518,23 @@ bench( pkg+':quantile', function benchmark( b ) { var alpha; var beta; var dist; + var len; var x; var y; var i; alpha = 10.332; beta = 15.54321; + len = 100; dist = new InvGamma( alpha, beta ); + 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/invgamma/entropy/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/entropy/benchmark/benchmark.js index 387c22d8e8e2..65a1e3e6af34 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/entropy/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/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 ) { alpha = new Float64Array( len ); beta = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - alpha[ i ] = ( randu() * 20.0 ) + EPS; - beta[ i ] = ( randu() * 20.0 ) + EPS; + alpha[ i ] = uniform( EPS, 20.0 ); + beta[ i ] = uniform( EPS, 20.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/invgamma/entropy/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/entropy/benchmark/benchmark.native.js index 98c82b32a2de..cd6657978b74 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/entropy/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/entropy/benchmark/benchmark.native.js @@ -24,7 +24,7 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); var tryRequire = require( '@stdlib/utils/try-require' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -51,8 +51,8 @@ bench( pkg+'::native', opts, function benchmark( b ) { alpha = new Float64Array( len ); beta = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - alpha[ i ] = ( randu() * 20.0 ) + EPS; - beta[ i ] = ( randu() * 20.0 ) + EPS; + alpha[ i ] = uniform( EPS, 20.0 ); + beta[ i ] = uniform( EPS, 20.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/invgamma/kurtosis/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/kurtosis/benchmark/benchmark.js index ba362ff59d66..42dc26ce7ecc 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/kurtosis/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/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 Float64Array = require( '@stdlib/array/float64' ); var EPS = require( '@stdlib/constants/float64/eps' ); @@ -42,8 +42,8 @@ bench( pkg, function benchmark( b ) { alpha = new Float64Array( len ); beta = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - alpha[ i ] = ( randu()*10.0 ) + 4.0 + EPS; - beta[ i ] = ( randu()*10.0 ) + EPS; + alpha[ i ] = uniform( 4.0 + EPS, 10.0 ); + beta[ i ] = uniform( EPS, 10.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/invgamma/kurtosis/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/kurtosis/benchmark/benchmark.native.js index 612375100e4f..383bfb3b1a02 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/kurtosis/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/kurtosis/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' ); @@ -51,8 +51,8 @@ bench( pkg+'::native', opts, function benchmark( b ) { alpha = new Float64Array( len ); beta = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - alpha[ i ] = ( randu()*10.0 ) + 4.0 + EPS; - beta[ i ] = ( randu()*10.0 ) + EPS; + alpha[ i ] = uniform( 4.0 + EPS, 10.0 ); + beta[ i ] = uniform( EPS, 10.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/invgamma/logpdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/logpdf/benchmark/benchmark.js index 2f8f5b5e1da1..120492ca32f2 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/logpdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/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; @@ -33,16 +34,24 @@ var logpdf = require( './../lib' ); bench( pkg, function benchmark( b ) { var alpha; var beta; + var len; var x; var y; var i; + len = 100; + x = new Float64Array( len ); + alpha = new Float64Array( len ); + beta = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 200.0 ); + alpha[ i ] = uniform( EPS, 100.0 ); + beta[ i ] = uniform( EPS, 100.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*200.0 ) + EPS; - alpha = ( randu()*100.0 ) + EPS; - beta = ( randu()*100.0 ) + EPS; - y = logpdf( x, alpha, beta ); + y = logpdf( x[ i % len ], alpha[ i % len ], beta[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -59,18 +68,23 @@ bench( pkg+':factory', function benchmark( b ) { var mylogpdf; var alpha; var beta; + var len; var x; var y; var i; alpha = 1.5; beta = 2.3; + len = 100; mylogpdf = logpdf.factory( alpha, beta ); + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, 10.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu() * 10.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/invgamma/mean/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/mean/benchmark/benchmark.js index 1f384d2a494d..fbd7712244a8 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/mean/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/mean/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 Float64Array = require( '@stdlib/array/float64' ); var EPS = require( '@stdlib/constants/float64/eps' ); @@ -42,8 +42,8 @@ bench( pkg, function benchmark( b ) { alpha = new Float64Array( len ); beta = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - alpha[ i ] = ( randu()*10.0 ) + 1.0 + EPS; - beta[ i ] = ( randu()*10.0 ) + EPS; + alpha[ i ] = uniform( 1.0 + EPS, 10.0 ); + beta[ i ] = uniform( EPS, 10.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/invgamma/mean/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/mean/benchmark/benchmark.native.js index d3efbf87a9ca..88b8b7f112fa 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/mean/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/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' ); @@ -51,8 +51,8 @@ bench( pkg+'::native', opts, function benchmark( b ) { alpha = new Float64Array( len ); beta = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - alpha[ i ] = ( randu()*10.0 ) + 1.0 + EPS; - beta[ i ] = ( randu()*10.0 ) + EPS; + alpha[ i ] = uniform( 1.0 + EPS, 10.0 ); + beta[ i ] = uniform( EPS, 10.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/invgamma/mode/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/mode/benchmark/benchmark.js index 348159279537..0c8b993c9afd 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/mode/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/mode/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 Float64Array = require( '@stdlib/array/float64' ); var EPS = require( '@stdlib/constants/float64/eps' ); @@ -42,8 +42,8 @@ bench( pkg, function benchmark( b ) { alpha = new Float64Array( len ); beta = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - alpha[ i ] = ( randu()*10.0 ) + EPS; - beta[ i ] = ( randu()*10.0 ) + EPS; + alpha[ i ] = uniform( EPS, 10.0 ); + beta[ i ] = uniform( EPS, 10.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/invgamma/mode/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/mode/benchmark/benchmark.native.js index 5f182a7c781e..3e117bfbf787 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/mode/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/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 EPS = require( '@stdlib/constants/float64/eps' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -51,8 +51,8 @@ bench( pkg+'::native', opts, function benchmark( b ) { alpha = new Float64Array( len ); beta = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - alpha[ i ] = ( randu()*10.0 ) + EPS; - beta[ i ] = ( randu()*10.0 ) + EPS; + alpha[ i ] = uniform( EPS, 10.0 ); + beta[ i ] = uniform( EPS, 10.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/invgamma/pdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/pdf/benchmark/benchmark.js index 60ccc71b5a6c..0b58203c6c07 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/pdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/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; @@ -33,16 +34,24 @@ var pdf = require( './../lib' ); bench( pkg, function benchmark( b ) { var alpha; var beta; + var len; var x; var y; var i; + len = 100; + x = new Float64Array( len ); + alpha = new Float64Array( len ); + beta = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 200.0 ); + alpha[ i ] = uniform( EPS, 100.0 ); + beta[ i ] = uniform( EPS, 100.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*200.0 ) + EPS; - alpha = ( randu()*100.0 ) + EPS; - beta = ( randu()*100.0 ) + EPS; - y = pdf( x, alpha, beta ); + y = pdf( x[ i % len ], alpha[ i % len ], beta[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -59,18 +68,23 @@ bench( pkg+':factory', function benchmark( b ) { var mypdf; var alpha; var beta; + var len; var x; var y; var i; alpha = 1.5; beta = 2.3; + len = 100; mypdf = pdf.factory( alpha, beta ); + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, 10.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu() * 10.0; - y = mypdf( x ); + y = mypdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/invgamma/quantile/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/quantile/benchmark/benchmark.js index 0fa597a44b19..3abfe404190d 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/quantile/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/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; @@ -33,16 +34,24 @@ var quantile = require( './../lib' ); bench( pkg, function benchmark( b ) { var alpha; var beta; + var len; var p; var y; var i; + len = 100; + p = new Float64Array( len ); + alpha = new Float64Array( len ); + beta = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + p[ i ] = uniform( 0.0, 1.0 ); + alpha[ i ] = uniform( EPS, 100.0 ); + beta[ i ] = uniform( EPS, 100.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - p = randu(); - alpha = ( randu()*100.0 ) + EPS; - beta = ( randu()*100.0 ) + EPS; - y = quantile( p, alpha, beta ); + y = quantile( p[ i % len ], alpha[ i % len ], beta[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -59,18 +68,23 @@ bench( pkg+':factory', function benchmark( b ) { var myquantile; var alpha; var beta; + var len; var p; var y; var i; alpha = 1.5; beta = 2.3; + len = 100; myquantile = quantile.factory( alpha, beta ); + p = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + p[ i ] = uniform( 0.0, 1.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - p = randu(); - y = myquantile( p ); + y = myquantile( p[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/invgamma/skewness/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/skewness/benchmark/benchmark.js index 602f67e3ee3e..b5bada48d2fe 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/skewness/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/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 Float64Array = require( '@stdlib/array/float64' ); var EPS = require( '@stdlib/constants/float64/eps' ); @@ -42,8 +42,8 @@ bench( pkg, function benchmark( b ) { alpha = new Float64Array( len ); beta = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - alpha[ i ] = ( randu()*10.0 ) + 3.0 + EPS; - beta[ i ] = ( randu()*10.0 ) + EPS; + alpha[ i ] = uniform( 3.0 + EPS, 10.0 ); + beta[ i ] = uniform( EPS, 10.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/invgamma/skewness/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/skewness/benchmark/benchmark.native.js index cc3b94d7b0ab..8fef218425a3 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/skewness/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/skewness/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' ); @@ -51,8 +51,8 @@ bench( pkg+'::native', opts, function benchmark( b ) { alpha = new Float64Array( len ); beta = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - alpha[ i ] = ( randu()*10.0 ) + 3.0 + EPS; - beta[ i ] = ( randu()*10.0 ) + EPS; + alpha[ i ] = uniform( 3.0 + EPS, 10.0 ); + beta[ i ] = uniform( EPS, 10.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/invgamma/stdev/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/stdev/benchmark/benchmark.js index 879548441f88..734b17bedb3b 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/stdev/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/stdev/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 Float64Array = require( '@stdlib/array/float64' ); var EPS = require( '@stdlib/constants/float64/eps' ); @@ -42,8 +42,8 @@ bench( pkg, function benchmark( b ) { alpha = new Float64Array( len ); beta = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - alpha[ i ] = ( randu()*10.0 ) + 2.0 + EPS; - beta[ i ] = ( randu()*10.0 ) + EPS; + alpha[ i ] = uniform( 2.0 + EPS, 10.0 ); + beta[ i ] = uniform( EPS, 10.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/invgamma/stdev/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/stdev/benchmark/benchmark.native.js index 25c35c1d500c..10f660d4a122 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/stdev/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/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 EPS = require( '@stdlib/constants/float64/eps' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -51,8 +51,8 @@ bench( pkg+'::native', opts, function benchmark( b ) { alpha = new Float64Array( len ); beta = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - alpha[ i ] = ( randu()*10.0 ) + 2.0 + EPS; - beta[ i ] = ( randu()*10.0 ) + EPS; + alpha[ i ] = uniform( 2.0 + EPS, 10.0 ); + beta[ i ] = uniform( EPS, 10.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/invgamma/variance/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/invgamma/variance/benchmark/benchmark.js index 0d30b391f170..14dfbf9a1863 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/invgamma/variance/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/invgamma/variance/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,14 +34,21 @@ var variance = require( './../lib' ); bench( pkg, function benchmark( b ) { var alpha; var beta; + var len; var y; var i; + len = 100; + alpha = new Float64Array( len ); + beta = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + alpha[ i ] = uniform( 2.0 + EPS, 10.0 ); + beta[ i ] = uniform( EPS, 10.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - alpha = ( randu()*10.0 ) + 2.0 + EPS; - beta = ( randu()*10.0 ) + EPS; - y = variance( alpha, beta ); + y = variance( alpha[ i % len ], beta[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); }