Skip to content

bench: update random value generation #6679

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;
var pkg = require( './../package.json' ).name;
var isfinitef = require( './../lib' );
Expand All @@ -30,14 +30,19 @@ var isfinitef = require( './../lib' );
// MAIN //

bench( pkg, function benchmark( b ) {
var opts;
var x;
var y;
var i;

opts = {
'dtype': 'float32'
};
x = uniform( 100, -5.0e6, 5.0e6, opts );

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( randu()*1.0e7 ) - 5.0e6;
y = isfinitef( x );
y = isfinitef( x[ i%x.length ] );
if ( typeof y !== 'boolean' ) {
b.fail( 'should return a boolean' );
}
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 isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;
var tryRequire = require( '@stdlib/utils/try-require' );
var pkg = require( './../package.json' ).name;
Expand All @@ -39,14 +39,19 @@ var opts = {
// MAIN //

bench( pkg+'::native', opts, function benchmark( b ) {
var opts;
var x;
var y;
var i;

opts = {
'dtype': 'float32'
};
x = uniform( 100, -5.0e6, 5.0e6, opts );

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( randu()*1.0e7 ) - 5.0e6;
y = isfinitef( x );
y = isfinitef( x[ i%x.length ] );
if ( typeof y !== 'boolean' ) {
b.fail( 'should return a boolean' );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,15 +90,18 @@ static float rand_float( void ) {
*/
static double benchmark( void ) {
double elapsed;
float x[ 100 ];
double t;
float x;
int y;
int i;

for ( i = 0; i < 100; i++ ) {
x[ i ] = ( 1.0e7f*rand_float() ) - 5.0e6f;
}

t = tic();
for ( i = 0; i < ITERATIONS; i++ ) {
x = ( 1.0e7f*rand_float() ) - 5.0e6f;
y = isfinite( x );
y = isfinite( x[ i%100 ] );
if ( y != 0 && y != 1 ) {
printf( "should return 0 or 1\n" );
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,15 +92,18 @@ static float rand_float( void ) {
*/
static double benchmark( void ) {
double elapsed;
float x[ 100 ];
double t;
float x;
bool b;
int i;

for ( i = 0; i < 100; i++ ) {
x[ i ] = ( rand_float()*1.0e7f ) - 5.0e6f;
}

t = tic();
for ( i = 0; i < ITERATIONS; i++ ) {
x = (rand_float()*1.0e7f) - 5.0e6f;
b = stdlib_base_is_finitef( x );
b = stdlib_base_is_finitef( x[ i%100 ] );
if ( b != true && b != false ) {
printf( "should return either true or false\n" );
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,26 +48,26 @@ tape( 'the function returns `true` if provided a finite number', function test(
];

for ( i = 0; i < values.length; i++ ) {
t.equal( isfinitef( values[i] ), true, 'returns true when provided '+values[i] );
t.equal( isfinitef( values[i] ), true, 'returns expected value when provided '+values[i] );
}
for ( i = -100; i < 101; i++ ) {
t.equal( isfinitef( i ), true, 'returns true when provided '+i );
t.equal( isfinitef( i ), true, 'returns expected value when provided '+i );
}
t.end();
});

tape( 'the function returns `false` if provided `+infinity`', function test( t ) {
t.equal( isfinitef( PINF ), false, 'returns false' );
t.equal( isfinitef( PINF ), false, 'returns expected value' );
t.end();
});

tape( 'the function returns `false` if provided `-infinity`', function test( t ) {
t.equal( isfinitef( NINF ), false, 'returns false' );
t.equal( isfinitef( NINF ), false, 'returns expected value' );
t.end();
});

tape( 'the function returns `false` if provided `NaN`', function test( t ) {
t.equal( isfinitef( NaN ), false, 'returns false' );
t.equal( isfinitef( 0/0 ), false, 'returns false' );
t.equal( isfinitef( NaN ), false, 'returns expected value' );
t.equal( isfinitef( 0/0 ), false, 'returns expected value' );
t.end();
});
Original file line number Diff line number Diff line change
Expand Up @@ -57,20 +57,20 @@ tape( 'the function returns `true` if provided a finite number', opts, function
];

for ( i = 0; i < values.length; i++ ) {
t.equal( isfinitef( values[i] ), true, 'returns true when provided '+values[i] );
t.equal( isfinitef( values[i] ), true, 'returns expected value when provided '+values[i] );
}
for ( i = -100; i < 101; i++ ) {
t.equal( isfinitef( i ), true, 'returns true when provided '+i );
t.equal( isfinitef( i ), true, 'returns expected value when provided '+i );
}
t.end();
});

tape( 'the function returns `false` if provided `+infinity`', opts, function test( t ) {
t.equal( isfinitef( PINF ), false, 'returns false' );
t.equal( isfinitef( PINF ), false, 'returns expected value' );
t.end();
});

tape( 'the function returns `false` if provided `-infinity`', opts, function test( t ) {
t.equal( isfinitef( NINF ), false, 'returns false' );
t.equal( isfinitef( NINF ), false, 'returns expected value' );
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/base/randu' );
var uniform = require( '@stdlib/random/array/uniform' );
var isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;
var pkg = require( './../package.json' ).name;
var isInfinite = require( './../lib' );
Expand All @@ -30,14 +30,19 @@ var isInfinite = require( './../lib' );
// MAIN //

bench( pkg, function benchmark( b ) {
var opts;
var x;
var y;
var i;

opts = {
'dtype': 'float64'
};
x = uniform( 100, -5.0e6, 5.0e6, opts );

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( randu()*1.0e7 ) - 5.0e6;
y = isInfinite( x );
y = isInfinite( x[ i%x.length ] );
if ( typeof y !== 'boolean' ) {
b.fail( 'should return a boolean' );
}
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 isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;
var tryRequire = require( '@stdlib/utils/try-require' );
var pkg = require( './../package.json' ).name;
Expand All @@ -39,14 +39,19 @@ var opts = {
// MAIN //

bench( pkg+'::native', opts, function benchmark( b ) {
var opts;
var x;
var y;
var i;

opts = {
'dtype': 'float64'
};
x = uniform( 100, -5.0e6, 5.0e6, opts );

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( randu()*1.0e7 ) - 5.0e6;
y = isInfinite( x );
y = isInfinite( x[ i%x.length ] );
if ( typeof y !== 'boolean' ) {
b.fail( 'should return a boolean' );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,15 +90,18 @@ static double rand_double( void ) {
*/
static double benchmark( void ) {
double elapsed;
double x;
double x[ 100 ];
double t;
int y;
int i;

for ( i = 0; i < 100; i++ ) {
x[ i ] = ( 1.0e7*rand_double() ) - 5.0e6;
}

t = tic();
for ( i = 0; i < ITERATIONS; i++ ) {
x = ( 1.0e7*rand_double() ) - 5.0e6;
y = isinf( x );
y = isinf( x[ i%100 ] );
if ( y != 0 && y != 1 ) {
printf( "should return 0 or 1\n" );
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,15 +92,18 @@ static double rand_double( void ) {
*/
static double benchmark( void ) {
double elapsed;
double x;
double x[ 100 ];
double t;
bool b;
int i;

for ( i = 0; i < 100; i++ ) {
x[ i ] = (rand_double()*1.0e7) - 5.0e6;
}

t = tic();
for ( i = 0; i < ITERATIONS; i++ ) {
x = (rand_double()*1.0e7) - 5.0e6;
b = stdlib_base_is_infinite( x );
b = stdlib_base_is_infinite( x[ i%100 ] );
if ( b != true && b != false ) {
printf( "should return either true or false\n" );
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,12 @@ tape( 'main export is a function', function test( t ) {
});

tape( 'the function returns `true` if provided `+infinity`', function test( t ) {
t.equal( isInfinite( PINF ), true, 'returns true' );
t.equal( isInfinite( PINF ), true, 'returns expected value' );
t.end();
});

tape( 'the function returns `true` if provided `-infinity`', function test( t ) {
t.equal( isInfinite( NINF ), true, 'returns true' );
t.equal( isInfinite( NINF ), true, 'returns expected value' );
t.end();
});

Expand All @@ -63,7 +63,7 @@ tape( 'the function returns `false` if not provided an infinite number', functio
];

for ( i = 0; i < values.length; i++ ) {
t.equal( isInfinite( values[i] ), false, 'returns false' );
t.equal( isInfinite( values[i] ), false, 'returns expected value' );
}
t.end();
});
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,12 @@ tape( 'main export is a function', opts, function test( t ) {
});

tape( 'the function returns `true` if provided `+infinity`', opts, function test( t ) {
t.equal( isInfinite( PINF ), true, 'returns true' );
t.equal( isInfinite( PINF ), true, 'returns expected value' );
t.end();
});

tape( 'the function returns `true` if provided `-infinity`', opts, function test( t ) {
t.equal( isInfinite( NINF ), true, 'returns true' );
t.equal( isInfinite( NINF ), true, 'returns expected value' );
t.end();
});

Expand All @@ -72,7 +72,7 @@ tape( 'the function returns `false` if not provided an infinite number', opts, f
];

for ( i = 0; i < values.length; i++ ) {
t.equal( isInfinite( values[i] ), false, 'returns false' );
t.equal( isInfinite( values[i] ), false, 'returns expected value' );
}
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/base/randu' );
var uniform = require( '@stdlib/random/array/uniform' );
var isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;
var pkg = require( './../package.json' ).name;
var isInfinitef = require( './../lib' );
Expand All @@ -30,14 +30,19 @@ var isInfinitef = require( './../lib' );
// MAIN //

bench( pkg, function benchmark( b ) {
var opts;
var x;
var y;
var i;

opts = {
'dtype': 'float32'
};
x = uniform( 100, -5.0e6, 5.0e6, opts );

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( randu()*1.0e7 ) - 5.0e6;
y = isInfinitef( x );
y = isInfinitef( x[ i%x.length ] );
if ( typeof y !== 'boolean' ) {
b.fail( 'should return a boolean' );
}
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 isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;
var tryRequire = require( '@stdlib/utils/try-require' );
var pkg = require( './../package.json' ).name;
Expand All @@ -43,10 +43,14 @@ bench( pkg+'::native', opts, function benchmark( b ) {
var y;
var i;

opts = {
'dtype': 'float32'
};
x = uniform( 100, -5.0e6, 5.0e6, opts );

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
x = ( randu()*1.0e7 ) - 5.0e6;
y = isInfinitef( x );
y = isInfinitef( x[ i%x.length ] );
if ( typeof y !== 'boolean' ) {
b.fail( 'should return a boolean' );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,15 +90,18 @@ static float rand_float( void ) {
*/
static double benchmark( void ) {
double elapsed;
float x[ 100 ];
double t;
float x;
int y;
int i;

for ( i = 0; i < 100; i++ ) {
x[ i ] = ( 1.0e7f*rand_float() ) - 5.0e6f;
}

t = tic();
for ( i = 0; i < ITERATIONS; i++ ) {
x = ( 1.0e7f*rand_float() ) - 5.0e6f;
y = isinf( x );
y = isinf( x[ i%100 ] );
if ( y != 0 && y != 1 ) {
printf( "should return 0 or 1\n" );
break;
Expand Down
Loading