Skip to content

Commit

Permalink
bench: update random value generation
Browse files Browse the repository at this point in the history
PR-URL: #5367
Reviewed-by: Athan Reines <[email protected]>
  • Loading branch information
anandkaranubc authored Feb 22, 2025
1 parent 6e79eff commit 4340425
Show file tree
Hide file tree
Showing 16 changed files with 68 additions and 44 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
// 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 pkg = require( './../package.json' ).name;
var acovercos = require( './../lib' );
Expand All @@ -34,10 +34,11 @@ bench( pkg, function benchmark( b ) {
var y;
var i;

x = uniform( 100, -2.0, 0.0 );

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( -2.0*randu() ) + 0.0;
y = acovercos( x );
y = acovercos( x[ i % x.length ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

var resolve = require( 'path' ).resolve;
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 tryRequire = require( '@stdlib/utils/try-require' );
var pkg = require( './../package.json' ).name;
Expand All @@ -43,10 +43,11 @@ bench( pkg+'::native', opts, function benchmark( b ) {
var y;
var i;

x = uniform( 100, -2.0, 0.0 );

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( -2.0*randu() ) + 0.0;
y = acovercos( x );
y = acovercos( x[ i % x.length ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,16 +89,19 @@ static double rand_double( void ) {
* @return elapsed time in seconds
*/
static double benchmark( void ) {
double x[ 100 ];
double elapsed;
double x;
double y;
double t;
int i;

for ( i = 0; i < 100; i++ ) {
x[ i ] = ( -2.0*rand_double() ) + 0.0;
}

t = tic();
for ( i = 0; i < ITERATIONS; i++ ) {
x = ( -2.0*rand_double() ) + 0.0;
y = asin( 1.0 + x );
y = asin( 1.0 + x[ i%100 ] );
if ( y != y ) {
printf( "should not return NaN\n" );
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,16 +90,19 @@ static double rand_double( void ) {
* @return elapsed time in seconds
*/
static double benchmark( void ) {
double x[ 100 ];
double elapsed;
double x;
double y;
double t;
int i;

for ( i = 0; i < 100; i++ ) {
x[ i ] = ( -2.0*rand_double() );
}

t = tic();
for ( i = 0; i < ITERATIONS; i++ ) {
x = ( -2.0*rand_double() );
y = stdlib_base_acovercos( x );
y = stdlib_base_acovercos( x[ i%100 ] );
if ( y != y ) {
printf( "should not return NaN\n" );
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ tape( 'the function computes the inverse coversed cosine (small negative numbers

tape( 'the function returns `NaN` if provided a `NaN`', function test( t ) {
var v = acovercos( NaN );
t.strictEqual( isnan( v ), true, 'returns NaN' );
t.strictEqual( isnan( v ), true, 'returns expected value' );
t.end();
});

Expand All @@ -101,7 +101,7 @@ tape( 'the function returns `NaN` if provided a value less than `-2`', function
var i;
for ( i = 0; i < 1e4; i++ ) {
v = -(randu()*1.0e6) - (2.0+EPS);
t.strictEqual( isnan( acovercos( v ) ), true, 'returns NaN when provided '+v );
t.strictEqual( isnan( acovercos( v ) ), true, 'returns expected value when provided '+v );
}
t.end();
});
Expand All @@ -111,7 +111,7 @@ tape( 'the function returns `NaN` if provided a value greater than `0`', functio
var i;
for ( i = 0; i < 1e4; i++ ) {
v = (randu()*1.0e6) + 0.0 + EPS;
t.strictEqual( isnan( acovercos( v ) ), true, 'returns NaN when provided '+v );
t.strictEqual( isnan( acovercos( v ) ), true, 'returns expected value when provided '+v );
}
t.end();
});
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ tape( 'the function computes the inverse coversed cosine (small negative numbers

tape( 'the function returns `NaN` if provided a `NaN`', opts, function test( t ) {
var v = acovercos( NaN );
t.strictEqual( isnan( v ), true, 'returns NaN' );
t.strictEqual( isnan( v ), true, 'returns expected value' );
t.end();
});

Expand All @@ -110,7 +110,7 @@ tape( 'the function returns `NaN` if provided a value less than `-2`', opts, fun
var i;
for ( i = 0; i < 1e4; i++ ) {
v = -(randu()*1.0e6) - (2.0+EPS);
t.strictEqual( isnan( acovercos( v ) ), true, 'returns NaN when provided '+v );
t.strictEqual( isnan( acovercos( v ) ), true, 'returns expected value when provided '+v );
}
t.end();
});
Expand All @@ -120,7 +120,7 @@ tape( 'the function returns `NaN` if provided a value greater than `0`', opts, f
var i;
for ( i = 0; i < 1e4; i++ ) {
v = (randu()*1.0e6) + 0.0 + EPS;
t.strictEqual( isnan( acovercos( v ) ), true, 'returns NaN when provided '+v );
t.strictEqual( isnan( acovercos( v ) ), true, 'returns expected value when provided '+v );
}
t.end();
});
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
// MODULES //

var bench = require( '@stdlib/bench' );
var randu = require( '@stdlib/random/array/uniform' );
var uniform = require( '@stdlib/random/array/uniform' );
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
var pkg = require( './../package.json' ).name;
var acovercosf = require( './../lib' );
Expand All @@ -34,7 +34,9 @@ bench( pkg, function benchmark( b ) {
var y;
var i;

x = randu( 100, -2.0, 0.0 );
x = uniform( 100, -2.0, 0.0, {
'dtype': 'float32'
});

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

var resolve = require( 'path' ).resolve;
var bench = require( '@stdlib/bench' );
var randu = require( '@stdlib/random/array/uniform' );
var uniform = require( '@stdlib/random/array/uniform' );
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
var tryRequire = require( '@stdlib/utils/try-require' );
var pkg = require( './../package.json' ).name;
Expand All @@ -43,7 +43,9 @@ bench( pkg+'::native', opts, function benchmark( b ) {
var y;
var i;

x = randu( 100, -2.0, 0.0 );
x = uniform( 100, -2.0, 0.0, {
'dtype': 'float32'
});

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
// 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 pkg = require( './../package.json' ).name;
var acoversin = require( './../lib' );
Expand All @@ -34,10 +34,11 @@ bench( pkg, function benchmark( b ) {
var y;
var i;

x = uniform( 100, 0.0, 2.0 );

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( 2.0*randu() ) - 0.0;
y = acoversin( x );
y = acoversin( x[ i % x.length ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

var resolve = require( 'path' ).resolve;
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 tryRequire = require( '@stdlib/utils/try-require' );
var pkg = require( './../package.json' ).name;
Expand All @@ -43,10 +43,11 @@ bench( pkg+'::native', opts, function benchmark( b ) {
var y;
var i;

x = uniform( 100, 0.0, 2.0 );

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( randu()*2.0 );
y = acoversin( x );
y = acoversin( x[ i % x.length ] );
if ( isnan( y ) ) {
b.fail( 'should not return NaN' );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,16 +89,19 @@ static double rand_double( void ) {
* @return elapsed time in seconds
*/
static double benchmark( void ) {
double x[ 100 ];
double elapsed;
double x;
double y;
double t;
int i;

for ( i = 0; i < 100; i++ ) {
x[ i ] = ( 2.0*rand_double() ) - 0.0;
}

t = tic();
for ( i = 0; i < ITERATIONS; i++ ) {
x = ( 2.0*rand_double() ) - 0.0;
y = asin( 1.0 - x );
y = asin( 1.0 - x[ i%100 ] );
if ( y != y ) {
printf( "should not return NaN\n" );
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,16 +90,19 @@ static double rand_double( void ) {
* @return elapsed time in seconds
*/
static double benchmark( void ) {
double x[ 100 ];
double elapsed;
double x;
double y;
double t;
int i;

for ( i = 0; i < 100; i++ ) {
x[ i ] = ( 2.0*rand_double() );
}

t = tic();
for ( i = 0; i < ITERATIONS; i++ ) {
x = ( 2.0*rand_double() );
y = stdlib_base_acoversin( x );
y = stdlib_base_acoversin( x[ i%100 ] );
if ( y != y ) {
printf( "should not return NaN\n" );
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ tape( 'the function computes the inverse coversed sine (small positive numbers)'

tape( 'the function returns `NaN` if provided `NaN`', function test( t ) {
var v = acoversin( NaN );
t.strictEqual( isnan( v ), true, 'returns NaN' );
t.strictEqual( isnan( v ), true, 'returns expected value' );
t.end();
});

Expand All @@ -101,7 +101,7 @@ tape( 'the function returns `NaN` if provided a value less than `0`', function t
var i;
for ( i = 0; i < 1e4; i++ ) {
v = -(randu()*1.0e6) - (0.0+EPS);
t.strictEqual( isnan( acoversin( v ) ), true, 'returns NaN when provided '+v );
t.strictEqual( isnan( acoversin( v ) ), true, 'returns expected value when provided '+v );
}
t.end();
});
Expand All @@ -111,7 +111,7 @@ tape( 'the function returns `NaN` if provided a value greater than `2`', functio
var i;
for ( i = 0; i < 1e4; i++ ) {
v = (randu()*1.0e6) + 2.0 + EPS;
t.strictEqual( isnan( acoversin( v ) ), true, 'returns NaN when provided '+v );
t.strictEqual( isnan( acoversin( v ) ), true, 'returns expected value when provided '+v );
}
t.end();
});
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ tape( 'the function computes the inverse coversed sine (small positive numbers)'

tape( 'the function returns `NaN` if provided `NaN`', opts, function test( t ) {
var v = acoversin( NaN );
t.strictEqual( isnan( v ), true, 'returns NaN' );
t.strictEqual( isnan( v ), true, 'returns expected value' );
t.end();
});

Expand All @@ -110,7 +110,7 @@ tape( 'the function returns `NaN` if provided a value less than `0`', opts, func
var i;
for ( i = 0; i < 1e4; i++ ) {
v = -(randu()*1.0e6) - (0.0+EPS);
t.strictEqual( isnan( acoversin( v ) ), true, 'returns NaN when provided '+v );
t.strictEqual( isnan( acoversin( v ) ), true, 'returns expected value when provided '+v );
}
t.end();
});
Expand All @@ -120,7 +120,7 @@ tape( 'the function returns `NaN` if provided a value greater than `2`', opts, f
var i;
for ( i = 0; i < 1e4; i++ ) {
v = (randu()*1.0e6) + 2.0 + EPS;
t.strictEqual( isnan( acoversin( v ) ), true, 'returns NaN when provided '+v );
t.strictEqual( isnan( acoversin( v ) ), true, 'returns expected value when provided '+v );
}
t.end();
});
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
// MODULES //

var bench = require( '@stdlib/bench' );
var randu = require( '@stdlib/random/array/uniform' );
var uniform = require( '@stdlib/random/array/uniform' );
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
var pkg = require( './../package.json' ).name;
var acoversinf = require( './../lib' );
Expand All @@ -34,7 +34,9 @@ bench( pkg, function benchmark( b ) {
var y;
var i;

x = randu( 100, 0.0, 2.0 );
x = uniform( 100, 0.0, 2.0, {
'dtype': 'float32'
});

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

var resolve = require( 'path' ).resolve;
var bench = require( '@stdlib/bench' );
var randu = require( '@stdlib/random/array/uniform' );
var uniform = require( '@stdlib/random/array/uniform' );
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
var tryRequire = require( '@stdlib/utils/try-require' );
var pkg = require( './../package.json' ).name;
Expand All @@ -43,7 +43,9 @@ bench( pkg+'::native', opts, function benchmark( b ) {
var y;
var i;

x = randu( 100, 0.0, 2.0 );
x = uniform( 100, 0.0, 2.0, {
'dtype': 'float32'
});

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
Expand Down

1 comment on commit 4340425

@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
math/base/special/acovercos $\color{green}164/164$
$\color{green}+100.00\%$
$\color{green}5/5$
$\color{green}+100.00\%$
$\color{green}2/2$
$\color{green}+100.00\%$
$\color{green}164/164$
$\color{green}+100.00\%$
math/base/special/acovercosf $\color{green}165/165$
$\color{green}+100.00\%$
$\color{green}5/5$
$\color{green}+100.00\%$
$\color{green}2/2$
$\color{green}+100.00\%$
$\color{green}165/165$
$\color{green}+100.00\%$
math/base/special/acoversin $\color{green}168/168$
$\color{green}+100.00\%$
$\color{green}5/5$
$\color{green}+100.00\%$
$\color{green}2/2$
$\color{green}+100.00\%$
$\color{green}168/168$
$\color{green}+100.00\%$
math/base/special/acoversinf $\color{green}169/169$
$\color{green}+100.00\%$
$\color{green}5/5$
$\color{green}+100.00\%$
$\color{green}2/2$
$\color{green}+100.00\%$
$\color{green}169/169$
$\color{green}+100.00\%$

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

Please sign in to comment.