Skip to content

Commit 4d0f11a

Browse files
authored
bench: update random value generation
PR-URL: #6692 Reviewed-by: Philipp Burckhardt <[email protected]> Signed-off-by: Harsh <[email protected]>
1 parent 6fe4a0d commit 4d0f11a

File tree

10 files changed

+64
-42
lines changed

10 files changed

+64
-42
lines changed

lib/node_modules/@stdlib/math/base/assert/is-safe-integer/benchmark/benchmark.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
25-
var round = require( '@stdlib/math/base/special/round' );
24+
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
2625
var isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;
2726
var pkg = require( './../package.json' ).name;
2827
var isSafeInteger = require( './../lib' );
@@ -31,14 +30,19 @@ var isSafeInteger = require( './../lib' );
3130
// MAIN //
3231

3332
bench( pkg, function benchmark( b ) {
33+
var opts;
3434
var x;
3535
var y;
3636
var i;
3737

38+
opts = {
39+
'dtype': 'float64'
40+
};
41+
x = discreteUniform( 100, -5.0e6, 5.0e6, opts );
42+
3843
b.tic();
3944
for ( i = 0; i < b.iterations; i++ ) {
40-
x = round( (randu()*1.0e7) - 5.0e6 );
41-
y = isSafeInteger( x );
45+
y = isSafeInteger( x[ i%x.length ] );
4246
if ( typeof y !== 'boolean' ) {
4347
b.fail( 'should return a boolean' );
4448
}

lib/node_modules/@stdlib/math/base/assert/is-safe-integer/benchmark/benchmark.native.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
25-
var randu = require( '@stdlib/random/base/randu' );
26-
var round = require( '@stdlib/math/base/special/round' );
25+
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
2726
var isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;
2827
var tryRequire = require( '@stdlib/utils/try-require' );
2928
var pkg = require( './../package.json' ).name;
@@ -40,14 +39,19 @@ var opts = {
4039
// MAIN //
4140

4241
bench( pkg+'::native', opts, function benchmark( b ) {
42+
var opts;
4343
var x;
4444
var y;
4545
var i;
4646

47+
opts = {
48+
'dtype': 'float64'
49+
};
50+
x = discreteUniform( 100, -5.0e6, 5.0e6, opts );
51+
4752
b.tic();
4853
for ( i = 0; i < b.iterations; i++ ) {
49-
x = round( (randu()*1.0e7) - 5.0e6 );
50-
y = isSafeInteger( x );
54+
y = isSafeInteger( x[ i%x.length ] );
5155
if ( typeof y !== 'boolean' ) {
5256
b.fail( 'should return a boolean' );
5357
}

lib/node_modules/@stdlib/math/base/assert/is-safe-integer/benchmark/c/native/benchmark.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,15 +92,18 @@ static double rand_double( void ) {
9292
*/
9393
static double benchmark( void ) {
9494
double elapsed;
95-
double x;
95+
double x[ 100 ];
9696
double t;
9797
bool b;
9898
int i;
9999

100+
for ( i = 0; i < 100; i++ ) {
101+
x[ i ] = ( rand_double() * 1.0e7 ) - 5.0e6;
102+
}
103+
100104
t = tic();
101105
for ( i = 0; i < ITERATIONS; i++ ) {
102-
x = ( rand_double() * 1.0e7 ) - 5.0e6;
103-
b = stdlib_base_is_safe_integer( x );
106+
b = stdlib_base_is_safe_integer( x[ i%100 ] );
104107
if ( b != true && b != false ) {
105108
printf( "should return either true or false\n" );
106109
break;

lib/node_modules/@stdlib/math/base/assert/is-safe-integer/test/test.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ tape( 'main export is a function', function test( t ) {
4141
tape( 'the function returns `true` if provided a safe integer', function test( t ) {
4242
var i;
4343
for ( i = -50; i < 51; i++ ) {
44-
t.equal( isSafeInteger( i ), true, 'returns true when provided '+i );
44+
t.equal( isSafeInteger( i ), true, 'returns expected value when provided '+i );
4545
}
4646
t.end();
4747
});
@@ -51,7 +51,7 @@ tape( 'the function returns `false` if provided an integer greater than the max
5151
var i;
5252
for ( i = 1; i < 100; i++ ) {
5353
x = MAX_SAFE_INTEGER + 1 + i;
54-
t.equal( isSafeInteger( x ), false, 'returns false when provided '+x );
54+
t.equal( isSafeInteger( x ), false, 'returns expected value when provided '+x );
5555
}
5656
t.end();
5757
});
@@ -61,7 +61,7 @@ tape( 'the function returns `false` if provided an integer less than the min saf
6161
var i;
6262
for ( i = 0; i < 100; i++ ) {
6363
x = MIN_SAFE_INTEGER - 1 - i;
64-
t.equal( isSafeInteger( x ), false, 'returns false when provided '+x );
64+
t.equal( isSafeInteger( x ), false, 'returns expected value when provided '+x );
6565
}
6666
t.end();
6767
});
@@ -72,33 +72,33 @@ tape( 'the function returns `false` if not provided an integer', function test(
7272
for ( i = 0; i < 100; i++ ) {
7373
v = (randu()*100.0) - 50.0;
7474
if ( trunc(v) !== v ) {
75-
t.equal( isSafeInteger( v ), false, 'returns false when provided '+v );
75+
t.equal( isSafeInteger( v ), false, 'returns expected value when provided '+v );
7676
}
7777
}
7878
t.end();
7979
});
8080

8181
tape( 'the function returns `true` if provided maximum safe integer', function test( t ) {
82-
t.equal( isSafeInteger( MAX_SAFE_INTEGER ), true, 'returns true' );
82+
t.equal( isSafeInteger( MAX_SAFE_INTEGER ), true, 'returns expected value' );
8383
t.end();
8484
});
8585

8686
tape( 'the function returns `true` if provided minimum safe integer', function test( t ) {
87-
t.equal( isSafeInteger( MIN_SAFE_INTEGER ), true, 'returns true' );
87+
t.equal( isSafeInteger( MIN_SAFE_INTEGER ), true, 'returns expected value' );
8888
t.end();
8989
});
9090

9191
tape( 'the function returns `false` if provided `NaN`', function test( t ) {
92-
t.equal( isSafeInteger( NaN ), false, 'returns false' );
92+
t.equal( isSafeInteger( NaN ), false, 'returns expected value' );
9393
t.end();
9494
});
9595

9696
tape( 'the function returns `false` if provided `+infinity`', function test( t ) {
97-
t.equal( isSafeInteger( PINF ), false, 'returns false' );
97+
t.equal( isSafeInteger( PINF ), false, 'returns expected value' );
9898
t.end();
9999
});
100100

101101
tape( 'the function returns `false` if provided `-infinity`', function test( t ) {
102-
t.equal( isSafeInteger( NINF ), false, 'returns false' );
102+
t.equal( isSafeInteger( NINF ), false, 'returns expected value' );
103103
t.end();
104104
});

lib/node_modules/@stdlib/math/base/assert/is-safe-integer/test/test.native.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ tape( 'main export is a function', opts, function test( t ) {
5050
tape( 'the function returns `true` if provided a safe integer', opts, function test( t ) {
5151
var i;
5252
for ( i = -50; i < 51; i++ ) {
53-
t.equal( isSafeInteger( i ), true, 'returns true when provided '+i );
53+
t.equal( isSafeInteger( i ), true, 'returns expected value when provided '+i );
5454
}
5555
t.end();
5656
});
@@ -60,7 +60,7 @@ tape( 'the function returns `false` if provided an integer greater than the max
6060
var i;
6161
for ( i = 1; i < 100; i++ ) {
6262
x = MAX_SAFE_INTEGER + 1 + i;
63-
t.equal( isSafeInteger( x ), false, 'returns false when provided '+x );
63+
t.equal( isSafeInteger( x ), false, 'returns expected value when provided '+x );
6464
}
6565
t.end();
6666
});
@@ -70,7 +70,7 @@ tape( 'the function returns `false` if provided an integer less than the min saf
7070
var i;
7171
for ( i = 0; i < 100; i++ ) {
7272
x = MIN_SAFE_INTEGER - 1 - i;
73-
t.equal( isSafeInteger( x ), false, 'returns false when provided '+x );
73+
t.equal( isSafeInteger( x ), false, 'returns expected value when provided '+x );
7474
}
7575
t.end();
7676
});
@@ -81,33 +81,33 @@ tape( 'the function returns `false` if not provided an integer', opts, function
8181
for ( i = 0; i < 100; i++ ) {
8282
v = (randu()*100.0) - 50.0;
8383
if ( trunc(v) !== v ) {
84-
t.equal( isSafeInteger( v ), false, 'returns false when provided '+v );
84+
t.equal( isSafeInteger( v ), false, 'returns expected value when provided '+v );
8585
}
8686
}
8787
t.end();
8888
});
8989

9090
tape( 'the function returns `true` if provided maximum safe integer', opts, function test( t ) {
91-
t.equal( isSafeInteger( MAX_SAFE_INTEGER ), true, 'returns true' );
91+
t.equal( isSafeInteger( MAX_SAFE_INTEGER ), true, 'returns expected value' );
9292
t.end();
9393
});
9494

9595
tape( 'the function returns `true` if provided minimum safe integer', opts, function test( t ) {
96-
t.equal( isSafeInteger( MIN_SAFE_INTEGER ), true, 'returns true' );
96+
t.equal( isSafeInteger( MIN_SAFE_INTEGER ), true, 'returns expected value' );
9797
t.end();
9898
});
9999

100100
tape( 'the function returns `false` if provided `NaN`', opts, function test( t ) {
101-
t.equal( isSafeInteger( NaN ), false, 'returns false' );
101+
t.equal( isSafeInteger( NaN ), false, 'returns expected value' );
102102
t.end();
103103
});
104104

105105
tape( 'the function returns `false` if provided `+infinity`', opts, function test( t ) {
106-
t.equal( isSafeInteger( PINF ), false, 'returns false' );
106+
t.equal( isSafeInteger( PINF ), false, 'returns expected value' );
107107
t.end();
108108
});
109109

110110
tape( 'the function returns `false` if provided `-infinity`', opts, function test( t ) {
111-
t.equal( isSafeInteger( NINF ), false, 'returns false' );
111+
t.equal( isSafeInteger( NINF ), false, 'returns expected value' );
112112
t.end();
113113
});

lib/node_modules/@stdlib/math/base/assert/uint32-is-pow2/benchmark/benchmark.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
25-
var round = require( '@stdlib/math/base/special/round' );
24+
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
2625
var float64ToUint32 = require( '@stdlib/number/float64/base/to-uint32' );
2726
var isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;
2827
var pkg = require( './../package.json' ).name;
@@ -32,14 +31,19 @@ var isPow2 = require( './../lib' );
3231
// MAIN //
3332

3433
bench( pkg, function benchmark( b ) {
34+
var opts;
3535
var x;
3636
var y;
3737
var i;
3838

39+
opts = {
40+
'dtype': 'uint32'
41+
};
42+
x = discreteUniform( 100, 0, 1.0e7, opts );
43+
3944
b.tic();
4045
for ( i = 0; i < b.iterations; i++ ) {
41-
x = round( randu()*1.0e7 );
42-
y = isPow2( float64ToUint32( x ) );
46+
y = isPow2( float64ToUint32( x[ i%x.length ] ) );
4347
if ( typeof y !== 'boolean' ) {
4448
b.fail( 'should return a boolean' );
4549
}

lib/node_modules/@stdlib/math/base/assert/uint32-is-pow2/benchmark/benchmark.native.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
25-
var round = require( '@stdlib/math/base/special/round' );
26-
var randu = require( '@stdlib/random/base/randu' );
25+
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
2726
var float64ToUint32 = require( '@stdlib/number/float64/base/to-uint32' );
2827
var isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;
2928
var tryRequire = require( '@stdlib/utils/try-require' );
@@ -41,14 +40,19 @@ var opts = {
4140
// MAIN //
4241

4342
bench( pkg+'::native', opts, function benchmark( b ) {
43+
var opts;
4444
var x;
4545
var y;
4646
var i;
4747

48+
opts = {
49+
'dtype': 'uint32'
50+
};
51+
x = discreteUniform( 100, 0, 1.0e7, opts );
52+
4853
b.tic();
4954
for ( i = 0; i < b.iterations; i++ ) {
50-
x = round( randu()*1.0e7 );
51-
y = isPow2( float64ToUint32( x ) );
55+
y = isPow2( float64ToUint32( x[ i%x.length ] ) );
5256
if ( typeof y !== 'boolean' ) {
5357
b.fail( 'should return a boolean' );
5458
}

lib/node_modules/@stdlib/math/base/assert/uint32-is-pow2/benchmark/c/native/benchmark.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,18 @@ static double rand_double( void ) {
9393
*/
9494
static double benchmark( void ) {
9595
double elapsed;
96-
double x;
96+
double x[ 100 ];
9797
double t;
9898
bool b;
9999
int i;
100100

101+
for ( i = 0; i < 100; i++ ) {
102+
x[ i ] = ( rand_double() * 200.0 ) - 100.0;
103+
}
104+
101105
t = tic();
102106
for ( i = 0; i < ITERATIONS; i++ ) {
103-
x = ( rand_double() * 200.0 ) - 100.0;
104-
b = stdlib_base_uint32_is_pow2( (uint32_t)x );
107+
b = stdlib_base_uint32_is_pow2( (uint32_t)x[ i%100 ] );
105108
if ( b != true && b != false ) {
106109
printf( "should return either true or false\n" );
107110
break;

lib/node_modules/@stdlib/math/base/assert/uint32-is-pow2/test/test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ tape( 'main export is a function', function test( t ) {
3535
});
3636

3737
tape( 'if provided `0`, the function returns false', function test( t ) {
38-
t.strictEqual( isPow2Uint32( 0 ), false, 'returns false' );
38+
t.strictEqual( isPow2Uint32( 0 ), false, 'returns expected value' );
3939
t.end();
4040
});
4141

lib/node_modules/@stdlib/math/base/assert/uint32-is-pow2/test/test.native.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ tape( 'main export is a function', opts, function test( t ) {
4545

4646
tape( 'if provided `0`, the function returns false', opts, function test( t ) {
4747
var bool = isPow2Uint32( 0 );
48-
t.strictEqual( bool, false, 'returns false' );
48+
t.strictEqual( bool, false, 'returns expected value' );
4949
t.end();
5050
});
5151

0 commit comments

Comments
 (0)