From 07185a2cd74bef305f92205791b2fa3cfa28319e Mon Sep 17 00:00:00 2001 From: Karan Anand Date: Wed, 22 Jan 2025 10:49:52 -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/cauchy/cdf/benchmark/benchmark.js | 28 +++-- .../dists/cauchy/ctor/benchmark/benchmark.js | 110 ++++++++++++++---- .../cauchy/entropy/benchmark/benchmark.js | 6 +- .../entropy/benchmark/benchmark.native.js | 6 +- .../cauchy/logcdf/benchmark/benchmark.js | 28 +++-- .../cauchy/logpdf/benchmark/benchmark.js | 28 +++-- .../cauchy/median/benchmark/benchmark.js | 6 +- .../median/benchmark/benchmark.native.js | 6 +- .../dists/cauchy/mode/benchmark/benchmark.js | 6 +- .../cauchy/mode/benchmark/benchmark.native.js | 6 +- .../dists/cauchy/pdf/benchmark/benchmark.js | 28 +++-- .../cauchy/quantile/benchmark/benchmark.js | 28 +++-- 12 files changed, 210 insertions(+), 76 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/cauchy/cdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/cauchy/cdf/benchmark/benchmark.js index 3c22432c0cc4..777181b3728e 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/cauchy/cdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/cauchy/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,25 @@ var cdf = require( './../lib' ); bench( pkg, function benchmark( b ) { var gamma; + var len; var x0; var x; var y; var i; + len = 100; + x = new Float64Array( len ); + x0 = new Float64Array( len ); + gamma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -100.0, 100.0 ); + x0[ i ] = uniform( -50.0, 50.0 ); + gamma[ i ] = uniform( EPS, 20.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*200.0 ) - 100; - x0 = ( randu()*100.0 ) - 50.0; - gamma = ( randu()*20.0 ) + EPS; - y = cdf( x, x0, gamma ); + y = cdf( x[ i % len ], x0[ i % len ], gamma[ 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 mycdf; var gamma; + var len; var x0; var x; var y; @@ -66,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { x0 = 0.0; gamma = 1.5; mycdf = cdf.factory( x0, gamma ); + 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++ ) { - x = ( randu()*100.0 ) + EPS; - 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/cauchy/ctor/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/cauchy/ctor/benchmark/benchmark.js index 36e6c66aa021..e05c7d36f9ae 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/cauchy/ctor/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/cauchy/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,14 +34,21 @@ var Cauchy = require( './../lib' ); bench( pkg+'::instantiation', function benchmark( b ) { var gamma; var dist; + var len; var x0; var i; + len = 100; + x0 = new Float64Array( len ); + gamma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x0[ i ] = uniform( EPS, 10.0 ); + gamma[ i ] = uniform( EPS, 10.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x0 = ( randu() * 10.0 ) + EPS; - gamma = ( randu() * 10.0 ) + EPS; - dist = new Cauchy( x0, gamma ); + dist = new Cauchy( x0[ i % len ], gamma[ i % len ] ); if ( !( dist instanceof Cauchy ) ) { b.fail( 'should return a distribution instance' ); } @@ -82,6 +90,7 @@ bench( pkg+'::get:x0', function benchmark( b ) { bench( pkg+'::set:x0', function benchmark( b ) { var gamma; var dist; + var len; var x0; var y; var i; @@ -89,12 +98,16 @@ bench( pkg+'::set:x0', function benchmark( b ) { x0 = 10.0; gamma = 6.0; dist = new Cauchy( x0, gamma ); + 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.x0 = y; - if ( dist.x0 !== y ) { + dist.x0 = y[ i % len ]; + if ( dist.x0 !== y[ i % len ] ) { b.fail( 'should return set value' ); } } @@ -135,6 +148,7 @@ bench( pkg+'::get:gamma', function benchmark( b ) { bench( pkg+'::set:gamma', function benchmark( b ) { var gamma; var dist; + var len; var x0; var y; var i; @@ -142,12 +156,16 @@ bench( pkg+'::set:gamma', function benchmark( b ) { x0 = 10.0; gamma = 6.0; dist = new Cauchy( x0, gamma ); + 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.gamma = y; - if ( dist.gamma !== y ) { + dist.gamma = y[ i % len ]; + if ( dist.gamma !== y[ i % len ] ) { b.fail( 'should return set value' ); } } @@ -162,17 +180,24 @@ bench( pkg+'::set:gamma', function benchmark( b ) { bench( pkg+':entropy', function benchmark( b ) { var gamma; var dist; + var len; var x0; + var x; var y; var i; x0 = 10.0; gamma = 6.0; dist = new Cauchy( x0, gamma ); + 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.x0 = ( 100.0*randu() ) + EPS; + dist.x0 = x[ i % len ]; y = dist.entropy; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -189,17 +214,24 @@ bench( pkg+':entropy', function benchmark( b ) { bench( pkg+':median', function benchmark( b ) { var gamma; var dist; + var len; var x0; + var x; var y; var i; x0 = 10.0; gamma = 6.0; dist = new Cauchy( x0, gamma ); + 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.x0 = ( 100.0*randu() ) + EPS; + dist.x0 = x[ i % len ]; y = dist.median; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -216,17 +248,24 @@ bench( pkg+':median', function benchmark( b ) { bench( pkg+':mode', function benchmark( b ) { var gamma; var dist; + var len; var x0; + var x; var y; var i; x0 = 10.0; gamma = 6.0; dist = new Cauchy( x0, gamma ); + len = 100; + 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.x0 = ( 100.0*randu() ) + 1.0 + EPS; + dist.x0 = x[ i % len ]; y = dist.mode; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -243,6 +282,7 @@ bench( pkg+':mode', function benchmark( b ) { bench( pkg+':cdf', function benchmark( b ) { var gamma; var dist; + var len; var x0; var x; var y; @@ -251,11 +291,15 @@ bench( pkg+':cdf', function benchmark( b ) { x0 = 10.0; gamma = 6.0; dist = new Cauchy( x0, gamma ); + 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.cdf( x ); + y = dist.cdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -271,6 +315,7 @@ bench( pkg+':cdf', function benchmark( b ) { bench( pkg+':logcdf', function benchmark( b ) { var gamma; var dist; + var len; var x0; var x; var y; @@ -279,11 +324,15 @@ bench( pkg+':logcdf', function benchmark( b ) { x0 = 10.0; gamma = 6.0; dist = new Cauchy( x0, gamma ); + 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.logcdf( x ); + y = dist.logcdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -299,6 +348,7 @@ bench( pkg+':logcdf', function benchmark( b ) { bench( pkg+':logpdf', function benchmark( b ) { var gamma; var dist; + var len; var x0; var x; var y; @@ -307,11 +357,15 @@ bench( pkg+':logpdf', function benchmark( b ) { x0 = 10.0; gamma = 6.0; dist = new Cauchy( x0, gamma ); + 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.logpdf( x ); + y = dist.logpdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -327,6 +381,7 @@ bench( pkg+':logpdf', function benchmark( b ) { bench( pkg+':pdf', function benchmark( b ) { var gamma; var dist; + var len; var x0; var x; var y; @@ -335,11 +390,15 @@ bench( pkg+':pdf', function benchmark( b ) { x0 = 10.0; gamma = 6.0; dist = new Cauchy( x0, gamma ); + 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.pdf( x ); + y = dist.pdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -355,6 +414,7 @@ bench( pkg+':pdf', function benchmark( b ) { bench( pkg+':quantile', function benchmark( b ) { var gamma; var dist; + var len; var x0; var x; var y; @@ -363,11 +423,15 @@ bench( pkg+':quantile', function benchmark( b ) { x0 = 10.0; gamma = 6.0; dist = new Cauchy( x0, gamma ); + 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/cauchy/entropy/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/cauchy/entropy/benchmark/benchmark.js index daa8b2e715b5..58beb16dfdc8 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/cauchy/entropy/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/cauchy/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 ) { gamma = new Float64Array( len ); x0 = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x0[ i ] = ( randu()*100.0 ) - 50.0; - gamma[ i ] = ( randu()*20.0 ) + EPS; + x0[ i ] = uniform( -50.0, 50.0 ); + gamma[ i ] = uniform( EPS, 20.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/cauchy/entropy/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/cauchy/entropy/benchmark/benchmark.native.js index fa154765501d..35e282203ce8 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/cauchy/entropy/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/cauchy/entropy/benchmark/benchmark.native.js @@ -24,7 +24,7 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); var EPS = require( '@stdlib/constants/float64/eps' ); 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; @@ -51,8 +51,8 @@ bench( pkg+'::native', opts, function benchmark( b ) { gamma = new Float64Array( len ); x0 = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x0[ i ] = ( randu()*100.0 ) - 50.0; - gamma[ i ] = ( randu()*20.0 ) + EPS; + x0[ i ] = uniform( -50.0, 50.0 ); + gamma[ i ] = uniform( EPS, 20.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/cauchy/logcdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/cauchy/logcdf/benchmark/benchmark.js index 16cfac589f96..289dcead5e06 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/cauchy/logcdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/cauchy/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 gamma; + var len; var x0; var x; var y; var i; + len = 100; + x = new Float64Array( len ); + x0 = new Float64Array( len ); + gamma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -100.0, 0.0 ); + x0[ i ] = uniform( -50.0, 50.0 ); + gamma[ i ] = uniform( EPS, 20.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*100.0 ) - 100.0; - x0 = ( randu()*100.0 ) - 50.0; - gamma = ( randu()*20.0 ) + EPS; - y = logcdf( x, x0, gamma ); + y = logcdf( x[ i % len ], x0[ i % len ], gamma[ 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 gamma; + var len; var x0; var x; var y; @@ -66,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { x0 = 0.0; gamma = 1.5; mylogcdf = logcdf.factory( x0, gamma ); + 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++ ) { - x = ( randu()*100.0 ) + EPS; - 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/cauchy/logpdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/cauchy/logpdf/benchmark/benchmark.js index e9ec0757984f..730c522526ae 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/cauchy/logpdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/cauchy/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 gamma; + var len; var x0; var x; var y; var i; + len = 100; + x = new Float64Array( len ); + x0 = new Float64Array( len ); + gamma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -100.0, 0.0 ); + x0[ i ] = uniform( -50.0, 50.0 ); + gamma[ i ] = uniform( EPS, 20.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*100.0 ) - 100; - x0 = ( randu()*100.0 ) - 50.0; - gamma = ( randu()*20.0 ) + EPS; - y = logpdf( x, x0, gamma ); + y = logpdf( x[ i % len ], x0[ i % len ], gamma[ 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 gamma; + var len; var x0; var x; var y; @@ -66,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { x0 = 0.0; gamma = 1.5; mylogpdf = logpdf.factory( x0, gamma ); + 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++ ) { - x = ( randu()*100.0 ) + EPS; - 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/cauchy/median/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/cauchy/median/benchmark/benchmark.js index 54586dde21c5..67ed7874ad56 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/cauchy/median/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/cauchy/median/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 ) { x0 = new Float64Array( len ); gamma = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x0[ i ] = ( randu() * 100.0 ) - 50.0; - gamma[ i ] = ( randu() * 20.0 ) + EPS; + x0[ i ] = uniform( -50.0, 50.0 ); + gamma[ i ] = uniform( EPS, 20.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/cauchy/median/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/cauchy/median/benchmark/benchmark.native.js index 5d792a294774..fa8d9329ab51 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/cauchy/median/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/cauchy/median/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 ) { x0 = new Float64Array( len ); gamma = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x0[ i ] = ( randu() * 100.0 ) - 50.0; - gamma[ i ] = ( randu() * 20.0 ) + EPS; + x0[ i ] = uniform( -50.0, 50.0 ); + gamma[ i ] = uniform( EPS, 20.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/cauchy/mode/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/cauchy/mode/benchmark/benchmark.js index 107808f4d762..fcfe05558435 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/cauchy/mode/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/cauchy/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 Float64Array = require( '@stdlib/array/float64' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); @@ -42,8 +42,8 @@ bench( pkg, function benchmark( b ) { x0 = new Float64Array( len ); gamma = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x0[ i ] = ( randu()*100.0 ) - 50.0; - gamma[ i ] = ( randu()*20.0 ) + EPS; + x0[ i ] = uniform( -50.0, 50.0 ); + gamma[ i ] = uniform( EPS, 20.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/cauchy/mode/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/cauchy/mode/benchmark/benchmark.native.js index 8b8a18349c11..40c8381b3c1b 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/cauchy/mode/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/cauchy/mode/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 EPS = require( '@stdlib/constants/float64/eps' ); -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; @@ -51,8 +51,8 @@ bench( pkg+'::native', opts, function benchmark( b ) { x0 = new Float64Array( len ); gamma = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x0[ i ] = ( randu()*100.0 ) - 50.0; - gamma[ i ] = ( randu()*20.0 ) + EPS; + x0[ i ] = uniform( -50.0, 50.0 ); + gamma[ i ] = uniform( EPS, 20.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/cauchy/pdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/cauchy/pdf/benchmark/benchmark.js index a575f2fc3bf9..dd8a36c2b7df 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/cauchy/pdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/cauchy/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 gamma; + var len; var x0; var x; var y; var i; + len = 100; + x = new Float64Array( len ); + x0 = new Float64Array( len ); + gamma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -100.0, 0.0 ); + x0[ i ] = uniform( -50.0, 50.0 ); + gamma[ i ] = uniform( EPS, 20.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*100.0 ) - 100; - x0 = ( randu()*100.0 ) - 50.0; - gamma = ( randu()*20.0 ) + EPS; - y = pdf( x, x0, gamma ); + y = pdf( x[ i % len ], x0[ i % len ], gamma[ 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 mypdf; var gamma; + var len; var x0; var x; var y; @@ -66,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { x0 = 0.0; gamma = 1.5; mypdf = pdf.factory( x0, gamma ); + 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++ ) { - x = ( randu()*100.0 ) + EPS; - 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/cauchy/quantile/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/cauchy/quantile/benchmark/benchmark.js index 42060ac31984..b7a9df4fe4e0 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/cauchy/quantile/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/cauchy/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 gamma; + var len; var x0; var p; var y; var i; + len = 100; + p = new Float64Array( len ); + x0 = new Float64Array( len ); + gamma = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + p[ i ] = uniform( 0.0, 1.0 ); + x0[ i ] = uniform( -50.0, 50.0 ); + gamma[ i ] = uniform( EPS, 20.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - p = randu(); - x0 = ( randu()*100.0 ) - 50.0; - gamma = ( randu()*20.0 ) + EPS; - y = quantile( p, x0, gamma ); + y = quantile( p[ i % len ], x0[ i % len ], gamma[ 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 myquantile; var gamma; + var len; var x0; var p; var y; @@ -66,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { x0 = 0.0; gamma = 1.5; myquantile = quantile.factory( x0, gamma ); + len = 100; + p = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + p[ i ] = uniform( 0.0, 1.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - p = randu(); - y = myquantile( p ); + y = myquantile( p[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); }