Skip to content

Commit

Permalink
feat : Refactor random number generation in JS benchmarks
Browse files Browse the repository at this point in the history
---
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
---
  • Loading branch information
yuvi-mittal committed Feb 2, 2025
1 parent e85fab1 commit 1ead8c3
Show file tree
Hide file tree
Showing 12 changed files with 295 additions and 96 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@
// MODULES //

var bench = require( '@stdlib/bench' );
var ceil = require( '@stdlib/math/base/special/ceil' );
var randu = require( '@stdlib/random/base/randu' );
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
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;
Expand All @@ -32,18 +33,26 @@ var cdf = require( './../lib' );
// MAIN //

bench( pkg, function benchmark( b ) {
var len;
var r;
var p;
var x;
var y;
var i;

len = 100;
x = new Float64Array( len );
r = new Float64Array( len );
p = new Float64Array( len );
for ( i = 0; i < len; i++ ) {
x[ i ] = uniform( 0, 100.0 );
r[ i ] = discreteUniform( 1, 100 );
p[ i ] = uniform( EPS, 1 );
}

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = randu()*100.0;
r = ceil( randu()*100.0 );
p = ( randu()*1.0 ) + EPS;
y = cdf( x, r, p );
y = cdf( x[ i % len ], r[ i % len ], p[ i % len ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand All @@ -58,6 +67,7 @@ bench( pkg, function benchmark( b ) {

bench( pkg+':factory', function benchmark( b ) {
var mycdf;
var len;
var r;
var p;
var x;
Expand All @@ -67,11 +77,15 @@ bench( pkg+':factory', function benchmark( b ) {
r = 80;
p = 0.4;
mycdf = cdf.factory( r, p );
len = 100;
x = new Float64Array( len );
for ( i = 0; i < len; i++ ) {
x[ i ] = uniform( 0, 100.0 );
}

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

0 comments on commit 1ead8c3

Please sign in to comment.