Skip to content

Commit f7b18f2

Browse files
authored
bench: update random value generation
PR-URL: #6687 Reviewed-by: Philipp Burckhardt <pburckhardt@outlook.com>
1 parent da87aba commit f7b18f2

File tree

10 files changed

+62
-40
lines changed

10 files changed

+62
-40
lines changed

Diff for: lib/node_modules/@stdlib/math/base/assert/is-nonpositive-integer/benchmark/benchmark.js

+8-4
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 isNonPositiveInteger = require( './../lib' );
@@ -31,14 +30,19 @@ var isNonPositiveInteger = 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 = isNonPositiveInteger( x );
45+
y = isNonPositiveInteger( x[ i%x.length ] );
4246
if ( typeof y !== 'boolean' ) {
4347
b.fail( 'should return a boolean' );
4448
}

Diff for: lib/node_modules/@stdlib/math/base/assert/is-nonpositive-integer/benchmark/benchmark.native.js

+8-4
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 = isNonPositiveInteger( x );
54+
y = isNonPositiveInteger( x[ i%x.length ] );
5155
if ( typeof y !== 'boolean' ) {
5256
b.fail( 'should return a boolean' );
5357
}

Diff for: lib/node_modules/@stdlib/math/base/assert/is-nonpositive-integer/benchmark/c/native/benchmark.c

