From ae5c2bbc4002e8cf563f18503cf379482acc3133 Mon Sep 17 00:00:00 2001 From: G4URAV001 Date: Thu, 13 Feb 2025 14:37:01 +0000 Subject: [PATCH 1/2] bench(stats/base/dists/triangular): 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 --- --- .../triangular/cdf/benchmark/benchmark.js | 31 +++- .../triangular/ctor/benchmark/benchmark.js | 157 ++++++++++++++---- .../triangular/entropy/benchmark/benchmark.js | 8 +- .../entropy/benchmark/benchmark.native.js | 8 +- .../kurtosis/benchmark/benchmark.js | 8 +- .../kurtosis/benchmark/benchmark.native.js | 8 +- .../triangular/logcdf/benchmark/benchmark.js | 31 +++- .../triangular/logpdf/benchmark/benchmark.js | 19 ++- .../logpdf/benchmark/benchmark.native.js | 10 +- .../triangular/mean/benchmark/benchmark.js | 8 +- .../mean/benchmark/benchmark.native.js | 8 +- .../triangular/median/benchmark/benchmark.js | 8 +- .../median/benchmark/benchmark.native.js | 8 +- .../triangular/mgf/benchmark/benchmark.js | 19 ++- .../mgf/benchmark/benchmark.native.js | 10 +- .../triangular/mode/benchmark/benchmark.js | 8 +- .../mode/benchmark/benchmark.native.js | 8 +- .../triangular/pdf/benchmark/benchmark.js | 19 ++- .../pdf/benchmark/benchmark.native.js | 10 +- .../quantile/benchmark/benchmark.js | 32 +++- .../skewness/benchmark/benchmark.js | 9 +- .../skewness/benchmark/benchmark.native.js | 8 +- .../triangular/stdev/benchmark/benchmark.js | 8 +- .../stdev/benchmark/benchmark.native.js | 8 +- .../variance/benchmark/benchmark.js | 8 +- .../variance/benchmark/benchmark.native.js | 8 +- 26 files changed, 311 insertions(+), 156 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/cdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/cdf/benchmark/benchmark.js index 456b5c86381a..239d15ab63c0 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/cdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/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; @@ -34,17 +35,26 @@ bench( pkg, function benchmark( b ) { var mode; var min; var max; + var len; var x; var y; var i; + len = 100; + x = new Float64Array( len ); + min = new Float64Array( len ); + max = new Float64Array( len ); + mode = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, 30.0 ); + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 40.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu() * 30.0; - min = randu() * 10.0; - max = min + ( randu() * 40.0 ) + EPS; - mode = min + ( ( max - min ) * randu() ); - y = cdf( x, min, max, mode ); + y = cdf( x[ i%len ], min[ i%len ], max[ i%len ], mode[ i%len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -62,6 +72,7 @@ bench( pkg+':factory', function benchmark( b ) { var mode; var min; var max; + var len; var x; var y; var i; @@ -70,11 +81,15 @@ bench( pkg+':factory', function benchmark( b ) { max = 1.5; mode = 0.5; mycdf = cdf.factory( min, max, mode ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -2.0, 0.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*2.0 ) - 2.0; - y = mycdf( x ); + y = mycdf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/ctor/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/ctor/benchmark/benchmark.js index 41098d79b7b7..3bbfa866de44 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/ctor/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/ctor/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var Float64Array = require( '@stdlib/array/float64' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -32,17 +33,25 @@ var Triangular = require( './../lib' ); bench( pkg+'::instantiation', function benchmark( bm ) { var dist; + var len; var a; var b; var c; var i; + len = 100; + a = new Float64Array( len ); + b = new Float64Array( len ); + c = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + a[ i ] = uniform( EPS, 10.0 ); + b[ i ] = uniform( a[ i ] + EPS, a[ i ] + 10.0 ); + c[ i ] = uniform( a[ i ], b[ i ] ); + } + bm.tic(); for ( i = 0; i < bm.iterations; i++ ) { - a = ( randu() * 10.0 ) + EPS; - b = ( randu() * 10.0 ) + a + EPS; - c = ( randu() * ( b-a ) ) + a; - dist = new Triangular( a, b, c ); + dist = new Triangular( a[ i % len ], b[ i % len ], c[ i % len ] ); if ( !( dist instanceof Triangular ) ) { bm.fail( 'should return a distribution instance' ); } @@ -85,6 +94,7 @@ bench( pkg+'::get:a', function benchmark( bm ) { bench( pkg+'::set:a', function benchmark( bm ) { var dist; + var len; var a; var b; var c; @@ -95,17 +105,21 @@ bench( pkg+'::set:a', function benchmark( bm ) { b = 120.0; c = 110.0; dist = new Triangular( a, b, c ); + 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 ) { + dist.a = y[ i % len ]; + if ( dist.a !== y[ i % len ] ) { bm.fail( 'should return set value' ); } } bm.toc(); - if ( isnan( y ) ) { + if ( isnan( y[ i % len ] ) ) { bm.fail( 'should not return NaN' ); } bm.pass( 'benchmark finished' ); @@ -142,6 +156,7 @@ bench( pkg+'::get:b', function benchmark( bm ) { bench( pkg+'::set:b', function benchmark( bm ) { var dist; + var len; var a; var b; var c; @@ -152,17 +167,21 @@ bench( pkg+'::set:b', function benchmark( bm ) { b = 40.0; c = 30.0; dist = new Triangular( a, b, c ); + len = 100; + y = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + y[ i ] = uniform( c + EPS, c + 100.0); + } bm.tic(); for ( i = 0; i < bm.iterations; i++ ) { - y = ( 100.0*randu() ) + c + EPS; - dist.b = y; - if ( dist.b !== y ) { + dist.b = y[ i % len ]; + if ( dist.b !== y[ i % len ] ) { bm.fail( 'should return set value' ); } } bm.toc(); - if ( isnan( y ) ) { + if ( isnan( y[ i % len ] ) ) { bm.fail( 'should not return NaN' ); } bm.pass( 'benchmark finished' ); @@ -199,6 +218,7 @@ bench( pkg+'::get:c', function benchmark( bm ) { bench( pkg+'::set:c', function benchmark( bm ) { var dist; + var len; var a; var b; var c; @@ -209,17 +229,21 @@ bench( pkg+'::set:c', function benchmark( bm ) { b = 40.0; c = 30.0; dist = new Triangular( a, b, c ); + len = 100; + y = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + y[ i ] = uniform( a, b ); + } bm.tic(); for ( i = 0; i < bm.iterations; i++ ) { - y = ( randu() * ( b-a ) ) + a; - dist.c = y; - if ( dist.c !== y ) { + dist.c = y[ i % len ]; + if ( dist.c !== y[ i % len ] ) { bm.fail( 'should return set value' ); } } bm.toc(); - if ( isnan( y ) ) { + if ( isnan( y[ i % len ] ) ) { bm.fail( 'should not return NaN' ); } bm.pass( 'benchmark finished' ); @@ -228,20 +252,27 @@ bench( pkg+'::set:c', function benchmark( bm ) { bench( pkg+':entropy', function benchmark( bm ) { var dist; + var len; var a; var b; var c; var y; + var x; var i; a = 20.0; b = 140.0; c = 100.0; dist = new Triangular( a, b, c ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, c ); + } bm.tic(); for ( i = 0; i < bm.iterations; i++ ) { - dist.a = randu() * c; + dist.a = x[ i % len ]; y = dist.entropy; if ( isnan( y ) ) { bm.fail( 'should not return NaN' ); @@ -257,20 +288,27 @@ bench( pkg+':entropy', function benchmark( bm ) { bench( pkg+':kurtosis', function benchmark( bm ) { var dist; + var len; var a; var b; var c; var y; + var x; var i; a = 20.0; b = 140.0; c = 120.0; dist = new Triangular( a, b, c ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, c ); + } bm.tic(); for ( i = 0; i < bm.iterations; i++ ) { - dist.a = randu() * c; + dist.a = x[ i % len ]; y = dist.kurtosis; if ( isnan( y ) ) { bm.fail( 'should not return NaN' ); @@ -286,6 +324,8 @@ bench( pkg+':kurtosis', function benchmark( bm ) { bench( pkg+':mean', function benchmark( bm ) { var dist; + var len; + var x; var a; var b; var c; @@ -296,10 +336,15 @@ bench( pkg+':mean', function benchmark( bm ) { b = 140.0; c = 110.0; dist = new Triangular( a, b, c ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, c ); + } bm.tic(); for ( i = 0; i < bm.iterations; i++ ) { - dist.a = randu() * c; + dist.a = x[ i % len ]; y = dist.mean; if ( isnan( y ) ) { bm.fail( 'should not return NaN' ); @@ -315,6 +360,8 @@ bench( pkg+':mean', function benchmark( bm ) { bench( pkg+':median', function benchmark( bm ) { var dist; + var len; + var x; var a; var b; var c; @@ -325,10 +372,15 @@ bench( pkg+':median', function benchmark( bm ) { b = 140.0; c = 110.0; dist = new Triangular( a, b, c ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, c ); + } bm.tic(); for ( i = 0; i < bm.iterations; i++ ) { - dist.a = randu() * c; + dist.a = x[ i % len ]; y = dist.median; if ( isnan( y ) ) { bm.fail( 'should not return NaN' ); @@ -344,6 +396,8 @@ bench( pkg+':median', function benchmark( bm ) { bench( pkg+':skewness', function benchmark( bm ) { var dist; + var len; + var x; var a; var b; var c; @@ -354,10 +408,15 @@ bench( pkg+':skewness', function benchmark( bm ) { b = 140.0; c = 110.0; dist = new Triangular( a, b, c ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, c ); + } bm.tic(); for ( i = 0; i < bm.iterations; i++ ) { - dist.a = randu() * c; + dist.a = x[ i % len ]; y = dist.skewness; if ( isnan( y ) ) { bm.fail( 'should not return NaN' ); @@ -373,6 +432,8 @@ bench( pkg+':skewness', function benchmark( bm ) { bench( pkg+':stdev', function benchmark( bm ) { var dist; + var len; + var x; var a; var b; var c; @@ -383,10 +444,15 @@ bench( pkg+':stdev', function benchmark( bm ) { b = 140.0; c = 80.0; dist = new Triangular( a, b, c ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, c ); + } bm.tic(); for ( i = 0; i < bm.iterations; i++ ) { - dist.a = randu() * c; + dist.a = x[ i % len ]; y = dist.stdev; if ( isnan( y ) ) { bm.fail( 'should not return NaN' ); @@ -402,6 +468,8 @@ bench( pkg+':stdev', function benchmark( bm ) { bench( pkg+':variance', function benchmark( bm ) { var dist; + var len; + var x; var a; var b; var c; @@ -412,10 +480,15 @@ bench( pkg+':variance', function benchmark( bm ) { b = 140.0; c = 80.0; dist = new Triangular( a, b, c ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, c ); + } bm.tic(); for ( i = 0; i < bm.iterations; i++ ) { - dist.a = randu() * c; + dist.a = x[ i % len ]; y = dist.variance; if ( isnan( y ) ) { bm.fail( 'should not return NaN' ); @@ -431,6 +504,7 @@ bench( pkg+':variance', function benchmark( bm ) { bench( pkg+':cdf', function benchmark( bm ) { var dist; + var len; var a; var b; var c; @@ -442,11 +516,15 @@ bench( pkg+':cdf', function benchmark( bm ) { b = 40.0; c = 30.0; dist = new Triangular( a, b, c ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, 60.0 ); + } bm.tic(); for ( i = 0; i < bm.iterations; i++ ) { - x = randu() * 60.0; - y = dist.cdf( x ); + y = dist.cdf( x[ i % len ] ); if ( isnan( y ) ) { bm.fail( 'should not return NaN' ); } @@ -461,6 +539,7 @@ bench( pkg+':cdf', function benchmark( bm ) { bench( pkg+':mgf', function benchmark( bm ) { var dist; + var len; var a; var b; var c; @@ -472,11 +551,15 @@ bench( pkg+':mgf', function benchmark( bm ) { b = 40.0; c = 30.0; dist = new Triangular( a, b, c ); + 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.mgf( x ); + y = dist.mgf( x[ i % len ] ); if ( isnan( y ) ) { bm.fail( 'should not return NaN' ); } @@ -491,6 +574,7 @@ bench( pkg+':mgf', function benchmark( bm ) { bench( pkg+':pdf', function benchmark( bm ) { var dist; + var len; var a; var b; var c; @@ -502,11 +586,15 @@ bench( pkg+':pdf', function benchmark( bm ) { b = 40.0; c = 30; dist = new Triangular( a, b, c ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, 60.0 ); + } bm.tic(); for ( i = 0; i < bm.iterations; i++ ) { - x = randu() * 60.0; - y = dist.pdf( x ); + y = dist.pdf( x[ i % len ] ); if ( isnan( y ) ) { bm.fail( 'should not return NaN' ); } @@ -521,6 +609,7 @@ bench( pkg+':pdf', function benchmark( bm ) { bench( pkg+':quantile', function benchmark( bm ) { var dist; + var len; var a; var b; var c; @@ -532,11 +621,15 @@ bench( pkg+':quantile', function benchmark( bm ) { b = 40.0; c = 30.0; dist = new Triangular( a, b, c ); + 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 ); + y = dist.quantile( x[ i % len ] ); if ( isnan( y ) ) { bm.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/entropy/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/entropy/benchmark/benchmark.js index 6fecfe125ded..03246ddc7d06 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/entropy/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/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; @@ -44,9 +44,9 @@ bench( pkg, function benchmark( b ) { max = new Float64Array( len ); mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - min[ i ] = ( randu()*10.0 ); - max[ i ] = ( randu()*10.0 ) + min[ i ] + EPS; - mode[ i ] = ( ( max[ i ] - min[ i ] ) * randu() ) + min[ i ]; + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 10.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/entropy/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/entropy/benchmark/benchmark.native.js index 8260f4e7be0f..b5b2940b9b9d 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/entropy/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/entropy/benchmark/benchmark.native.js @@ -23,7 +23,7 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var EPS = require( '@stdlib/constants/float64/eps' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -53,9 +53,9 @@ bench( pkg+'::native', opts, function benchmark( b ) { max = new Float64Array( len ); mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - min[ i ] = ( randu()*10.0 ); - max[ i ] = ( randu()*10.0 ) + min[ i ] + EPS; - mode[ i ] = ( ( max[ i ] - min[ i ] ) * randu() ) + min[ i ]; + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 10.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/kurtosis/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/kurtosis/benchmark/benchmark.js index fc50ed087662..4bf018b24785 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/kurtosis/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/kurtosis/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; @@ -44,9 +44,9 @@ bench( pkg, function benchmark( b ) { max = new Float64Array( len ); mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - min[ i ] = ( randu()*10.0 ); - max[ i ] = ( randu()*10.0 ) + min[ i ] + EPS; - mode[ i ] = ( ( max[ i ] - min[ i ] ) * randu() ) + min[ i ]; + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 10.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/kurtosis/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/kurtosis/benchmark/benchmark.native.js index ad4a5ec1df15..e2de8f4c4cdb 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/kurtosis/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/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' ); @@ -53,9 +53,9 @@ bench( pkg+'::native', opts, function benchmark( b ) { max = new Float64Array( len ); mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - min[ i ] = ( randu()*10.0 ); - max[ i ] = ( randu()*10.0 ) + min[ i ] + EPS; - mode[ i ] = ( ( max[ i ] - min[ i ] ) * randu() ) + min[ i ]; + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 10.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/benchmark/benchmark.js index caade3f3d97d..89fd926ef2e7 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/logcdf/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; @@ -34,17 +35,26 @@ bench( pkg, function benchmark( b ) { var mode; var min; var max; + var len; var x; var y; var i; + len = 100; + x = new Float64Array( len ); + min = new Float64Array( len ); + max = new Float64Array( len ); + mode = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, 30.0 ); + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 40.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu() * 30.0; - min = randu() * 10.0; - max = min + ( randu() * 40.0 ) + EPS; - mode = min + ( ( max - min ) * randu() ); - y = logcdf( x, min, max, mode ); + y = logcdf( x[ i%len ], min[ i%len ], max[ i%len ], mode[ i%len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -62,6 +72,7 @@ bench( pkg+':factory', function benchmark( b ) { var mode; var min; var max; + var len; var x; var y; var i; @@ -70,11 +81,15 @@ bench( pkg+':factory', function benchmark( b ) { max = 1.5; mode = 0.5; mylogcdf = logcdf.factory( min, max, mode ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -2.0, 0.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*2.0 ) - 2.0; - y = mylogcdf( x ); + y = mylogcdf( x[ i % len ]); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/logpdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/logpdf/benchmark/benchmark.js index b7584d0ab496..988f4c759f1e 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/logpdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/logpdf/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' ); @@ -47,10 +47,10 @@ bench( pkg, function benchmark( b ) { mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = randu() * 30.0; - min[ i ] = randu() * 10.0; - max[ i ] = min[ i ] + ( randu() * 40.0 ) + EPS; - mode[ i ] = min[ i ] + ( ( max[ i ] - min[ i ] ) * randu() ); + x[ i ] = uniform( 0.0, 30.0 ); + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 40.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); @@ -73,6 +73,7 @@ bench( pkg+':factory', function benchmark( b ) { var mode; var min; var max; + var len; var x; var y; var i; @@ -81,11 +82,15 @@ bench( pkg+':factory', function benchmark( b ) { max = 1.5; mode = 0.5; mylogpdf = logpdf.factory( min, max, mode ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -2.0, 0.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*2.0 ) - 2.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/triangular/logpdf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/logpdf/benchmark/benchmark.native.js index 92de1db930bf..75dce3fe4c0f 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/logpdf/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/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 tryRequire = require( '@stdlib/utils/try-require' ); var EPS = require( '@stdlib/constants/float64/eps' ); @@ -56,10 +56,10 @@ bench( pkg+'::native', opts, function benchmark( b ) { mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = randu() * 30.0; - min[ i ] = randu() * 10.0; - max[ i ] = min[ i ] + ( randu() * 40.0 ) + EPS; - mode[ i ] = min[ i ] + ( ( max[ i ] - min[ i ] ) * randu() ); + x[ i ] = uniform( 0.0, 30.0 ); + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 40.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/mean/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/mean/benchmark/benchmark.js index 045b587b197a..4d2cc14cc195 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/mean/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/mean/benchmark/benchmark.js @@ -22,7 +22,7 @@ var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var mean = require( './../lib' ); @@ -43,9 +43,9 @@ bench( pkg, function benchmark( b ) { bnd = new Float64Array( len ); c = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - a[ i ] = randu() * 20.0; - bnd[ i ] = ( randu() * 20.0 ) + a[ i ]; - c[ i ] = ( randu() * ( bnd[i] - a[i] ) ) + a[i]; + a[ i ] = uniform( 0.0, 20.0 ); + bnd[ i ] = uniform( a[ i ], a[ i ] + 20.0 ); + c[ i ] = uniform( a[ i ], bnd[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/mean/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/mean/benchmark/benchmark.native.js index 6b6f9fb39663..5423e05f87e8 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/mean/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/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 isnan = require( '@stdlib/math/base/assert/is-nan' ); var tryRequire = require( '@stdlib/utils/try-require' ); var pkg = require( './../package.json' ).name; @@ -52,9 +52,9 @@ bench( pkg+'::native', opts, function benchmark( b ) { bnd = new Float64Array( len ); c = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - a[ i ] = ( randu() * 20.0 ); - bnd[ i ] = ( randu() * 20.0 ) + a[ i ]; - c[ i ] = ( randu() * ( bnd[i] - a[i] ) ) + a[i]; + a[ i ] = uniform( 0.0, 20.0 ); + bnd[ i ] = uniform( a[ i ], a[ i ] + 20.0 ); + c[ i ] = uniform( a[ i ], bnd[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/median/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/median/benchmark/benchmark.js index 95f5edcf3813..7f3fcb72c5c3 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/median/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/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; @@ -44,9 +44,9 @@ bench( pkg, function benchmark( b ) { max = new Float64Array( len ); mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - min[ i ] = ( randu()*10.0 ); - max[ i ] = ( randu()*10.0 ) + min[ i ] + EPS; - mode[ i ] = ( ( max[ i ] - min[ i ] ) * randu() ) + min[ i ]; + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 10.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/median/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/median/benchmark/benchmark.native.js index ad4a5ec1df15..e2de8f4c4cdb 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/median/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/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' ); @@ -53,9 +53,9 @@ bench( pkg+'::native', opts, function benchmark( b ) { max = new Float64Array( len ); mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - min[ i ] = ( randu()*10.0 ); - max[ i ] = ( randu()*10.0 ) + min[ i ] + EPS; - mode[ i ] = ( ( max[ i ] - min[ i ] ) * randu() ) + min[ i ]; + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 10.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/mgf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/mgf/benchmark/benchmark.js index e14334a122ef..a949da28b799 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/mgf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/mgf/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; @@ -47,10 +47,10 @@ bench( pkg, function benchmark( b ) { mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - t[ i ] = randu() * 5.0; - min[ i ] = randu() * 10.0; - max[ i ] = min[ i ] + ( randu() * 40.0 ) + EPS; - mode[ i ] = min[ i ] + ( ( max[ i ] - min[ i ] ) * randu() ); + t[ i ] = uniform( 0.0, 5.0); + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 40.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); @@ -73,6 +73,7 @@ bench( pkg+':factory', function benchmark( b ) { var mode; var min; var max; + var len; var t; var y; var i; @@ -81,11 +82,15 @@ bench( pkg+':factory', function benchmark( b ) { max = 1.5; mode = 0.5; mymgf = mgf.factory( min, max, mode ); + len = 100; + t = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + t[ i ] = uniform( 0.0, 5.0); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - t = randu() * 5.0; - y = mymgf( t ); + y = mymgf( t[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/mgf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/mgf/benchmark/benchmark.native.js index a00907214e1d..8bb53c30119e 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/mgf/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/mgf/benchmark/benchmark.native.js @@ -23,7 +23,7 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var tryRequire = require( '@stdlib/utils/try-require' ); var EPS = require( '@stdlib/constants/float64/eps' ); @@ -56,10 +56,10 @@ bench( pkg+'::native', opts, function benchmark( b ) { mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - t[ i ] = randu() * 5.0; - min[ i ] = randu() * 10.0; - max[ i ] = min[ i ] + ( randu() * 40.0 ) + EPS; - mode[ i ] = min[ i ] + ( ( max[ i ] - min[ i ] ) * randu() ); + t[ i ] = uniform( 0.0, 5.0); + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 40.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/mode/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/mode/benchmark/benchmark.js index 21b5585e90d1..9c004f8d1104 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/mode/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/mode/benchmark/benchmark.js @@ -22,7 +22,7 @@ var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var mode = require( './../lib' ); @@ -43,9 +43,9 @@ bench( pkg, function benchmark( b ) { bnd = new Float64Array( len ); c = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - a[ i ] = randu() * 20.0; - bnd[ i ] = ( randu() * 20.0 ) + a[ i ]; - c[ i ] = ( randu() * ( bnd[i] - a[i] ) ) + a[i]; + a[ i ] = uniform( 0.0, 20.0 ); + bnd[ i ] = uniform( a[ i ], a[ i ] + 20.0 ); + c[ i ] = uniform( a[ i ], bnd[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/mode/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/mode/benchmark/benchmark.native.js index 66d669f8c681..179f8740c61a 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/mode/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/mode/benchmark/benchmark.native.js @@ -23,7 +23,7 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var tryRequire = require( '@stdlib/utils/try-require' ); var pkg = require( './../package.json' ).name; @@ -52,9 +52,9 @@ bench( pkg+'::native', opts, function benchmark( b ) { bnd = new Float64Array( len ); c = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - a[ i ] = ( randu() * 20.0 ); // Lower bound - bnd[ i ] = ( randu() * 20.0 ) + a[ i ]; // Upper bound - c[ i ] = ( randu() * ( bnd[i] - a[i] ) ) + a[i]; // Mode + a[ i ] = uniform( 0.0, 20.0 ); // Lower bound + bnd[ i ] = uniform( a[ i ], a[ i ] + 20.0 ); // Upper bound + c[ i ] = uniform( a[ i ], bnd[ i ] ); // Mode } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/pdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/pdf/benchmark/benchmark.js index 2009ea83885a..f33ca34351d8 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/pdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/pdf/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' ); @@ -47,10 +47,10 @@ bench( pkg, function benchmark( b ) { mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = randu() * 30.0; - min[ i ] = randu() * 10.0; - max[ i ] = min[ i ] + ( randu() * 40.0 ) + EPS; - mode[ i ] = min[ i ] + ( ( max[ i ] - min[ i ] ) * randu() ); + x[ i ] = uniform( 0.0, 30.0 ); + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 40.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); @@ -73,6 +73,7 @@ bench( pkg+':factory', function benchmark( b ) { var mode; var min; var max; + var len; var x; var y; var i; @@ -81,11 +82,15 @@ bench( pkg+':factory', function benchmark( b ) { max = 1.5; mode = 0.5; mypdf = pdf.factory( min, max, mode ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( -2.0, 0.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*2.0 ) - 2.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/triangular/pdf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/pdf/benchmark/benchmark.native.js index 4020e9d53bf7..7c251098bfeb 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/pdf/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/pdf/benchmark/benchmark.native.js @@ -23,7 +23,7 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var tryRequire = require( '@stdlib/utils/try-require' ); var EPS = require( '@stdlib/constants/float64/eps' ); @@ -56,10 +56,10 @@ bench( pkg+'::native', opts, function benchmark( b ) { mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = randu() * 30.0; - min[ i ] = randu() * 10.0; - max[ i ] = min[ i ] + ( randu() * 40.0 ) + EPS; - mode[ i ] = min[ i ] + ( ( max[ i ] - min[ i ] ) * randu() ); + x[ i ] = uniform( 0.0, 30.0 ); + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 40.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/quantile/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/quantile/benchmark/benchmark.js index 698bfd05fc91..fbae86377150 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/quantile/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/quantile/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; @@ -34,17 +35,27 @@ bench( pkg, function benchmark( b ) { var mode; var min; var max; + var len; var p; var y; var i; + len = 100; + p = new Float64Array( len ); + min = new Float64Array( len ); + max = new Float64Array( len ); + mode = new Float64Array( len ); + + for ( i = 0; i < len; i++ ) { + p[ i ] = uniform( 0.0, 1.0 ); + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 40.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - p = randu(); - min = randu() * 10.0; - max = min + ( randu() * 40.0 ) + EPS; - mode = min + ( ( max - min ) * randu() ); - y = quantile( p, min, max, mode ); + y = quantile( p[ i%len ][ i%len ], max[ i%len ], mode[ i%len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -62,6 +73,7 @@ bench( pkg+':factory', function benchmark( b ) { var mode; var min; var max; + var len; var p; var y; var i; @@ -70,11 +82,15 @@ bench( pkg+':factory', function benchmark( b ) { max = 1.5; mode = 0.5; myquantile = quantile.factory( min, max, mode ); + 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' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/skewness/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/skewness/benchmark/benchmark.js index 67f389b0644f..cf94015b4967 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/skewness/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/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; @@ -43,10 +43,11 @@ bench( pkg, function benchmark( b ) { min = new Float64Array( len ); max = new Float64Array( len ); mode = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { - min[ i ] = ( randu()*10.0 ); - max[ i ] = ( randu()*10.0 ) + min[ i ] + EPS; - mode[ i ] = ( ( max[ i ] - min[ i ] ) * randu() ) + min[ i ]; + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 10.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/skewness/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/skewness/benchmark/benchmark.native.js index 5442da8fc712..3a06948cfb60 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/skewness/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/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' ); @@ -53,9 +53,9 @@ bench( pkg+'::native', opts, function benchmark( b ) { max = new Float64Array( len ); mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - min[ i ] = ( randu()*10.0 ); - max[ i ] = ( randu()*10.0 ) + min[ i ] + EPS; - mode[ i ] = ( ( max[ i ] - min[ i ] ) * randu() ) + min[ i ]; + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 10.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/stdev/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/stdev/benchmark/benchmark.js index 6ff669430883..35ecf6e60e2f 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/stdev/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/stdev/benchmark/benchmark.js @@ -22,7 +22,7 @@ var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -44,9 +44,9 @@ bench( pkg, function benchmark( b ) { max = new Float64Array( len ); mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - min[ i ] = ( randu()*10.0 ); - max[ i ] = ( randu()*10.0 ) + min[ i ] + EPS; - mode[ i ] = ( ( max[ i ] - min[ i ] ) * randu() ) + min[ i ]; + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 10.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/stdev/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/stdev/benchmark/benchmark.native.js index eece5edb2784..338a4c14e294 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/stdev/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/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' ); @@ -53,9 +53,9 @@ bench( pkg+'::native', opts, function benchmark( b ) { max = new Float64Array( len ); mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - min[ i ] = ( randu()*10.0 ); - max[ i ] = ( randu()*10.0 ) + min[ i ] + EPS; - mode[ i ] = ( ( max[ i ] - min[ i ] ) * randu() ) + min[ i ]; + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ] + EPS, min[ i ] + 10.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/variance/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/variance/benchmark/benchmark.js index dcebaa3ef732..29453f53a167 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/variance/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/variance/benchmark/benchmark.js @@ -22,7 +22,7 @@ var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var variance = require( './../lib' ); @@ -43,9 +43,9 @@ bench( pkg, function benchmark( b ) { max = new Float64Array( len ); mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - min[ i ] = ( randu() * 10.0 ); - max[ i ] = ( randu() * 10.0 ) + min[ i ]; - mode[ i ] = min[ i ] + ( randu() * ( max[ i ] - min[ i ] ) ); + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ], min[ i ] + 10.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/triangular/variance/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/triangular/variance/benchmark/benchmark.native.js index 88ab58c393fc..e09dfe17160e 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/triangular/variance/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/triangular/variance/benchmark/benchmark.native.js @@ -22,7 +22,7 @@ var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pkg = require( './../package.json' ).name; var variance = require( './../lib' ); @@ -43,9 +43,9 @@ bench( pkg+'::native', function benchmark( b ) { max = new Float64Array( len ); mode = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - min[ i ] = ( randu() * 10.0 ); - max[ i ] = ( randu() * 10.0 ) + min[ i ]; - mode[ i ] = min[ i ] + ( randu() * ( max[ i ] - min[ i ] ) ); + min[ i ] = uniform( 0.0, 10.0 ); + max[ i ] = uniform( min[ i ], min[ i ] + 10.0 ); + mode[ i ] = uniform( min[ i ], max[ i ] ); } b.tic(); From c78226e76f3993b6e2ec2957dde2376af918426a Mon Sep 17 00:00:00 2001 From: G4URAV001 Date: Fri, 14 Feb 2025 09:53:24 +0000 Subject: [PATCH 2/2] bench(stats/base/dists/weibull): 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 --- --- .../dists/weibull/cdf/benchmark/benchmark.js | 17 +- .../weibull/cdf/benchmark/benchmark.native.js | 8 +- .../dists/weibull/ctor/benchmark/benchmark.js | 159 ++++++++++++++---- .../weibull/entropy/benchmark/benchmark.js | 16 +- .../weibull/kurtosis/benchmark/benchmark.js | 16 +- .../weibull/logcdf/benchmark/benchmark.js | 17 +- .../logcdf/benchmark/benchmark.native.js | 8 +- .../weibull/logpdf/benchmark/benchmark.js | 17 +- .../logpdf/benchmark/benchmark.native.js | 8 +- .../dists/weibull/mean/benchmark/benchmark.js | 6 +- .../mean/benchmark/benchmark.native.js | 6 +- .../weibull/median/benchmark/benchmark.js | 6 +- .../median/benchmark/benchmark.native.js | 6 +- .../dists/weibull/mgf/benchmark/benchmark.js | 28 ++- .../dists/weibull/mode/benchmark/benchmark.js | 16 +- .../dists/weibull/pdf/benchmark/benchmark.js | 17 +- .../weibull/pdf/benchmark/benchmark.native.js | 8 +- .../weibull/quantile/benchmark/benchmark.js | 28 ++- .../weibull/skewness/benchmark/benchmark.js | 16 +- .../weibull/stdev/benchmark/benchmark.js | 16 +- .../weibull/variance/benchmark/benchmark.js | 16 +- 21 files changed, 315 insertions(+), 120 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/weibull/cdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/cdf/benchmark/benchmark.js index 577bc1390817..ddb26aa6bc48 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/cdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/cdf/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; @@ -44,9 +44,9 @@ bench( pkg, function benchmark( b ) { lambda = new Float64Array( len ); k = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = ( randu()*100.0 ) + EPS; - lambda[ i ] = ( randu()*100.0 ) + EPS; - k[ i ] = ( randu()*100.0 ) + EPS; + x[ i ] = uniform( EPS, 100.0 ); + lambda[ i ] = uniform( EPS, 100.0 ); + k[ i ] = uniform( EPS, 100.0 ); } b.tic(); @@ -67,6 +67,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var lambda; var mycdf; + var len; var k; var x; var y; @@ -75,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { lambda = 3.14; k = 2.25; mycdf = cdf.factory( k, lambda ); + 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/weibull/cdf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/cdf/benchmark/benchmark.native.js index d42d2783cd55..d29ee3d95b55 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/cdf/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/cdf/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; @@ -53,9 +53,9 @@ bench( pkg+'::native', opts, function benchmark( b ) { lambda = new Float64Array( len ); k = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = ( randu()*100.0 ) + EPS; - lambda[ i ] = ( randu()*100.0 ) + EPS; - k[ i ] = ( randu()*100.0 ) + EPS; + x[ i ] = uniform( EPS, 100.0 ); + lambda[ i ] = uniform( EPS, 100.0 ); + k[ i ] = uniform( EPS, 100.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/weibull/ctor/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/ctor/benchmark/benchmark.js index 183bc0b4554e..9d9c76ddf857 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/ctor/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/ctor/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 Weibull = require( './../lib' ); bench( pkg+'::instantiation', function benchmark( b ) { var lambda; var dist; + var len; var i; var k; + len = 100; + lambda = new Float64Array( len ); + k = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + lambda[ i ] = uniform( EPS, 10.0 ); + k[ i ] = uniform( EPS, 10.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - k = ( randu() * 10.0 ) + EPS; - lambda = ( randu() * 10.0 ) + EPS; - dist = new Weibull( k, lambda ); + dist = new Weibull( k[ i % len ], lambda[ i % len ] ); if ( !( dist instanceof Weibull ) ) { b.fail( 'should return a distribution instance' ); } @@ -82,6 +90,7 @@ bench( pkg+'::get:k', function benchmark( b ) { bench( pkg+'::set:k', function benchmark( b ) { var lambda; var dist; + var len; var y; var i; var k; @@ -89,17 +98,21 @@ bench( pkg+'::set:k', function benchmark( b ) { k = 10.56; lambda = 5.54; dist = new Weibull( k, lambda ); + len = 100; + y = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + y[ i ] = uniform( EPS, 10.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = ( 10.0*randu() ) + EPS; - dist.k = y; - if ( dist.k !== y ) { + dist.k = y[ i % len ]; + if ( dist.k !== y[ i % len ] ) { b.fail( 'should return set value' ); } } b.toc(); - if ( isnan( y ) ) { + if ( isnan( y[ i % len ] ) ) { b.fail( 'should not return NaN' ); } b.pass( 'benchmark finished' ); @@ -135,6 +148,7 @@ bench( pkg+'::get:lambda', function benchmark( b ) { bench( pkg+'::set:lambda', function benchmark( b ) { var lambda; var dist; + var len; var y; var i; var k; @@ -142,17 +156,21 @@ bench( pkg+'::set:lambda', function benchmark( b ) { k = 10.56; lambda = 5.54; dist = new Weibull( k, lambda ); + len = 100; + y = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + y[ i ] = uniform( EPS, 10.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = ( 10.0*randu() ) + EPS; - dist.lambda = y; - if ( dist.lambda !== y ) { + dist.lambda = y[ i % len ]; + if ( dist.lambda !== y[ i % len ] ) { b.fail( 'should return set value' ); } } b.toc(); - if ( isnan( y ) ) { + if ( isnan( y[ i % len ] ) ) { b.fail( 'should not return NaN' ); } b.pass( 'benchmark finished' ); @@ -162,17 +180,24 @@ bench( pkg+'::set:lambda', function benchmark( b ) { bench( pkg+':entropy', function benchmark( b ) { var lambda; var dist; + var len; var y; + var x; var i; var k; k = 10.56; lambda = 5.54; dist = new Weibull( k, lambda ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 10.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.k = ( 10.0*randu() ) + EPS; + dist.k = 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+':kurtosis', function benchmark( b ) { var lambda; var dist; + var len; var y; + var x; var i; var k; k = 10.56; lambda = 5.54; dist = new Weibull( k, lambda ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS + 1.0, 11.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.k = ( 10.0*randu() ) + 1.0 + EPS; + dist.k = x[ i % len ]; y = dist.kurtosis; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -216,17 +248,24 @@ bench( pkg+':kurtosis', function benchmark( b ) { bench( pkg+':mean', function benchmark( b ) { var lambda; var dist; + var len; var y; + var x; var i; var k; k = 10.56; lambda = 5.54; dist = new Weibull( k, lambda ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 10.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.k = ( 10.0*randu() ) + EPS; + dist.k = x[ i % len ]; y = dist.mean; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -243,17 +282,24 @@ bench( pkg+':mean', function benchmark( b ) { bench( pkg+':median', function benchmark( b ) { var lambda; var dist; + var len; var y; + var x; var i; var k; k = 10.56; lambda = 5.54; dist = new Weibull( k, lambda ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS, 10.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.k = ( 10.0*randu() ) + EPS; + dist.k = x[ i % len ]; y = dist.median; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -270,17 +316,24 @@ bench( pkg+':median', function benchmark( b ) { bench( pkg+':mode', function benchmark( b ) { var lambda; var dist; + var len; var y; + var x; var i; var k; k = 10.56; lambda = 5.54; dist = new Weibull( k, lambda ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS + 1.0, 11.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.k = ( 10.0*randu() ) + 1.0 + EPS; + dist.k = x[ i % len ]; y = dist.mode; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -297,17 +350,24 @@ bench( pkg+':mode', function benchmark( b ) { bench( pkg+':skewness', function benchmark( b ) { var lambda; var dist; + var len; var y; + var x; var i; var k; k = 10.56; lambda = 5.54; dist = new Weibull( k, lambda ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS + 1.0, 11.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.k = ( 10.0*randu() ) + 1.0 + EPS; + dist.k = x[ i % len ]; y = dist.skewness; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -324,17 +384,24 @@ bench( pkg+':skewness', function benchmark( b ) { bench( pkg+':stdev', function benchmark( b ) { var lambda; var dist; + var len; var y; + var x; var i; var k; k = 10.56; lambda = 5.54; dist = new Weibull( k, lambda ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS + 1.0, 11.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.k = ( 10.0*randu() ) + 1.0 + EPS; + dist.k = x[ i % len ]; y = dist.stdev; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -351,17 +418,24 @@ bench( pkg+':stdev', function benchmark( b ) { bench( pkg+':variance', function benchmark( b ) { var lambda; var dist; + var len; var y; + var x; var i; var k; k = 10.56; lambda = 5.54; dist = new Weibull( k, lambda ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( EPS + 1.0, 11.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.k = ( 10.0*randu() ) + 1.0 + EPS; + dist.k = x[ i % len ]; y = dist.variance; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -378,6 +452,7 @@ bench( pkg+':variance', function benchmark( b ) { bench( pkg+':cdf', function benchmark( b ) { var lambda; var dist; + var len; var x; var y; var i; @@ -386,11 +461,15 @@ bench( pkg+':cdf', function benchmark( b ) { k = 10.56; lambda = 5.54; dist = new Weibull( k, lambda ); + 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' ); } @@ -406,6 +485,7 @@ bench( pkg+':cdf', function benchmark( b ) { bench( pkg+':logpdf', function benchmark( b ) { var lambda; var dist; + var len; var x; var y; var i; @@ -414,11 +494,15 @@ bench( pkg+':logpdf', function benchmark( b ) { k = 10.56; lambda = 5.54; dist = new Weibull( k, lambda ); + 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' ); } @@ -434,6 +518,7 @@ bench( pkg+':logpdf', function benchmark( b ) { bench( pkg+':mgf', function benchmark( b ) { var lambda; var dist; + var len; var x; var y; var i; @@ -442,11 +527,15 @@ bench( pkg+':mgf', function benchmark( b ) { k = 10.56; lambda = 5.54; dist = new Weibull( k, lambda ); + len = 100; + x = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + x[ i ] = uniform( 0.0, 1.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu(); - y = dist.mgf( x ); + y = dist.mgf( x[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -462,6 +551,7 @@ bench( pkg+':mgf', function benchmark( b ) { bench( pkg+':pdf', function benchmark( b ) { var lambda; var dist; + var len; var x; var y; var i; @@ -470,11 +560,15 @@ bench( pkg+':pdf', function benchmark( b ) { k = 10.56; lambda = 5.54; dist = new Weibull( k, lambda ); + 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' ); } @@ -490,6 +584,7 @@ bench( pkg+':pdf', function benchmark( b ) { bench( pkg+':quantile', function benchmark( b ) { var lambda; var dist; + var len; var x; var y; var i; @@ -498,11 +593,15 @@ bench( pkg+':quantile', function benchmark( b ) { k = 10.56; lambda = 5.54; dist = new Weibull( k, lambda ); + 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/weibull/entropy/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/entropy/benchmark/benchmark.js index 6d5f7bdd0952..4eb4b975d2ba 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/entropy/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/entropy/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var Float64Array = require( '@stdlib/array/float64' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -32,15 +33,22 @@ var entropy = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var k; var y; var i; + len = 100; + lambda = new Float64Array( len ); + k = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + lambda[ i ] = uniform( EPS, 10.0 ); + k[ i ] = uniform( EPS, 10.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - k = ( randu()*10.0 ) + EPS; - lambda = ( randu()*10.0 ) + EPS; - y = entropy( k, lambda ); + y = entropy( k[ i % len ], lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/weibull/kurtosis/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/kurtosis/benchmark/benchmark.js index 110e0f59de5e..0df9a55b866e 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/kurtosis/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/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 pkg = require( './../package.json' ).name; var kurtosis = require( './../lib' ); @@ -31,15 +32,22 @@ var kurtosis = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var k; var y; var i; + len = 100; + lambda = new Float64Array( len ); + k = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + lambda[ i ] = uniform( 1.0, 11.0 ); + k[ i ] = uniform( 1.0, 11.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - k = ( randu()*10.0 ) + 1.0; - lambda = ( randu()*10.0 ) + 1.0; - y = kurtosis( k, lambda ); + y = kurtosis( k[ i % len ], lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/weibull/logcdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/logcdf/benchmark/benchmark.js index 5dc931a25fc1..a023c46e43f0 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/logcdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/logcdf/benchmark/benchmark.js @@ -21,8 +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; @@ -44,9 +44,9 @@ bench( pkg, function benchmark( b ) { lambda = new Float64Array( len ); k = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = ( randu()*100.0 ) + EPS; - lambda[ i ] = ( randu()*100.0 ) + EPS; - k[ i ] = ( randu()*100.0 ) + EPS; + x[ i ] = uniform( EPS, 100.0 ); + lambda[ i ] = uniform( EPS, 100.0 ); + k[ i ] = uniform( EPS, 100.0 ); } b.tic(); @@ -67,6 +67,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var mylogcdf; var lambda; + var len; var k; var x; var y; @@ -75,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { lambda = 3.14; k = 2.25; mylogcdf = logcdf.factory( k, lambda ); + 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/weibull/logcdf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/logcdf/benchmark/benchmark.native.js index 80fb1f1d8bc3..d96be8c45106 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/logcdf/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/logcdf/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; @@ -53,9 +53,9 @@ bench( pkg+'::native', opts, function benchmark( b ) { lambda = new Float64Array( len ); k = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = ( randu()*100.0 ) + EPS; - lambda[ i ] = ( randu()*100.0 ) + EPS; - k[ i ] = ( randu()*100.0 ) + EPS; + x[ i ] = uniform( EPS, 100.0 ); + lambda[ i ] = uniform( EPS, 100.0 ); + k[ i ] = uniform( EPS, 100.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/weibull/logpdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/logpdf/benchmark/benchmark.js index a8ee532aab70..bed246b6a702 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/logpdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/logpdf/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' ); @@ -44,9 +44,9 @@ bench( pkg, function benchmark( b ) { lambda = new Float64Array( len ); k = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = ( randu()*100.0 ) + EPS; - lambda[ i ] = ( randu()*100.0 ) + EPS; - k[ i ] = ( randu()*100.0 ) + EPS; + x[ i ] = uniform( EPS, 100.0 ); + lambda[ i ] = uniform( EPS, 100.0 ); + k[ i ] = uniform( EPS, 100.0 ); } b.tic(); @@ -67,6 +67,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var mylogpdf; var lambda; + var len; var k; var x; var y; @@ -75,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { lambda = 3.14; k = 2.25; mylogpdf = logpdf.factory( k, lambda ); + 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/weibull/logpdf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/logpdf/benchmark/benchmark.native.js index df1c1048a9b9..a17a2c37b4eb 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/logpdf/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/logpdf/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; @@ -53,9 +53,9 @@ bench( pkg+'::native', opts, function benchmark( b ) { lambda = new Float64Array( len ); k = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = ( randu()*100.0 ) + EPS; - lambda[ i ] = ( randu()*100.0 ) + EPS; - k[ i ] = ( randu()*100.0 ) + EPS; + x[ i ] = uniform( EPS, 100.0 ); + lambda[ i ] = uniform( EPS, 100.0 ); + k[ i ] = uniform( EPS, 100.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/weibull/mean/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/mean/benchmark/benchmark.js index 5938941b6028..5569487b63ca 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/mean/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/mean/benchmark/benchmark.js @@ -22,7 +22,7 @@ var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -42,8 +42,8 @@ bench( pkg, function benchmark( b ) { k = new Float64Array( len ); lambda = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - k[ i ] = ( randu() * 10.0 ) + EPS; - lambda[ i ] = ( randu() * 10.0 ) + EPS; + lambda[ i ] = uniform( EPS, 10.0 ); + k[ i ] = uniform( EPS, 10.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/weibull/mean/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/mean/benchmark/benchmark.native.js index ce1da45733eb..797b68d23816 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/mean/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/mean/benchmark/benchmark.native.js @@ -25,7 +25,7 @@ var bench = require( '@stdlib/bench' ); var Float64Array = require( '@stdlib/array/float64' ); var tryRequire = require( '@stdlib/utils/try-require' ); 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 pkg = require( './../package.json' ).name; @@ -51,8 +51,8 @@ bench( pkg+'::native', opts, function benchmark( b ) { k = new Float64Array( len ); lambda = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - k[ i ] = ( randu() * 10.0 ) + EPS; - lambda[ i ] = ( randu() * 10.0 ) + EPS; + lambda[ i ] = uniform( EPS, 10.0 ); + k[ i ] = uniform( EPS, 10.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/weibull/median/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/median/benchmark/benchmark.js index 4c9eccf4ae12..1839a032579d 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/median/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/median/benchmark/benchmark.js @@ -21,7 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); var 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 ) { lambda = new Float64Array( len ); k = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - lambda[ i ] = ( randu()*10.0 ) + EPS; - k[ i ] = ( randu()*10.0 ) + EPS; + lambda[ i ] = uniform( EPS, 10.0 ); + k[ i ] = uniform( EPS, 10.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/weibull/median/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/median/benchmark/benchmark.native.js index fa482f262dba..c86e443895fd 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/median/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/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 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 ) { lambda = new Float64Array( len ); k = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - lambda[ i ] = ( randu()*10.0 ) + EPS; - k[ i ] = ( randu()*10.0 ) + EPS; + lambda[ i ] = uniform( EPS, 10.0 ); + k[ i ] = uniform( EPS, 10.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/weibull/mgf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/mgf/benchmark/benchmark.js index a66547db6a04..75ecf0f58f85 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/mgf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/mgf/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var Float64Array = require( '@stdlib/array/float64' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -32,17 +33,25 @@ var mgf = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var k; var t; var y; var i; + len = 100; + t = new Float64Array( len ); + lambda = new Float64Array( len ); + k = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + t[ i ] = uniform( EPS, 2.0 ); + lambda[ i ] = uniform( EPS, 1.0 ); + k[ i ] = uniform( 1.0, 2.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - t = ( randu()*2.0 ) + EPS; - lambda = ( randu()*1.0 ) + EPS; - k = ( randu()*1.0 ) + 1.0; - y = mgf( t, k, lambda ); + y = mgf( t[ i % len ], k[ i % len ], lambda[ 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 lambda; var mymgf; + var len; var k; var t; var y; @@ -66,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { lambda = 3.14; k = 2.25; mymgf = mgf.factory( k, lambda ); + len = 100; + t = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + t[ i ] = uniform( EPS, 10.0 ); + } b.tic(); for ( i = 0; i < b.iterations; i++ ) { - t = ( randu()*10.0 ) + EPS; - y = mymgf( t ); + y = mymgf( t[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/weibull/mode/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/mode/benchmark/benchmark.js index e05608211b3c..293a046a79b5 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/mode/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/mode/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var Float64Array = require( '@stdlib/array/float64' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -32,15 +33,22 @@ var mode = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var k; var y; var i; + len = 100; + lambda = new Float64Array( len ); + k = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + lambda[ i ] = uniform( EPS, 10.0 ); + k[ i ] = uniform( EPS, 10.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - k = ( randu()*10.0 ) + EPS; - lambda = ( randu()*10.0 ) + EPS; - y = mode( k, lambda ); + y = mode( k[ i % len ], lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/weibull/pdf/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/pdf/benchmark/benchmark.js index 4a12bca733eb..29901371618d 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/pdf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/pdf/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' ); @@ -44,9 +44,9 @@ bench( pkg, function benchmark( b ) { lambda = new Float64Array( len ); k = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = ( randu()*100.0 ) + EPS; - lambda[ i ] = ( randu()*100.0 ) + EPS; - k[ i ] = ( randu()*100.0 ) + EPS; + x[ i ] = uniform( EPS, 100.0 ); + lambda[ i ] = uniform( EPS, 100.0 ); + k[ i ] = uniform( EPS, 100.0 ); } b.tic(); @@ -67,6 +67,7 @@ bench( pkg, function benchmark( b ) { bench( pkg+':factory', function benchmark( b ) { var lambda; var mypdf; + var len; var k; var x; var y; @@ -75,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { lambda = 3.14; k = 2.25; mypdf = pdf.factory( k, lambda ); + 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/weibull/pdf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/pdf/benchmark/benchmark.native.js index 09f63d624016..e2df2e7b7da2 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/pdf/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/pdf/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' ); @@ -53,9 +53,9 @@ bench( pkg+'::native', opts, function benchmark( b ) { lambda = new Float64Array( len ); k = new Float64Array( len ); for ( i = 0; i < len; i++ ) { - x[ i ] = ( randu()*100.0 ) + EPS; - lambda[ i ] = ( randu()*100.0 ) + EPS; - k[ i ] = ( randu()*100.0 ) + EPS; + x[ i ] = uniform( EPS, 100.0 ); + lambda[ i ] = uniform( EPS, 100.0 ); + k[ i ] = uniform( EPS, 100.0 ); } b.tic(); diff --git a/lib/node_modules/@stdlib/stats/base/dists/weibull/quantile/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/quantile/benchmark/benchmark.js index 0e289e16550c..cc56ed294381 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/quantile/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/quantile/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var Float64Array = require( '@stdlib/array/float64' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -32,17 +33,25 @@ var quantile = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var k; var p; var y; var i; + len = 100; + p = new Float64Array( len ); + lambda = new Float64Array( len ); + k = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + p[ i ] = uniform( 0.0, 1.0 ); + lambda[ i ] = uniform( EPS, 100.0 ); + k[ i ] = uniform( EPS, 100.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - p = randu(); - lambda = ( randu()*100.0 ) + EPS; - k = ( randu()*100.0 ) + EPS; - y = quantile( p, k, lambda ); + y = quantile( p[ i % len ], k[ i % len ], lambda[ 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 lambda; + var len; var k; var p; var y; @@ -66,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) { lambda = 3.14; k = 2.25; myquantile = quantile.factory( k, lambda ); + 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' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/weibull/skewness/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/skewness/benchmark/benchmark.js index b69cf2170f8c..de322f1c49a3 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/skewness/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/skewness/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var Float64Array = require( '@stdlib/array/float64' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -32,15 +33,22 @@ var skewness = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var k; var y; var i; + len = 100; + lambda = new Float64Array( len ); + k = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + lambda[ i ] = uniform( EPS + 1.0, 11.0 ); + k[ i ] = uniform( EPS + 1.0, 11.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - k = ( randu()*10.0 ) + 1.0 + EPS; - lambda = ( randu()*10.0 ) + 1.0 + EPS; - y = skewness( k, lambda ); + y = skewness( k[ i % len ], lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/weibull/stdev/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/stdev/benchmark/benchmark.js index 47be94fb9427..7b38d7a35fbc 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/stdev/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/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; @@ -32,15 +33,22 @@ var stdev = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var k; var y; var i; + len = 100; + lambda = new Float64Array( len ); + k = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + lambda[ i ] = uniform( EPS + 1.0, 11.0 ); + k[ i ] = uniform( EPS + 1.0, 11.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - k = ( randu()*10.0 ) + 1.0 + EPS; - lambda = ( randu()*10.0 ) + 1.0 + EPS; - y = stdev( k, lambda ); + y = stdev( k[ i % len ], lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } diff --git a/lib/node_modules/@stdlib/stats/base/dists/weibull/variance/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/weibull/variance/benchmark/benchmark.js index 04630f63280c..524388a7645c 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/weibull/variance/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/weibull/variance/benchmark/benchmark.js @@ -21,7 +21,8 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ); +var Float64Array = require( '@stdlib/array/float64' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); var pkg = require( './../package.json' ).name; @@ -32,15 +33,22 @@ var variance = require( './../lib' ); bench( pkg, function benchmark( b ) { var lambda; + var len; var k; var y; var i; + len = 100; + lambda = new Float64Array( len ); + k = new Float64Array( len ); + for ( i = 0; i < len; i++ ) { + lambda[ i ] = uniform( EPS + 1.0, 11.0 ); + k[ i ] = uniform( EPS + 1.0, 11.0 ); + } + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - k = ( randu()*10.0 ) + 1.0 + EPS; - lambda = ( randu()*10.0 ) + 1.0 + EPS; - y = variance( k, lambda ); + y = variance( k[ i % len ], lambda[ i % len ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); }