From 7b1d557ccfbfa7a613b42aeea4b8af1819a4d3e4 Mon Sep 17 00:00:00 2001 From: hrshya Date: Fri, 23 Jan 2026 15:26:03 +0530 Subject: [PATCH] bench: update random value generation --- .../rayleigh/ctor/benchmark/benchmark.js | 183 ++++++++++++++---- 1 file changed, 140 insertions(+), 43 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/base/dists/rayleigh/ctor/benchmark/benchmark.js b/lib/node_modules/@stdlib/stats/base/dists/rayleigh/ctor/benchmark/benchmark.js index 71c0f3fba757..23a002e49f6b 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/rayleigh/ctor/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/stats/base/dists/rayleigh/ctor/benchmark/benchmark.js @@ -21,24 +21,30 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/array/uniform' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var EPS = require( '@stdlib/constants/float64/eps' ); +var format = require( '@stdlib/string/format' ); var pkg = require( './../package.json' ).name; var Rayleigh = require( './../lib' ); // MAIN // -bench( pkg+'::instantiation', function benchmark( b ) { +bench( format( '%s::instantiation', pkg ), function benchmark( b ) { var sigma; var dist; + var opts; var i; + opts = { + 'dtype': 'float64' + }; + sigma = uniform( 100, EPS, 10.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - sigma = ( randu() * 10.0 ) + EPS; - dist = new Rayleigh( sigma ); + dist = new Rayleigh( sigma[ i % sigma.length ] ); if ( !( dist instanceof Rayleigh ) ) { b.fail( 'should return a distribution instance' ); } @@ -51,7 +57,7 @@ bench( pkg+'::instantiation', function benchmark( b ) { b.end(); }); -bench( pkg+'::get:sigma', function benchmark( b ) { +bench( format( '%s::get:sigma', pkg ), function benchmark( b ) { var sigma; var dist; var y; @@ -75,20 +81,25 @@ bench( pkg+'::get:sigma', function benchmark( b ) { b.end(); }); -bench( pkg+'::set:sigma', function benchmark( b ) { +bench( format( '%s::set:sigma', pkg ), function benchmark( b ) { var sigma; var dist; + var opts; var y; var i; sigma = 5.54; dist = new Rayleigh( sigma ); + opts = { + 'dtype': 'float64' + }; + y = uniform( 100, EPS, 10.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - y = ( 10.0*randu() ) + EPS; - dist.sigma = y; - if ( dist.sigma !== y ) { + dist.sigma = y[ i % y.length ]; + if ( dist.sigma !== y[ i % y.length ] ) { b.fail( 'should return set value' ); } } @@ -100,18 +111,25 @@ bench( pkg+'::set:sigma', function benchmark( b ) { b.end(); }); -bench( pkg+':entropy', function benchmark( b ) { +bench( format( '%s:entropy', pkg ), function benchmark( b ) { var sigma; var dist; + var opts; + var x; var y; var i; sigma = 5.54; dist = new Rayleigh( sigma ); + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, EPS, 10.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.sigma = ( 10.0*randu() ) + EPS; + dist.sigma = x[ i % x.length ]; y = dist.entropy; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -125,18 +143,25 @@ bench( pkg+':entropy', function benchmark( b ) { b.end(); }); -bench( pkg+':kurtosis', function benchmark( b ) { +bench( format( '%s:kurtosis', pkg ), function benchmark( b ) { var sigma; var dist; + var opts; + var x; var y; var i; sigma = 5.54; dist = new Rayleigh( sigma ); + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, EPS + 1.0, 10.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.sigma = ( 10.0*randu() ) + 1.0 + EPS; + dist.sigma = x[ i % x.length ]; y = dist.kurtosis; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -150,18 +175,25 @@ bench( pkg+':kurtosis', function benchmark( b ) { b.end(); }); -bench( pkg+':mean', function benchmark( b ) { +bench( format( '%s:mean', pkg ), function benchmark( b ) { var sigma; var dist; + var opts; + var x; var y; var i; sigma = 5.54; dist = new Rayleigh( sigma ); + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, EPS, 10.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.sigma = ( 10.0*randu() ) + EPS; + dist.sigma = x[ i % x.length ]; y = dist.mean; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -175,18 +207,25 @@ bench( pkg+':mean', function benchmark( b ) { b.end(); }); -bench( pkg+':median', function benchmark( b ) { +bench( format( '%s:median', pkg ), function benchmark( b ) { var sigma; var dist; + var opts; + var x; var y; var i; sigma = 5.54; dist = new Rayleigh( sigma ); + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, EPS, 10.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.sigma = ( 10.0*randu() ) + EPS; + dist.sigma = x[ i % x.length ]; y = dist.median; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -200,18 +239,25 @@ bench( pkg+':median', function benchmark( b ) { b.end(); }); -bench( pkg+':mode', function benchmark( b ) { +bench( format( '%s:mode', pkg ), function benchmark( b ) { var sigma; var dist; + var opts; + var x; var y; var i; sigma = 5.54; dist = new Rayleigh( sigma ); + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, EPS + 1.0, 10.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.sigma = ( 10.0*randu() ) + 1.0 + EPS; + dist.sigma = x[ i % x.length ]; y = dist.mode; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -225,18 +271,25 @@ bench( pkg+':mode', function benchmark( b ) { b.end(); }); -bench( pkg+':skewness', function benchmark( b ) { +bench( format( '%s:skewness', pkg ), function benchmark( b ) { var sigma; var dist; + var opts; + var x; var y; var i; sigma = 5.54; dist = new Rayleigh( sigma ); + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, EPS + 1.0, 10.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.sigma = ( 10.0*randu() ) + 1.0 + EPS; + dist.sigma = x[ i % x.length ]; y = dist.skewness; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -250,18 +303,25 @@ bench( pkg+':skewness', function benchmark( b ) { b.end(); }); -bench( pkg+':stdev', function benchmark( b ) { +bench( format( '%s:stdev', pkg ), function benchmark( b ) { var sigma; var dist; + var opts; + var x; var y; var i; sigma = 5.54; dist = new Rayleigh( sigma ); + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, EPS + 1.0, 10.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.sigma = ( 10.0*randu() ) + 1.0 + EPS; + dist.sigma = x[ i % x.length ]; y = dist.stdev; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -275,18 +335,25 @@ bench( pkg+':stdev', function benchmark( b ) { b.end(); }); -bench( pkg+':variance', function benchmark( b ) { +bench( format( '%s:variance', pkg ), function benchmark( b ) { var sigma; var dist; + var opts; + var x; var y; var i; sigma = 5.54; dist = new Rayleigh( sigma ); + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, EPS + 1.0, 10.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - dist.sigma = ( 10.0*randu() ) + 1.0 + EPS; + dist.sigma = x[ i % x.length ]; y = dist.variance; if ( isnan( y ) ) { b.fail( 'should not return NaN' ); @@ -300,9 +367,10 @@ bench( pkg+':variance', function benchmark( b ) { b.end(); }); -bench( pkg+':cdf', function benchmark( b ) { +bench( format( '%s:cdf', pkg ), function benchmark( b ) { var sigma; var dist; + var opts; var x; var y; var i; @@ -310,10 +378,14 @@ bench( pkg+':cdf', function benchmark( b ) { sigma = 5.54; dist = new Rayleigh( sigma ); + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, 0.0, 1.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu(); - y = dist.cdf( x ); + y = dist.cdf( x[ i % x.length ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -326,9 +398,10 @@ bench( pkg+':cdf', function benchmark( b ) { b.end(); }); -bench( pkg+':logcdf', function benchmark( b ) { +bench( format( '%s:logcdf', pkg ), function benchmark( b ) { var sigma; var dist; + var opts; var x; var y; var i; @@ -336,10 +409,14 @@ bench( pkg+':logcdf', function benchmark( b ) { sigma = 5.54; dist = new Rayleigh( sigma ); + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, 0.0, 1.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu(); - y = dist.logcdf( x ); + y = dist.logcdf( x[ i % x.length ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -352,9 +429,10 @@ bench( pkg+':logcdf', function benchmark( b ) { b.end(); }); -bench( pkg+':logpdf', function benchmark( b ) { +bench( format( '%s:logpdf', pkg ), function benchmark( b ) { var sigma; var dist; + var opts; var x; var y; var i; @@ -362,10 +440,14 @@ bench( pkg+':logpdf', function benchmark( b ) { sigma = 5.54; dist = new Rayleigh( sigma ); + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, 0.0, 1.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu(); - y = dist.logpdf( x ); + y = dist.logpdf( x[ i % x.length ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -378,9 +460,10 @@ bench( pkg+':logpdf', function benchmark( b ) { b.end(); }); -bench( pkg+':mgf', function benchmark( b ) { +bench( format( '%s:mgf', pkg ), function benchmark( b ) { var sigma; var dist; + var opts; var x; var y; var i; @@ -388,10 +471,14 @@ bench( pkg+':mgf', function benchmark( b ) { sigma = 5.54; dist = new Rayleigh( sigma ); + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, 0.0, 1.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu(); - y = dist.mgf( x ); + y = dist.mgf( x[ i % x.length ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -404,9 +491,10 @@ bench( pkg+':mgf', function benchmark( b ) { b.end(); }); -bench( pkg+':pdf', function benchmark( b ) { +bench( format( '%s:pdf', pkg ), function benchmark( b ) { var sigma; var dist; + var opts; var x; var y; var i; @@ -414,10 +502,14 @@ bench( pkg+':pdf', function benchmark( b ) { sigma = 5.54; dist = new Rayleigh( sigma ); + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, 0.0, 1.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu(); - y = dist.pdf( x ); + y = dist.pdf( x[ i % x.length ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); } @@ -430,9 +522,10 @@ bench( pkg+':pdf', function benchmark( b ) { b.end(); }); -bench( pkg+':quantile', function benchmark( b ) { +bench( format( '%s:quantile', pkg ), function benchmark( b ) { var sigma; var dist; + var opts; var x; var y; var i; @@ -440,10 +533,14 @@ bench( pkg+':quantile', function benchmark( b ) { sigma = 5.54; dist = new Rayleigh( sigma ); + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, 0.0, 1.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = randu(); - y = dist.quantile( x ); + y = dist.quantile( x[ i % x.length ] ); if ( isnan( y ) ) { b.fail( 'should not return NaN' ); }