From 6f30617667ec637fd4904e58fcd40eed225dd556 Mon Sep 17 00:00:00 2001 From: yuvi-mittal Date: Sun, 2 Feb 2025 15:11:09 +0530 Subject: [PATCH 1/2] feat(benchmarks): refactor random number generation in JS benchmarks --- 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 --- --- .../kumaraswamy/cdf/benchmark/benchmark.js | 28 +- .../kumaraswamy/ctor/benchmark/benchmark.js | 495 ++++++++++-------- .../kurtosis/benchmark/benchmark.js | 16 +- .../kumaraswamy/logcdf/benchmark/benchmark.js | 18 +- .../logcdf/benchmark/benchmark.native.js | 8 +- .../kumaraswamy/logpdf/benchmark/benchmark.js | 18 +- .../logpdf/benchmark/benchmark.native.js | 8 +- .../kumaraswamy/mean/benchmark/benchmark.js | 16 +- .../kumaraswamy/median/benchmark/benchmark.js | 6 +- .../median/benchmark/benchmark.native.js | 6 +- .../kumaraswamy/mode/benchmark/benchmark.js | 17 +- .../kumaraswamy/pdf/benchmark/benchmark.js | 42 +- .../quantile/benchmark/benchmark.js | 42 +- .../skewness/benchmark/benchmark.js | 6 +- .../skewness/benchmark/benchmark.native.js | 6 +- .../kumaraswamy/stdev/benchmark/benchmark.js | 16 +- .../variance/benchmark/benchmark.js | 16 +- 17 files changed, 470 insertions(+), 294 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/cdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/cdf/benchmark/benchmark.js index 78b5108bc957..5548cc6f4b4f 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/cdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/cdf/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var Float64Array = require( '@stdlib/array/float64' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -31,18 +32,26 @@ var cdf = require( './../lib' ); // MAIN // bench( pkg, function benchmark( b ) { + var len; var a; var s; var x; var y; var i; + len = 100; + x = new Float64Array( len ); + a = new Float64Array( len ); + s = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 2.0 ); + a[ i ] = uniform( EPS, 100.0 ); + s[ i ] = uniform( EPS, 100.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*2.0 ) + EPS; - a = ( randu()*100.0 ) + EPS; - s = ( randu()*100.0 ) + EPS; - y = cdf( x, a, s ); + y = cdf( x[ i % len ], a[ i % len ], s[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -57,6 +66,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var mycdf; + var len; var a; var s; var x; @@ -66,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { a = 100.56789; s = 55.54321; mycdf = cdf.factory( a, s ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 2.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*2.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/kumaraswamy/ctor/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/ctor/benchmark/benchmark.js index 785fe8d3130d..558002ea6bd5 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/ctor/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/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; @@ -30,27 +31,34 @@ var Kumaraswamy = require( './../lib' ); // MAIN // -bench( pkg+'::instantiation', function benchmark( bm ) { +bench( pkg+'::instantiation', function benchmark( b ) { + var alpha; var dist; - var a; - var b; + var beta; + var len; var i; - bm.tic(); - for ( i = 0; i < bm.iterations; i++ ) { - a = ( randu() * 10.0 ) + EPS; - b = ( randu() * 10.0 ) + EPS; - dist = new Kumaraswamy( a, b ); + 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++ ) { + dist = new Kumaraswamy( alpha[ i % len ], beta[ i % len ] ); if ( !( dist instanceof Kumaraswamy ) ) { - bm.fail( 'should return a distribution instance' ); + b.fail( 'should return a distribution instance' ); } } - bm.toc(); + b.toc(); if ( !( dist instanceof Kumaraswamy ) ) { - bm.fail( 'should return a distribution instance' ); + b.fail( 'should return a distribution instance' ); } - bm.pass( 'benchmark finished' ); - bm.end(); + b.pass( 'benchmark finished' ); + b.end(); }); bench( pkg+'::get:a', function benchmark( bm ) { @@ -79,31 +87,36 @@ bench( pkg+'::get:a', function benchmark( bm ) { bm.end(); }); -bench( pkg+'::set:a', function benchmark( bm ) { +bench( pkg+'::set:alpha', function benchmark( b ) { + var alpha; + var beta; var dist; - var a; - var b; + var len; var y; var i; - a = 100.56789; - b = 55.54321; - dist = new Kumaraswamy( a, b ); + alpha = 100.56789; + beta = 55.54321; + dist = new Kumaraswamy( alpha, beta ); + len = 100; + y = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + y[ i ] = uniform( EPS, 100.0 ); + } - bm.tic(); - for ( i = 0; i < bm.iterations; i++ ) { - y = ( 100.0*randu() ) + EPS; - dist.a = y; - if ( dist.a !== y ) { - bm.fail( 'should return set value' ); + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + dist.alpha = y[ i % len ]; + if ( dist.alpha !== y[i % len] ) { + b.fail( 'should return set value' ); } } - bm.toc(); + b.toc(); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } - bm.pass( 'benchmark finished' ); - bm.end(); + b.pass( 'benchmark finished' ); + b.end(); }); bench( pkg+'::get:b', function benchmark( bm ) { @@ -132,331 +145,403 @@ bench( pkg+'::get:b', function benchmark( bm ) { bm.end(); }); -bench( pkg+'::set:b', function benchmark( bm ) { +bench( pkg+'::set:beta', function benchmark( b ) { + var alpha; + var beta; var dist; - var a; - var b; + var len; var y; var i; - a = 100.56789; - b = 55.54321; - dist = new Kumaraswamy( a, b ); + alpha = 100.56789; + beta = 55.54321; + dist = new Kumaraswamy( alpha, beta ); + len = 100; + y = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + y[ i ] = uniform( EPS, 100.0 ); + } - bm.tic(); - for ( i = 0; i < bm.iterations; i++ ) { - y = ( 100.0*randu() ) + EPS; - dist.b = y; - if ( dist.b !== y ) { - bm.fail( 'should return set value' ); + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + dist.beta = y[ i % len ]; + if ( dist.beta !== y[i % len ] ) { + b.fail( 'should return set value' ); } } - bm.toc(); + b.toc(); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } - bm.pass( 'benchmark finished' ); - bm.end(); + b.pass( 'benchmark finished' ); + b.end(); }); -bench( pkg+':kurtosis', function benchmark( bm ) { +bench( pkg+':kurtosis', function benchmark( b ) { + var alpha; + var beta; var dist; - var a; - var b; + var len; + var x; var y; var i; - a = 100.56789; - b = 55.54321; - dist = new Kumaraswamy( a, b ); + alpha = 100.56789; + beta = 55.54321; + dist = new Kumaraswamy( alpha, beta ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 100.0 ); + } - bm.tic(); - for ( i = 0; i < bm.iterations; i++ ) { - dist.a = ( 100.0*randu() ) + EPS; + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + dist.alpha = x[ i % len ]; y = dist.kurtosis; if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } } - bm.toc(); + b.toc(); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } - bm.pass( 'benchmark finished' ); - bm.end(); + b.pass( 'benchmark finished' ); + b.end(); }); -bench( pkg+':mean', function benchmark( bm ) { +bench( pkg+':mean', function benchmark( b ) { + var alpha; + var beta; var dist; - var a; - var b; + var len; + var x; var y; var i; - a = 100.56789; - b = 55.54321; - dist = new Kumaraswamy( a, b ); + alpha = 100.56789; + beta = 55.54321; + dist = new Kumaraswamy( alpha, beta ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 100.0 ); + } - bm.tic(); - for ( i = 0; i < bm.iterations; i++ ) { - dist.a = ( 100.0*randu() ) + EPS; + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + dist.alpha = x[ i % len ]; y = dist.mean; if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } } - bm.toc(); + b.toc(); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } - bm.pass( 'benchmark finished' ); - bm.end(); + b.pass( 'benchmark finished' ); + b.end(); }); -bench( pkg+':mode', function benchmark( bm ) { +bench( pkg+':mode', function benchmark( b ) { + var alpha; + var beta; var dist; - var a; - var b; + var len; + var x; var y; var i; - a = 100.56789; - b = 55.54321; - dist = new Kumaraswamy( a, b ); + alpha = 100.56789; + beta = 55.54321; + dist = new Kumaraswamy( alpha, beta ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 1.0 + EPS, 100.0 ); + } - bm.tic(); - for ( i = 0; i < bm.iterations; i++ ) { - dist.a = ( 100.0*randu() ) + 1.0 + EPS; + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + dist.alpha = x[ i % len ]; y = dist.mode; if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } } - bm.toc(); + b.toc(); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } - bm.pass( 'benchmark finished' ); - bm.end(); + b.pass( 'benchmark finished' ); + b.end(); }); -bench( pkg+':skewness', function benchmark( bm ) { +bench( pkg+':skewness', function benchmark( b ) { + var alpha; + var beta; var dist; - var a; - var b; + var len; + var x; var y; var i; - a = 100.56789; - b = 55.54321; - dist = new Kumaraswamy( a, b ); + alpha = 100.56789; + beta = 55.54321; + dist = new Kumaraswamy( alpha, beta ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 100.0 ); + } - bm.tic(); - for ( i = 0; i < bm.iterations; i++ ) { - dist.a = ( 100.0*randu() ) + EPS; + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + dist.alpha = x[ i % len ]; y = dist.skewness; if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } } - bm.toc(); + b.toc(); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } - bm.pass( 'benchmark finished' ); - bm.end(); + b.pass( 'benchmark finished' ); + b.end(); }); -bench( pkg+':stdev', function benchmark( bm ) { +bench( pkg+':stdev', function benchmark( b ) { + var alpha; + var beta; var dist; - var a; - var b; + var len; + var x; var y; var i; - a = 100.56789; - b = 55.54321; - dist = new Kumaraswamy( a, b ); + alpha = 100.56789; + beta = 55.54321; + dist = new Kumaraswamy( alpha, beta ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 100.0 ); + } - bm.tic(); - for ( i = 0; i < bm.iterations; i++ ) { - dist.a = ( 100.0*randu() ) + EPS; + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + dist.alpha = x[ i % len ]; y = dist.stdev; if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } } - bm.toc(); + b.toc(); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } - bm.pass( 'benchmark finished' ); - bm.end(); + b.pass( 'benchmark finished' ); + b.end(); }); -bench( pkg+':variance', function benchmark( bm ) { +bench( pkg+':variance', function benchmark( b ) { + var alpha; + var beta; var dist; - var a; - var b; + var len; + var x; var y; var i; - a = 100.56789; - b = 55.54321; - dist = new Kumaraswamy( a, b ); + alpha = 100.56789; + beta = 55.54321; + dist = new Kumaraswamy( alpha, beta ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 100.0 ); + } - bm.tic(); - for ( i = 0; i < bm.iterations; i++ ) { - dist.a = ( 100.0*randu() ) + EPS; + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + dist.alpha = x[ i % len ]; y = dist.variance; if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } } - bm.toc(); + b.toc(); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } - bm.pass( 'benchmark finished' ); - bm.end(); + b.pass( 'benchmark finished' ); + b.end(); }); -bench( pkg+':cdf', function benchmark( bm ) { +bench( pkg+':cdf', function benchmark( b ) { + var alpha; + var beta; var dist; - var a; - var b; + var len; var x; var y; var i; - a = 100.56789; - b = 55.54321; - dist = new Kumaraswamy( a, b ); + alpha = 100.56789; + beta = 55.54321; + dist = new Kumaraswamy( alpha, beta ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, 1.0 ); + } - bm.tic(); - for ( i = 0; i < bm.iterations; i++ ) { - x = randu(); - y = dist.cdf( x ); + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = dist.cdf( x[ i % len ] ); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } } - bm.toc(); + b.toc(); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } - bm.pass( 'benchmark finished' ); - bm.end(); + b.pass( 'benchmark finished' ); + b.end(); }); -bench( pkg+':logcdf', function benchmark( bm ) { +bench( pkg+':logcdf', function benchmark( b ) { + var alpha; + var beta; var dist; - var a; - var b; + var len; var x; var y; var i; - a = 100.56789; - b = 55.54321; - dist = new Kumaraswamy( a, b ); + alpha = 100.56789; + beta = 55.54321; + dist = new Kumaraswamy( alpha, beta ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, 1.0 ); + } - bm.tic(); - for ( i = 0; i < bm.iterations; i++ ) { - x = randu(); - y = dist.logcdf( x ); + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = dist.logpdf( x[ i % len ] ); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } } - bm.toc(); + b.toc(); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } - bm.pass( 'benchmark finished' ); - bm.end(); + b.pass( 'benchmark finished' ); + b.end(); }); -bench( pkg+':logpdf', function benchmark( bm ) { +bench( pkg+':logpdf', function benchmark( b ) { + var alpha; + var beta; var dist; - var a; - var b; + var len; var x; var y; var i; - a = 100.56789; - b = 55.54321; - dist = new Kumaraswamy( a, b ); + alpha = 100.56789; + beta = 55.54321; + dist = new Kumaraswamy( alpha, beta ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, 1.0 ); + } - bm.tic(); - for ( i = 0; i < bm.iterations; i++ ) { - x = randu(); - y = dist.logpdf( x ); + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = dist.logpdf( x[ i % len ] ); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } } - bm.toc(); + b.toc(); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } - bm.pass( 'benchmark finished' ); - bm.end(); + b.pass( 'benchmark finished' ); + b.end(); }); -bench( pkg+':pdf', function benchmark( bm ) { +bench( pkg+':pdf', function benchmark( b ) { + var alpha; + var beta; var dist; - var a; - var b; + var len; var x; var y; var i; - a = 100.56789; - b = 55.54321; - dist = new Kumaraswamy( a, b ); + alpha = 100.56789; + beta = 55.54321; + dist = new Kumaraswamy( alpha, beta ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, 1.0 ); + } - bm.tic(); - for ( i = 0; i < bm.iterations; i++ ) { - x = randu(); - y = dist.pdf( x ); + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = dist.pdf( x[ i % len ] ); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } } - bm.toc(); + b.toc(); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } - bm.pass( 'benchmark finished' ); - bm.end(); + b.pass( 'benchmark finished' ); + b.end(); }); -bench( pkg+':quantile', function benchmark( bm ) { +bench( pkg+':quantile', function benchmark( b ) { + var alpha; + var beta; var dist; - var a; - var b; + var len; var x; var y; var i; - a = 100.56789; - b = 55.54321; - dist = new Kumaraswamy( a, b ); + alpha = 100.56789; + beta = 55.54321; + dist = new Kumaraswamy( alpha, beta ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, 1.0 ); + } - bm.tic(); - for ( i = 0; i < bm.iterations; i++ ) { - x = randu(); - y = dist.quantile( x ); + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = dist.quantile( x[ i % len ] ); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } } - bm.toc(); + b.toc(); if ( isnan( y ) ) { - bm.fail( 'should not return NaN' ); + b.fail( 'should not return NaN' ); } - bm.pass( 'benchmark finished' ); - bm.end(); + b.pass( 'benchmark finished' ); + b.end(); }); diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/kurtosis/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/kurtosis/benchmark/benchmark.js index e95cd8202f5e..88da512d0f2b 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/kurtosis/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/kurtosis/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var Float64Array = require( '@stdlib/array/float64' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -33,14 +34,21 @@ var kurtosis = require( './../lib' ); bench( pkg, function benchmark( b ) { var shape1; var shape2; + var len; var y; var i; + len = 100; + shape1 = new Float64Array( len ); + shape2 = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + shape1[ i ] = uniform( EPS, 10.0 ); + shape2[ i ] = uniform( EPS, 10.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - shape1 = ( randu()*10.0 ) + EPS; - shape2 = ( randu()*10.0 ) + EPS; - y = kurtosis( shape1, shape2 ); + y = kurtosis( shape1[ i % len ], shape2[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/logcdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/logcdf/benchmark/benchmark.js index be3b8c9dd96e..44cce9662728 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/logcdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/logcdf/benchmark/benchmark.js @@ -22,8 +22,7 @@ var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var uniform = require( '@stdlib/random/array/uniform' ); -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; @@ -45,9 +44,9 @@ bench( pkg, function benchmark( b ) { a = new Float64Array( len ); s = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = randu(); - a[ i ] = ( randu()*5.0 ) + EPS; - s[ i ] = ( randu()*5.0 ) + EPS; + x[ i ] = uniform( EPS, 2.0 ); + a[ i ] = uniform( EPS, 100.0 ); + s[ i ] = uniform( EPS, 100.0 ); } b.tic(); @@ -67,6 +66,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var mylogcdf; + var len; var a; var s; var x; @@ -76,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { a = 100.56789; s = 55.54321; mylogcdf = logcdf.factory( a, s ); - x = uniform( 100, -2.0, 2.0 ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 2.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = mylogcdf( x[ i % x.length ] ); + y = mylogcdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/logcdf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/logcdf/benchmark/benchmark.native.js index c51a6c7a9104..6f27e266be8f 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/logcdf/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/logcdf/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 EPS = require( '@stdlib/constants/float64/eps' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -53,9 +53,9 @@ bench( pkg+'::native', opts, function benchmark( b ) { a = new Float64Array( len ); s = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = randu(); - a[ i ] = ( randu()*5.0 ) + EPS; - s[ i ] = ( randu()*5.0 ) + EPS; + x[ i ] = uniform( EPS, 2.0 ); + a[ i ] = uniform( EPS, 100.0 ); + s[ i ] = uniform( EPS, 100.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/logpdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/logpdf/benchmark/benchmark.js index a046b492c5fc..21eeb15b833e 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/logpdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/logpdf/benchmark/benchmark.js @@ -22,8 +22,7 @@ var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var uniform = require( '@stdlib/random/array/uniform' ); -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; @@ -45,9 +44,9 @@ bench( pkg, function benchmark( b ) { a = new Float64Array( len ); s = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = randu(); - a[ i ] = ( randu()*5.0 ) + EPS; - s[ i ] = ( randu()*5.0 ) + EPS; + x[ i ] = uniform( EPS, 2.0 ); + a[ i ] = uniform( EPS, 100.0 ); + s[ i ] = uniform( EPS, 100.0 ); } b.tic(); @@ -67,6 +66,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var mylogpdf; + var len; var a; var s; var x; @@ -76,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { a = 100.56789; s = 55.54321; mylogpdf = logpdf.factory( a, s ); - x = uniform( 100, -2.0, 2.0 ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 2.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = mylogpdf( x[ i % x.length ] ); + y = mylogpdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/logpdf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/logpdf/benchmark/benchmark.native.js index 3ef323f526f7..56437a1458bb 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/logpdf/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/logpdf/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 EPS = require( '@stdlib/constants/float64/eps' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -53,9 +53,9 @@ bench( pkg+'::native', opts, function benchmark( b ) { a = new Float64Array( len ); s = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = randu(); - a[ i ] = ( randu()*5.0 ) + EPS; - s[ i ] = ( randu()*5.0 ) + EPS; + x[ i ] = uniform( EPS, 2.0 ); + a[ i ] = uniform( EPS, 100.0 ); + s[ i ] = uniform( EPS, 100.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/mean/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/mean/benchmark/benchmark.js index 77a119080374..b69355707801 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/mean/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/mean/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var Float64Array = require( '@stdlib/array/float64' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -33,14 +34,21 @@ var mean = require( './../lib' ); bench( pkg, function benchmark( b ) { var shape1; var shape2; + var len; var y; var i; + len = 100; + shape1 = new Float64Array( len ); + shape2 = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + shape1[ i ] = uniform( EPS, 10.0 ); + shape2[ i ] = uniform( EPS, 10.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - shape1 = ( randu()*10.0 ) + EPS; - shape2 = ( randu()*10.0 ) + EPS; - y = mean( shape1, shape2 ); + y = mean( shape1[ i % len ], shape2[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/median/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/median/benchmark/benchmark.js index 09da5fa561a1..9bf45be93476 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/median/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/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 ) { 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/kumaraswamy/median/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/median/benchmark/benchmark.native.js index fa1fff0faf4f..04af8f50051a 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/median/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/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 ) { 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/kumaraswamy/mode/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/mode/benchmark/benchmark.js index 4d7710600039..88fdff817072 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/mode/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/mode/benchmark/benchmark.js @@ -21,8 +21,10 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var Float64Array = require( '@stdlib/array/float64' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; var mode = require( './../lib' ); @@ -32,14 +34,21 @@ var mode = require( './../lib' ); bench( pkg, function benchmark( b ) { var shape1; var shape2; + var len; var y; var i; + len = 100; + shape1 = new Float64Array( len ); + shape2 = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + shape1[ i ] = uniform( 1.0 + EPS, 10.0 ); + shape2[ i ] = uniform( 1.0 + EPS, 10.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - shape1 = ( randu()*10.0 ) + 1.0; - shape2 = ( randu()*10.0 ) + 1.0; - y = mode( shape1, shape2 ); + y = mode( shape1[ i % len ], shape2[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/pdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/pdf/benchmark/benchmark.js index 8252cd4dd3d8..3fd6db29203c 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/pdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/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; @@ -31,18 +32,26 @@ var pdf = require( './../lib' ); // MAIN // bench( pkg, function benchmark( b ) { - var a; - var s; + 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, 2.0 ); + alpha[ i ] = uniform( EPS, 100.0 ); + beta[ i ] = uniform( EPS, 100.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*2.0 ) + EPS; - a = ( randu()*100.0 ) + EPS; - s = ( randu()*100.0 ) + EPS; - y = pdf( x, a, s ); + y = pdf( x[ i % len ], alpha[ i % len ], beta[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -57,20 +66,25 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var mypdf; - var a; - var s; + var alpha; + var beta; + var len; var x; var y; var i; - a = 100.56789; - s = 55.54321; - mypdf = pdf.factory( a, s ); + alpha = 100.56789; + beta = 55.54321; + mypdf = pdf.factory( alpha, beta ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 2.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*2.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/kumaraswamy/quantile/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/quantile/benchmark/benchmark.js index 8e71166827b5..3f746d758b83 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/quantile/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/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; @@ -31,18 +32,26 @@ var quantile = require( './../lib' ); // MAIN // bench( pkg, function benchmark( b ) { - var a; - var s; + 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() + EPS; - a = ( randu()*100.0 ) + EPS; - s = ( randu()*100.0 ) + EPS; - y = quantile( p, a, s ); + y = quantile( p[ i % len ], alpha[ i % len ], beta[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -57,20 +66,25 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var myQuantile; - var a; - var s; + var alpha; + var beta; + var len; var p; var y; var i; - a = 100.56789; - s = 55.54321; - myQuantile = quantile.factory( a, s ); + alpha = 100.56789; + beta = 55.54321; + myQuantile = quantile.factory( alpha, beta ); + 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() + EPS; - 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/kumaraswamy/skewness/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/skewness/benchmark/benchmark.js index 0f320ea65403..25094dafb6a6 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/skewness/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/skewness/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 ) { shape1 = new Float64Array( len ); shape2 = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - shape1[ i ] = ( randu()*10.0 ) + EPS; - shape2[ i ] = ( randu()*10.0 ) + EPS; + shape1[ i ] = uniform( EPS, 10.0 ); + shape2[ i ] = uniform( EPS, 10.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/skewness/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/skewness/benchmark/benchmark.native.js index e6a639b9e03d..a1bf8f8a518a 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/skewness/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/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 isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -51,8 +51,8 @@ bench( pkg+'::native', opts, function benchmark( b ) { shape1 = new Float64Array( len ); shape2 = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - shape1[ i ] = ( randu()*10.0 ) + EPS; - shape2[ i ] = ( randu()*10.0 ) + EPS; + shape1[ i ] = uniform( EPS, 10.0 ); + shape2[ i ] = uniform( EPS, 10.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.js index 2e368f5adf44..f3f666ec8239 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/stdev/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var Float64Array = require( '@stdlib/array/float64' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -33,14 +34,21 @@ var stdev = require( './../lib' ); bench( pkg, function benchmark( b ) { var shape1; var shape2; + var len; var y; var i; + len = 100; + shape1 = new Float64Array( len ); + shape2 = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + shape1[ i ] = uniform( EPS, 10.0 ); + shape2[ i ] = uniform( EPS, 10.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - shape1 = ( randu()*10.0 ) + EPS; - shape2 = ( randu()*10.0 ) + EPS; - y = stdev( shape1, shape2 ); + y = stdev( shape1[ i % len ], shape2[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/variance/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/variance/benchmark/benchmark.js index f4a8af268f43..0f0cf0d84dab 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/variance/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/variance/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var Float64Array = require( '@stdlib/array/float64' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -33,14 +34,21 @@ var variance = require( './../lib' ); bench( pkg, function benchmark( b ) { var shape1; var shape2; + var len; var y; var i; + len = 100; + shape1 = new Float64Array( len ); + shape2 = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + shape1[ i ] = uniform( EPS, 10.0 ); + shape2[ i ] = uniform( EPS, 10.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - shape1 = ( randu()*10.0 ) + EPS; - shape2 = ( randu()*10.0 ) + EPS; - y = variance( shape1, shape2 ); + y = variance( shape1[ i % len ], shape2[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } From ee5839904290a1be926cd938b20abc003dc38581 Mon Sep 17 00:00:00 2001 From: yuvi-mittal Date: Sun, 2 Feb 2025 21:47:32 +0530 Subject: [PATCH 2/2] feat : Refactor random number generation in JS benchmarks --- 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 --- --- .../kumaraswamy/ctor/benchmark/benchmark.js | 388 +++++++++--------- 1 file changed, 194 insertions(+), 194 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/ctor/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/ctor/benchmark/benchmark.js index 558002ea6bd5..5725c6f89a3e 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/ctor/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/kumaraswamy/ctor/benchmark/benchmark.js @@ -31,34 +31,34 @@ var Kumaraswamy = require( './../lib' ); // MAIN // -bench( pkg+'::instantiation', function benchmark( b ) { - var alpha; +bench( pkg+'::instantiation', function benchmark( bm ) { var dist; - var beta; var len; + var a; + var b; var i; len = 100; - alpha = new Float64Array( len ); - beta = new Float64Array( len ); + a = new Float64Array( len ); + b = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - alpha[ i ] = uniform( EPS, 10.0 ); - beta[ i ] = uniform( EPS, 10.0 ); + a[ i ] = uniform( EPS, 10.0 ); + b[ i ] = uniform( EPS, 10.0 ); } - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - dist = new Kumaraswamy( alpha[ i % len ], beta[ i % len ] ); + bm.tic(); + for ( i = 0; i < bm.iterations; i++ ) { + dist = new Kumaraswamy( a[ i % len ], b[ i % len ] ); if ( !( dist instanceof Kumaraswamy ) ) { - b.fail( 'should return a distribution instance' ); + bm.fail( 'should return a distribution instance' ); } } - b.toc(); + bm.toc(); if ( !( dist instanceof Kumaraswamy ) ) { - b.fail( 'should return a distribution instance' ); + bm.fail( 'should return a distribution instance' ); } - b.pass( 'benchmark finished' ); - b.end(); + bm.pass( 'benchmark finished' ); + bm.end(); }); bench( pkg+'::get:a', function benchmark( bm ) { @@ -87,36 +87,36 @@ bench( pkg+'::get:a', function benchmark( bm ) { bm.end(); }); -bench( pkg+'::set:alpha', function benchmark( b ) { - var alpha; - var beta; +bench( pkg+'::set:a', function benchmark( bm ) { var dist; var len; + var a; + var b; var y; var i; - alpha = 100.56789; - beta = 55.54321; - dist = new Kumaraswamy( alpha, beta ); + a = 100.56789; + b = 55.54321; + dist = new Kumaraswamy( a, b ); 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++ ) { - dist.alpha = y[ i % len ]; - if ( dist.alpha !== y[i % len] ) { - b.fail( 'should return set value' ); + bm.tic(); + for ( i = 0; i < bm.iterations; i++ ) { + dist.a = y[i % len]; + if ( dist.a !== y[i % len] ) { + bm.fail( 'should return set value' ); } } - b.toc(); + bm.toc(); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } - b.pass( 'benchmark finished' ); - b.end(); + bm.pass( 'benchmark finished' ); + bm.end(); }); bench( pkg+'::get:b', function benchmark( bm ) { @@ -145,403 +145,403 @@ bench( pkg+'::get:b', function benchmark( bm ) { bm.end(); }); -bench( pkg+'::set:beta', function benchmark( b ) { - var alpha; - var beta; +bench( pkg+'::set:b', function benchmark( bm ) { var dist; var len; + var a; + var b; var y; var i; - alpha = 100.56789; - beta = 55.54321; - dist = new Kumaraswamy( alpha, beta ); + a = 100.56789; + b = 55.54321; + dist = new Kumaraswamy( a, b ); 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++ ) { - dist.beta = y[ i % len ]; - if ( dist.beta !== y[i % len ] ) { - b.fail( 'should return set value' ); + bm.tic(); + for ( i = 0; i < bm.iterations; i++ ) { + dist.b = y[i % len]; + if ( dist.b !== y[i % len] ) { + bm.fail( 'should return set value' ); } } - b.toc(); + bm.toc(); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } - b.pass( 'benchmark finished' ); - b.end(); + bm.pass( 'benchmark finished' ); + bm.end(); }); -bench( pkg+':kurtosis', function benchmark( b ) { - var alpha; - var beta; +bench( pkg+':kurtosis', function benchmark( bm ) { var dist; var len; var x; + var a; + var b; var y; var i; - alpha = 100.56789; - beta = 55.54321; - dist = new Kumaraswamy( alpha, beta ); + a = 100.56789; + b = 55.54321; + dist = new Kumaraswamy( a, b ); 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.alpha = x[ i % len ]; + bm.tic(); + for ( i = 0; i < bm.iterations; i++ ) { + dist.a = x[ i % len ]; y = dist.kurtosis; if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } } - b.toc(); + bm.toc(); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } - b.pass( 'benchmark finished' ); - b.end(); + bm.pass( 'benchmark finished' ); + bm.end(); }); -bench( pkg+':mean', function benchmark( b ) { - var alpha; - var beta; +bench( pkg+':mean', function benchmark( bm ) { var dist; var len; var x; + var a; + var b; var y; var i; - alpha = 100.56789; - beta = 55.54321; - dist = new Kumaraswamy( alpha, beta ); + a = 100.56789; + b = 55.54321; + dist = new Kumaraswamy( a, b ); 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.alpha = x[ i % len ]; + bm.tic(); + for ( i = 0; i < bm.iterations; i++ ) { + dist.a = x[ i % len ]; y = dist.mean; if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } } - b.toc(); + bm.toc(); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } - b.pass( 'benchmark finished' ); - b.end(); + bm.pass( 'benchmark finished' ); + bm.end(); }); -bench( pkg+':mode', function benchmark( b ) { - var alpha; - var beta; +bench( pkg+':mode', function benchmark( bm ) { var dist; var len; var x; + var a; + var b; var y; var i; - alpha = 100.56789; - beta = 55.54321; - dist = new Kumaraswamy( alpha, beta ); + a = 100.56789; + b = 55.54321; + dist = new Kumaraswamy( a, b ); 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.alpha = x[ i % len ]; + bm.tic(); + for ( i = 0; i < bm.iterations; i++ ) { + dist.a = x[ i % len ]; y = dist.mode; if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } } - b.toc(); + bm.toc(); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } - b.pass( 'benchmark finished' ); - b.end(); + bm.pass( 'benchmark finished' ); + bm.end(); }); -bench( pkg+':skewness', function benchmark( b ) { - var alpha; - var beta; +bench( pkg+':skewness', function benchmark( bm ) { var dist; var len; var x; + var a; + var b; var y; var i; - alpha = 100.56789; - beta = 55.54321; - dist = new Kumaraswamy( alpha, beta ); + a = 100.56789; + b = 55.54321; + dist = new Kumaraswamy( a, b ); 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.alpha = x[ i % len ]; + bm.tic(); + for ( i = 0; i < bm.iterations; i++ ) { + dist.a = x[ i % len ]; y = dist.skewness; if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } } - b.toc(); + bm.toc(); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } - b.pass( 'benchmark finished' ); - b.end(); + bm.pass( 'benchmark finished' ); + bm.end(); }); -bench( pkg+':stdev', function benchmark( b ) { - var alpha; - var beta; +bench( pkg+':stdev', function benchmark( bm ) { var dist; var len; var x; + var a; + var b; var y; var i; - alpha = 100.56789; - beta = 55.54321; - dist = new Kumaraswamy( alpha, beta ); + a = 100.56789; + b = 55.54321; + dist = new Kumaraswamy( a, b ); 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.alpha = x[ i % len ]; + bm.tic(); + for ( i = 0; i < bm.iterations; i++ ) { + dist.a = x[ i % len ]; y = dist.stdev; if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } } - b.toc(); + bm.toc(); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } - b.pass( 'benchmark finished' ); - b.end(); + bm.pass( 'benchmark finished' ); + bm.end(); }); -bench( pkg+':variance', function benchmark( b ) { - var alpha; - var beta; +bench( pkg+':variance', function benchmark( bm ) { var dist; var len; var x; + var a; + var b; var y; var i; - alpha = 100.56789; - beta = 55.54321; - dist = new Kumaraswamy( alpha, beta ); + a = 100.56789; + b = 55.54321; + dist = new Kumaraswamy( a, b ); 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.alpha = x[ i % len ]; + bm.tic(); + for ( i = 0; i < bm.iterations; i++ ) { + dist.a = x[ i % len ]; y = dist.variance; if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } } - b.toc(); + bm.toc(); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } - b.pass( 'benchmark finished' ); - b.end(); + bm.pass( 'benchmark finished' ); + bm.end(); }); -bench( pkg+':cdf', function benchmark( b ) { - var alpha; - var beta; +bench( pkg+':cdf', function benchmark( bm ) { var dist; var len; + var a; + var b; var x; var y; var i; - alpha = 100.56789; - beta = 55.54321; - dist = new Kumaraswamy( alpha, beta ); + a = 100.56789; + b = 55.54321; + dist = new Kumaraswamy( a, b ); 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++ ) { + bm.tic(); + for ( i = 0; i < bm.iterations; i++ ) { y = dist.cdf( x[ i % len ] ); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } } - b.toc(); + bm.toc(); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } - b.pass( 'benchmark finished' ); - b.end(); + bm.pass( 'benchmark finished' ); + bm.end(); }); -bench( pkg+':logcdf', function benchmark( b ) { - var alpha; - var beta; +bench( pkg+':logcdf', function benchmark( bm ) { var dist; var len; + var a; + var b; var x; var y; var i; - alpha = 100.56789; - beta = 55.54321; - dist = new Kumaraswamy( alpha, beta ); + a = 100.56789; + b = 55.54321; + dist = new Kumaraswamy( a, b ); 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++ ) { + bm.tic(); + for ( i = 0; i < bm.iterations; i++ ) { y = dist.logpdf( x[ i % len ] ); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } } - b.toc(); + bm.toc(); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } - b.pass( 'benchmark finished' ); - b.end(); + bm.pass( 'benchmark finished' ); + bm.end(); }); -bench( pkg+':logpdf', function benchmark( b ) { - var alpha; - var beta; +bench( pkg+':logpdf', function benchmark( bm ) { var dist; var len; + var a; + var b; var x; var y; var i; - alpha = 100.56789; - beta = 55.54321; - dist = new Kumaraswamy( alpha, beta ); + a = 100.56789; + b = 55.54321; + dist = new Kumaraswamy( a, b ); 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++ ) { + bm.tic(); + for ( i = 0; i < bm.iterations; i++ ) { y = dist.logpdf( x[ i % len ] ); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } } - b.toc(); + bm.toc(); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } - b.pass( 'benchmark finished' ); - b.end(); + bm.pass( 'benchmark finished' ); + bm.end(); }); -bench( pkg+':pdf', function benchmark( b ) { - var alpha; - var beta; +bench( pkg+':pdf', function benchmark( bm ) { var dist; var len; + var a; + var b; var x; var y; var i; - alpha = 100.56789; - beta = 55.54321; - dist = new Kumaraswamy( alpha, beta ); + a = 100.56789; + b = 55.54321; + dist = new Kumaraswamy( a, b ); 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++ ) { + bm.tic(); + for ( i = 0; i < bm.iterations; i++ ) { y = dist.pdf( x[ i % len ] ); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } } - b.toc(); + bm.toc(); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } - b.pass( 'benchmark finished' ); - b.end(); + bm.pass( 'benchmark finished' ); + bm.end(); }); -bench( pkg+':quantile', function benchmark( b ) { - var alpha; - var beta; +bench( pkg+':quantile', function benchmark( bm ) { var dist; var len; + var a; + var b; var x; var y; var i; - alpha = 100.56789; - beta = 55.54321; - dist = new Kumaraswamy( alpha, beta ); + a = 100.56789; + b = 55.54321; + dist = new Kumaraswamy( a, b ); 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++ ) { + bm.tic(); + for ( i = 0; i < bm.iterations; i++ ) { y = dist.quantile( x[ i % len ] ); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } } - b.toc(); + bm.toc(); if ( isnan( y ) ) { - b.fail( 'should not return NaN' ); + bm.fail( 'should not return NaN' ); } - b.pass( 'benchmark finished' ); - b.end(); + bm.pass( 'benchmark finished' ); + bm.end(); });