Skip to content

Commit

Permalink
bench: refactor random number generation in JS benchmarks for `stats/…
Browse files Browse the repository at this point in the history
…base/dists/logistic`

PR-URL: #5139
Closes: #4978

Co-authored-by: Gopi Kishan <gkishan1kyt@gmail.com>
Reviewed-by: Anand Karan <anandkaranubc@users.noreply.github.com>
Reviewed-by: Philipp Burckhardt <pburckhardt@outlook.com>
  • Loading branch information
gkbishnoi07 authored Feb 18, 2025
1 parent 9b455b1 commit 0d255bc
Show file tree
Hide file tree
Showing 20 changed files with 308 additions and 112 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 @@ -31,18 +32,26 @@ var cdf = require( './../lib' );
// MAIN //

bench( pkg, function benchmark( b ) {
var len;
var mu;
var s;
var x;
var y;
var i;

len = 100;
mu = new Float64Array( len );
s = new Float64Array( len );
x = new Float64Array( len );
for ( i = 0; i < len; i++ ) {
x[ i ] = uniform( -100.0, 0.0 );
mu[ i ] = uniform( -50.0, 50.0 );
s[ i ] = uniform( EPS, 20.0);

This comment has been minimized.

Copy link
@kgryte

kgryte Feb 18, 2025

Member

@stdlib-bot should be 20.0 );

}

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( randu()*100.0 ) - 100;
mu = ( randu()*100.0 ) - 50.0;
s = ( randu()*20.0 ) + EPS;
y = cdf( x, mu, s );
y = cdf( x[ i % len ], mu[ i % len ], s[ i % len ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand All @@ -57,6 +66,7 @@ bench( pkg, function benchmark( b ) {

bench( pkg+':factory', function benchmark( b ) {
var mycdf;
var len;
var mu;
var s;
var x;
Expand All @@ -66,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) {
mu = 10.0;
s = 4.0;
mycdf = cdf.factory( mu, s );
len = 100;
x = new Float64Array( len );
for ( i = 0; i < len; i++ ) {
x[ i ] = uniform( 0.0, 50.0 );
}

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( randu()*50.0 );
y = mycdf( x );
y = mycdf( x[ i % len ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand Down
Loading

1 comment on commit 0d255bc

@stdlib-bot
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverage Report

Package Statements Branches Functions Lines
stats/base/dists/logistic/cdf $\color{green}209/209$
$\color{green}+100.00\%$
$\color{green}23/23$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}209/209$
$\color{green}+100.00\%$
stats/base/dists/logistic/ctor $\color{green}488/488$
$\color{green}+100.00\%$
$\color{green}36/36$
$\color{green}+100.00\%$
$\color{green}19/19$
$\color{green}+100.00\%$
$\color{green}488/488$
$\color{green}+100.00\%$
stats/base/dists/logistic/entropy $\color{green}113/113$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}113/113$
$\color{green}+100.00\%$
stats/base/dists/logistic/kurtosis $\color{green}175/175$
$\color{green}+100.00\%$
$\color{green}9/9$
$\color{green}+100.00\%$
$\color{green}2/2$
$\color{green}+100.00\%$
$\color{green}175/175$
$\color{green}+100.00\%$
stats/base/dists/logistic/logcdf $\color{green}288/288$
$\color{green}+100.00\%$
$\color{green}29/29$
$\color{green}+100.00\%$
$\color{green}4/4$
$\color{green}+100.00\%$
$\color{green}288/288$
$\color{green}+100.00\%$
stats/base/dists/logistic/logpdf $\color{green}241/241$
$\color{green}+100.00\%$
$\color{green}27/27$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}241/241$
$\color{green}+100.00\%$
stats/base/dists/logistic/mean $\color{green}175/175$
$\color{green}+100.00\%$
$\color{green}9/9$
$\color{green}+100.00\%$
$\color{green}2/2$
$\color{green}+100.00\%$
$\color{green}175/175$
$\color{green}+100.00\%$
stats/base/dists/logistic/median $\color{green}175/175$
$\color{green}+100.00\%$
$\color{green}9/9$
$\color{green}+100.00\%$
$\color{green}2/2$
$\color{green}+100.00\%$
$\color{green}175/175$
$\color{green}+100.00\%$
stats/base/dists/logistic/mgf $\color{red}228/230$
$\color{green}+99.13\%$
$\color{red}17/18$
$\color{green}+94.44\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{red}228/230$
$\color{green}+99.13\%$
stats/base/dists/logistic/mode $\color{green}175/175$
$\color{green}+100.00\%$
$\color{green}9/9$
$\color{green}+100.00\%$
$\color{green}2/2$
$\color{green}+100.00\%$
$\color{green}175/175$
$\color{green}+100.00\%$
stats/base/dists/logistic/pdf $\color{green}237/237$
$\color{green}+100.00\%$
$\color{green}27/27$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}237/237$
$\color{green}+100.00\%$
stats/base/dists/logistic/quantile $\color{green}218/218$
$\color{green}+100.00\%$
$\color{green}25/25$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}218/218$
$\color{green}+100.00\%$
stats/base/dists/logistic/skewness $\color{green}175/175$
$\color{green}+100.00\%$
$\color{green}9/9$
$\color{green}+100.00\%$
$\color{green}2/2$
$\color{green}+100.00\%$
$\color{green}175/175$
$\color{green}+100.00\%$
stats/base/dists/logistic/stdev $\color{green}180/180$
$\color{green}+100.00\%$
$\color{green}9/9$
$\color{green}+100.00\%$
$\color{green}2/2$
$\color{green}+100.00\%$
$\color{green}180/180$
$\color{green}+100.00\%$
stats/base/dists/logistic/variance $\color{green}176/176$
$\color{green}+100.00\%$
$\color{green}9/9$
$\color{green}+100.00\%$
$\color{green}2/2$
$\color{green}+100.00\%$
$\color{green}176/176$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this push.

Please sign in to comment.