+6-3
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() * 200.0 ) - 100.0;
102+
}
103+
100104
t = tic();
101105
for ( i = 0; i < ITERATIONS; i++ ) {
102-
x = ( rand_double() * 200.0 ) - 100.0;
103-
b = stdlib_base_is_nonpositive_integer( x );
106+
b = stdlib_base_is_nonpositive_integer( x[ i%100 ] );
104107
if ( b != true && b != false ) {
105108
printf( "should return either true or false\n" );
106109
break;

Diff for: lib/node_modules/@stdlib/math/base/assert/is-nonpositive-integer/test/test.js

+7-7
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,15 @@ tape( 'main export is a function', function test( t ) {
3939
tape( 'the function returns `false` if provided a positive integer', function test( t ) {
4040
var i;
4141
for ( i = 1; i < 101; i++ ) {
42-
t.equal( isNonPositiveInteger( i ), false, 'returns false when provided '+i );
42+
t.equal( isNonPositiveInteger( i ), false, 'returns expected value when provided '+i );
4343
}
4444
t.end();
4545
});
4646

4747
tape( 'the function returns `true` if provided a nonpositive integer', function test( t ) {
4848
var i;
4949
for ( i = 0; i > -101; i-- ) {
50-
t.equal( isNonPositiveInteger( i ), true, 'returns true when provided '+i );
50+
t.equal( isNonPositiveInteger( i ), true, 'returns expected value when provided '+i );
5151
}
5252
t.end();
5353
});
@@ -58,28 +58,28 @@ tape( 'the function returns `false` if not provided an integer', function test(
5858
for ( i = 0; i < 100; i++ ) {
5959
v = ( randu()*100.0 ) - 50.0;
6060
if ( trunc(v) !== v ) {
61-
t.equal( isNonPositiveInteger( v ), false, 'returns false when provided '+v );
61+
t.equal( isNonPositiveInteger( v ), false, 'returns expected value when provided '+v );
6262
}
6363
}
6464
t.end();
6565
});
6666

6767
tape( 'the function returns `false` if provided `NaN`', function test( t ) {
68-
t.equal( isNonPositiveInteger( NaN ), false, 'returns false' );
68+
t.equal( isNonPositiveInteger( NaN ), false, 'returns expected value' );
6969
t.end();
7070
});
7171

7272
tape( 'WARNING: the function returns `true` if provided `-infinity`', function test( t ) {
73-
t.equal( isNonPositiveInteger( NINF ), true, 'returns true' );
73+
t.equal( isNonPositiveInteger( NINF ), true, 'returns expected value' );
7474
t.end();
7575
});
7676

7777
tape( 'the function does not distinguish between positive and negative zero and returns `true` if provided `+0`', function test( t ) {
78-
t.equal( isNonPositiveInteger( +0.0 ), true, 'returns true' );
78+
t.equal( isNonPositiveInteger( +0.0 ), true, 'returns expected value' );
7979
t.end();
8080
});
8181

8282
tape( 'the function returns `false` if provided `+infinity`', function test( t ) {
83-
t.equal( isNonPositiveInteger( PINF ), false, 'returns false' );
83+
t.equal( isNonPositiveInteger( PINF ), false, 'returns expected value' );
8484
t.end();
8585
});

Diff for: lib/node_modules/@stdlib/math/base/assert/is-nonpositive-integer/test/test.native.js

+7-7
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,15 @@ tape( 'main export is a function', opts, function test( t ) {
4848
tape( 'the function returns `false` if provided a positive integer', opts, function test( t ) {
4949
var i;
5050
for ( i = 1; i < 101; i++ ) {
51-
t.equal( isNonPositiveInteger( i ), false, 'returns false when provided '+i );
51+
t.equal( isNonPositiveInteger( i ), false, 'returns expected value when provided '+i );
5252
}
5353
t.end();
5454
});
5555

5656
tape( 'the function returns `true` if provided a nonpositive integer', opts, function test( t ) {
5757
var i;
5858
for ( i = 0; i > -101; i-- ) {
59-
t.equal( isNonPositiveInteger( i ), true, 'returns true when provided '+i );
59+
t.equal( isNonPositiveInteger( i ), true, 'returns expected value when provided '+i );
6060
}
6161
t.end();
6262
});
@@ -67,28 +67,28 @@ tape( 'the function returns `false` if not provided an integer', opts, function
6767
for ( i = 0; i < 100; i++ ) {
6868
v = ( randu()*100.0 ) - 50.0;
6969
if ( trunc(v) !== v ) {
70-
t.equal( isNonPositiveInteger( v ), false, 'returns false when provided '+v );
70+
t.equal( isNonPositiveInteger( v ), false, 'returns expected value when provided '+v );
7171
}
7272
}
7373
t.end();
7474
});
7575

7676
tape( 'the function returns `false` if provided `NaN`', opts, function test( t ) {
77-
t.equal( isNonPositiveInteger( NaN ), false, 'returns false' );
77+
t.equal( isNonPositiveInteger( NaN ), false, 'returns expected value' );
7878
t.end();
7979
});
8080

8181
tape( 'WARNING: the function returns `true` if provided `-infinity`', opts, function test( t ) {
82-
t.equal( isNonPositiveInteger( NINF ), true, 'returns true' );
82+
t.equal( isNonPositiveInteger( NINF ), true, 'returns expected value' );
8383
t.end();
8484
});
8585

8686
tape( 'the function does not distinguish between positive and negative zero and returns `true` if provided `+0`', opts, function test( t ) {
87-
t.equal( isNonPositiveInteger( +0.0 ), true, 'returns true' );
87+
t.equal( isNonPositiveInteger( +0.0 ), true, 'returns expected value' );
8888
t.end();
8989
});
9090

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

Diff for: lib/node_modules/@stdlib/math/base/assert/is-odd/benchmark/benchmark.js

+6-4
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,19 @@ var isOdd = require( './../lib' );
3030
// MAIN //
3131

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

38-
len = 100;
39-
x = discreteUniform( len, 5.0e6, -5.0e6 );
38+
opts = {
39+
'dtype': 'float64'
40+
};
41+
x = discreteUniform( 100, -5.0e6, 5.0e6, opts );
4042

4143
b.tic();
4244
for ( i = 0; i < b.iterations; i++ ) {
43-
y = isOdd( x[ i % len ] );
45+
y = isOdd( x[ i % x.length ] );
4446
if ( typeof y !== 'boolean' ) {
4547
b.fail( 'should return a boolean' );
4648
}

Diff for: lib/node_modules/@stdlib/math/base/assert/is-odd/benchmark/benchmark.native.js

+6-4
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,19 @@ var opts = {
3939
// MAIN //
4040

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

47-
len = 100;
48-
x = discreteUniform( len, 5.0e6, -5.0e6 );
47+
opts = {
48+
'dtype': 'float64'
49+
};
50+
x = discreteUniform( 100, -5.0e6, 5.0e6, opts );
4951

5052
b.tic();
5153
for ( i = 0; i < b.iterations; i++ ) {
52-
y = isOdd( x[ i % len ] );
54+
y = isOdd( x[ i % x.length ] );
5355
if ( typeof y !== 'boolean' ) {
5456
b.fail( 'should return a boolean' );
5557
}

Diff for: lib/node_modules/@stdlib/math/base/assert/is-odd/benchmark/c/native/benchmark.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ static double benchmark( void ) {
9898
int i;
9999

100100
for ( i = 0; i < 100; i++ ) {
101-
x[ i ] = round( (rand_double()*200.0) - 100.0 );
101+
x[ i ] = round( ( rand_double()*200.0 ) - 100.0 );
102102
}
103103

104104
t = tic();

Diff for: lib/node_modules/@stdlib/math/base/assert/is-oddf/benchmark/benchmark.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/array/discrete-uniform' );
24+
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
2525
var isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;
2626
var pkg = require( './../package.json' ).name;
2727
var isOddf = require( './../lib' );
@@ -30,15 +30,19 @@ var isOddf = require( './../lib' );
3030
// MAIN //
3131

3232
bench( pkg, function benchmark( b ) {
33+
var opts;
3334
var x;
3435
var y;
3536
var i;
3637

37-
x = randu( 100, -50, 50 );
38+
opts = {
39+
'dtype': 'float32'
40+
};
41+
x = discreteUniform( 100, -50, 50, opts );
3842

3943
b.tic();
4044
for ( i = 0; i < b.iterations; i++ ) {
41-
y = isOddf( x[ i % 100 ] );
45+
y = isOddf( x[ i % x.length ] );
4246
if ( typeof y !== 'boolean' ) {
4347
b.fail( 'should return a boolean' );
4448
}

Diff for: lib/node_modules/@stdlib/math/base/assert/is-oddf/benchmark/benchmark.native.js

+6-3
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
25-
var randu = require( '@stdlib/random/array/discrete-uniform' );
25+
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
2626
var isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;
2727
var tryRequire = require( '@stdlib/utils/try-require' );
2828
var pkg = require( './../package.json' ).name;
@@ -43,11 +43,14 @@ bench( pkg+'::native', opts, function benchmark( b ) {
4343
var y;
4444
var i;
4545

46-
x = randu( 100, -50, 50 );
46+
opts = {
47+
'dtype': 'float32'
48+
};
49+
x = discreteUniform( 100, -50, 50, opts );
4750

4851
b.tic();
4952
for ( i = 0; i < b.iterations; i++ ) {
50-
y = isOddf( x[ i % 100 ] );
53+
y = isOddf( x[ i % x.length ] );
5154
if ( typeof y !== 'boolean' ) {
5255
b.fail( 'should return a boolean' );
5356
}

0 commit comments

Comments
 (0)