Skip to content

Commit

Permalink
feat: refactor random number generation stats/base/dists/weibull
Browse files Browse the repository at this point in the history
  • Loading branch information
ShabiShett07 committed Feb 1, 2025
1 parent 8785e54 commit c9d5ce3
Show file tree
Hide file tree
Showing 14 changed files with 168 additions and 74 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -32,17 +33,22 @@ var cdf = require( './../lib' );

bench( pkg, function benchmark( b ) {
var lambda;
var len;
var k;
var x;
var y;
var i;

len = 100;
x = new Float64Array( len );
lambda = new Float64Array( len );
k = new Float64Array( len );
b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( randu()*100.0 ) + EPS;
lambda = ( randu()*100.0 ) + EPS;
k = ( randu()*100.0 ) + EPS;
y = cdf( x, k, lambda );
for ( i = 0; i < len; i++ ) {
x[ i ] = uniform( EPS, 100 );
lambda[ i ] = uniform( EPS, 100 );
k[ i ] = uniform( EPS, 100 );
y = cdf( x[ i%len ], k[ i%len ], lambda[ i%len ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand All @@ -58,6 +64,7 @@ bench( pkg, function benchmark( b ) {
bench( pkg+':factory', function benchmark( b ) {
var lambda;
var mycdf;
var len;
var k;
var x;
var y;
Expand All @@ -66,11 +73,13 @@ bench( pkg+':factory', function benchmark( b ) {
lambda = 3.14;
k = 2.25;
mycdf = cdf.factory( k, lambda );
len = 100;

x = new Float64Array( len );
b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( randu()*100.0 ) + EPS;
y = mycdf( x );
x[ i ] = uniform( EPS, 100.0 );
y = mycdf( x[ i%len ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -32,15 +33,19 @@ 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 );
b.tic();
for ( i = 0; i < b.iterations; i++ ) {
k = ( randu()*10.0 ) + EPS;
lambda = ( randu()*10.0 ) + EPS;
y = entropy( k, lambda );
k[ i ] = uniform( EPS, 10 );
lambda[ i ] = uniform( EPS, 10 );
y = entropy( k[ i%len ], lambda[ i%len ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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' );
Expand All @@ -31,15 +32,19 @@ 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 );
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 );
k[ i ] = uniform( 1.0, 10.0);
lambda[ i ] = uniform( 1.0, 10.0);
y = kurtosis( k[ i%len ], lambda[ i%len ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -32,17 +33,22 @@ var logcdf = require( './../lib' );

bench( pkg, function benchmark( b ) {
var lambda;
var len;
var k;
var x;
var y;
var i;

len = 100;
x = new Float64Array( len );
lambda = new Float64Array( len );
k = new Float64Array( len );
b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( randu()*100.0 ) + EPS;
lambda = ( randu()*100.0 ) + EPS;
k = ( randu()*100.0 ) + EPS;
y = logcdf( x, k, lambda );
x[ i ] = uniform( EPS, 100.0);
lambda[ i ] = uniform( EPS, 100.0);
k[ i ] = uniform( EPS, 100.0);
y = logcdf( x[ i%len ], k[ i%len ], lambda[ i%len ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand All @@ -58,6 +64,7 @@ bench( pkg, function benchmark( b ) {
bench( pkg+':factory', function benchmark( b ) {
var mylogcdf;
var lambda;
var len;
var k;
var x;
var y;
Expand All @@ -66,11 +73,13 @@ bench( pkg+':factory', function benchmark( b ) {
lambda = 3.14;
k = 2.25;
mylogcdf = logcdf.factory( k, lambda );
len = 100;
x = new Float64Array( len );

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( randu()*100.0 ) + EPS;
y = mylogcdf( x );
x[ i ] = uniform( EPS, 100.0 );
y = mylogcdf( x[ i%len ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -32,17 +33,22 @@ var logpdf = require( './../lib' );

bench( pkg, function benchmark( b ) {
var lambda;
var len;
var k;
var x;
var y;
var i;

len = 100;
x = new Float64Array( len );
lambda = new Float64Array( len );
k = new Float64Array( len );
b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( randu()*100.0 ) + EPS;
lambda = ( randu()*100.0 ) + EPS;
k = ( randu()*100.0 ) + EPS;
y = logpdf( x, k, lambda );
x[ i ] = uniform( EPS, 100.0 );
lambda[ i ] = uniform( EPS, 100.0 );
k[ i ] = uniform( EPS, 100.0 );
y = logpdf( x[ i%len ], k[ i%len ], lambda[ i%len ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand All @@ -58,6 +64,7 @@ bench( pkg, function benchmark( b ) {
bench( pkg+':factory', function benchmark( b ) {
var mylogpdf;
var lambda;
var len;
var k;
var x;
var y;
Expand All @@ -66,11 +73,13 @@ bench( pkg+':factory', function benchmark( b ) {
lambda = 3.14;
k = 2.25;
mylogpdf = logpdf.factory( k, lambda );
len = 100;
x = new Float64Array( len );

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( randu()*100.0 ) + EPS;
y = mylogpdf( x );
x[ i ] = uniform( EPS, 100.0 );
y = mylogpdf( x[ i%len ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -32,15 +33,19 @@ var mean = require( './../lib' );

bench( pkg, function benchmark( b ) {
var lambda;
var len;
var k;
var y;
var i;

len = 100;
k = new Float64Array( len );
lambda = new Float64Array( len );
b.tic();
for ( i = 0; i < b.iterations; i++ ) {
k = ( randu()*10.0 ) + EPS;
lambda = ( randu()*10.0 ) + EPS;
y = mean( k, lambda );
k[ i ] = uniform( EPS, 10.0 );
lambda[ i ] = uniform( EPS, 10.0 );
y = mean( k[ i%len ], lambda[ i%len ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -32,15 +33,19 @@ var median = require( './../lib' );

bench( pkg, function benchmark( b ) {
var lambda;
var len;
var k;
var y;
var i;

len = 100;
k = new Float64Array( len );
lambda = new Float64Array( len );
b.tic();
for ( i = 0; i < b.iterations; i++ ) {
k = ( randu()*10.0 ) + EPS;
lambda = ( randu()*10.0 ) + EPS;
y = median( k, lambda );
k[ i ] = uniform( EPS, 10.0 );
lambda[ i ] = uniform( EPS, 10.0 );
y = median( k[ i%len ], lambda[ i%len ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -32,17 +33,22 @@ 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 );
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 );
t[ i ] = uniform( EPS, 2.0 );
lambda[ i ] = uniform( EPS, 2.0 );
k[ i ] = uniform(1.0, 2.0);
y = mgf( t[ i%len ], k[ i%len ], lambda[ i%len ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand All @@ -58,6 +64,7 @@ bench( pkg, function benchmark( b ) {
bench( pkg+':factory', function benchmark( b ) {
var lambda;
var mymgf;
var len;
var k;
var t;
var y;
Expand All @@ -66,10 +73,12 @@ bench( pkg+':factory', function benchmark( b ) {
lambda = 3.14;
k = 2.25;
mymgf = mgf.factory( k, lambda );
len = 100;
t = new Float64Array( len );

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
t = ( randu()*10.0 ) + EPS;
t[ i ] = uniform( );
y = mymgf( t );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
Expand Down
Loading

0 comments on commit c9d5ce3

Please sign in to comment.