Skip to content

Commit feb552b

Browse files
authored
bench: update random value generation
PR-URL: #6393 Reviewed-by: Athan Reines <[email protected]>
1 parent d3289c3 commit feb552b

File tree

24 files changed

+200
-159
lines changed

24 files changed

+200
-159
lines changed

Diff for: lib/node_modules/@stdlib/math/base/special/pdifff/benchmark/benchmark.js

+9-4
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/base/randu' );
24+
var uniform = require( '@stdlib/random/array/uniform' );
2525
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
2626
var pkg = require( './../package.json' ).name;
2727
var pdifff = require( './../lib' );
@@ -35,11 +35,16 @@ bench( pkg, function benchmark( b ) {
3535
var z;
3636
var i;
3737

38+
x = uniform( 100, -500.0, 500.0, {
39+
'dtype': 'float32'
40+
});
41+
y = uniform( 100, -500.0, 500.0, {
42+
'dtype': 'float32'
43+
});
44+
3845
b.tic();
3946
for ( i = 0; i < b.iterations; i++ ) {
40-
x = ( randu()*1000.0 ) - 500.0;
41-
y = ( randu()*1000.0 ) - 500.0;
42-
z = pdifff( x, y );
47+
z = pdifff( x[ i%x.length ], y[ i%y.length ] );
4348
if ( isnanf( z ) ) {
4449
b.fail( 'should not return NaN' );
4550
}

Diff for: lib/node_modules/@stdlib/math/base/special/pdifff/benchmark/benchmark.native.js

+9-4
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/base/randu' );
25+
var uniform = require( '@stdlib/random/array/uniform' );
2626
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
2727
var tryRequire = require( '@stdlib/utils/try-require' );
2828
var pkg = require( './../package.json' ).name;
@@ -44,11 +44,16 @@ bench( pkg+'::native', opts, function benchmark( b ) {
4444
var z;
4545
var i;
4646

47+
x = uniform( 100, -500.0, 500.0, {
48+
'dtype': 'float32'
49+
});
50+
y = uniform( 100, -500.0, 500.0, {
51+
'dtype': 'float32'
52+
});
53+
4754
b.tic();
4855
for ( i = 0; i < b.iterations; i++ ) {
49-
x = ( randu()*1000.0 ) - 500.0;
50-
y = ( randu()*1000.0 ) - 500.0;
51-
z = pdifff( x, y );
56+
z = pdifff( x[ i%x.length ], y[ i%y.length ] );
5257
if ( isnanf( z ) ) {
5358
b.fail( 'should not return NaN' );
5459
}

Diff for: lib/node_modules/@stdlib/math/base/special/pdifff/benchmark/c/benchmark.c

+8-5
Original file line numberDiff line numberDiff line change
@@ -108,16 +108,19 @@ float pdifff( float x, float y ) {
108108
static double benchmark( void ) {
109109
double elapsed;
110110
double t;
111-
float x;
112-
float y;
111+
float x[ 100 ];
112+
float y[ 100 ];
113113
float z;
114114
int i;
115115

116+
for ( i = 0; i < 100; i++ ) {
117+
x[ i ] = ( 1000.0f*rand_float() ) - 500.0f;
118+
y[ i ] = ( 1000.0f*rand_float() ) - 500.0f;
119+
}
120+
116121
t = tic();
117122
for ( i = 0; i < ITERATIONS; i++ ) {
118-
x = ( 1000.0f*rand_float() ) - 500.0f;
119-
y = ( 1000.0f*rand_float() ) - 500.0f;
120-
z = pdifff( x, y );
123+
z = pdifff( x[ i%100 ], y[ i%100 ] );
121124
if ( z != z ) {
122125
printf( "should not return NaN\n" );
123126
break;

Diff for: lib/node_modules/@stdlib/math/base/special/pdifff/benchmark/c/native/benchmark.c

+8-5
Original file line numberDiff line numberDiff line change
@@ -92,16 +92,19 @@ static float rand_float( void ) {
9292
static double benchmark( void ) {
9393
double elapsed;
9494
double t;
95-
float x;
96-
float y;
95+
float x[ 100 ];
96+
float y[ 100 ];
9797
float z;
9898
int i;
9999

100+
for ( i = 0; i < 100; i++ ) {
101+
x[ i ] = ( 1000.0f*rand_float() ) - 500.0f;
102+
y[ i ] = ( 1000.0f*rand_float() ) - 500.0f;
103+
}
104+
100105
t = tic();
101106
for ( i = 0; i < ITERATIONS; i++ ) {
102-
x = ( 1000.0f*rand_float() ) - 500.0f;
103-
y = ( 1000.0f*rand_float() ) - 500.0f;
104-
z = stdlib_base_pdifff( x, y );
107+
z = stdlib_base_pdifff( x[ i%100 ], y[ i%100 ] );
105108
if ( z != z ) {
106109
printf( "should not return NaN\n" );
107110
break;

Diff for: lib/node_modules/@stdlib/math/base/special/pdifff/test/test.js

+16-16
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@ tape( 'the function returns `NaN` if provided a `NaN`', function test( t ) {
4141
var v;
4242

4343
v = pdifff( NaN, 3.14 );
44-
t.strictEqual( isnanf( v ), true, 'returns NaN' );
44+
t.strictEqual( isnanf( v ), true, 'returns expected value' );
4545

4646
v = pdifff( 3.14, NaN );
47-
t.strictEqual( isnanf( v ), true, 'returns NaN' );
47+
t.strictEqual( isnanf( v ), true, 'returns expected value' );
4848

4949
v = pdifff( NaN, NaN );
50-
t.strictEqual( isnanf( v ), true, 'returns NaN' );
50+
t.strictEqual( isnanf( v ), true, 'returns expected value' );
5151

5252
t.end();
5353
});
@@ -56,40 +56,40 @@ tape( 'the function returns `+infinity` if the first argument is `+infinity`', f
5656
var v;
5757

5858
v = pdifff( PINF, 3.14 );
59-
t.strictEqual( v, PINF, 'returns +infinity' );
59+
t.strictEqual( v, PINF, 'returns expected value' );
6060

6161
v = pdifff( PINF, NINF );
62-
t.strictEqual( v, PINF, 'returns +infinity' );
62+
t.strictEqual( v, PINF, 'returns expected value' );
6363

6464
t.end();
6565
});
6666

6767
tape( 'the function returns `0` if both arguments are `+infinity`', function test( t ) {
6868
var v = pdifff( PINF, PINF );
69-
t.strictEqual( isPositiveZerof( v ), true, 'returns +0' );
69+
t.strictEqual( isPositiveZerof( v ), true, 'returns expected value' );
7070
t.end();
7171
});
7272

7373
tape( 'the function returns positive zero if the difference between the first and second arguments is less than or equal to `0`', function test( t ) {
7474
var v;
7575

7676
v = pdifff( +0.0, -0.0 );
77-
t.strictEqual( isPositiveZerof( v ), true, 'returns +0' );
77+
t.strictEqual( isPositiveZerof( v ), true, 'returns expected value' );
7878

7979
v = pdifff( -0.0, +0.0 );
80-
t.strictEqual( isPositiveZerof( v ), true, 'returns +0' );
80+
t.strictEqual( isPositiveZerof( v ), true, 'returns expected value' );
8181

8282
v = pdifff( -0.0, -0.0 );
83-
t.strictEqual( isPositiveZerof( v ), true, 'returns +0' );
83+
t.strictEqual( isPositiveZerof( v ), true, 'returns expected value' );
8484

8585
v = pdifff( +0.0, +0.0 );
86-
t.strictEqual( isPositiveZerof( v ), true, 'returns +0' );
86+
t.strictEqual( isPositiveZerof( v ), true, 'returns expected value' );
8787

8888
v = pdifff( 3.14, 3.14 );
89-
t.strictEqual( isPositiveZerof( v ), true, 'returns +0' );
89+
t.strictEqual( isPositiveZerof( v ), true, 'returns expected value' );
9090

9191
v = pdifff( 3.14, 4.2 );
92-
t.strictEqual( isPositiveZerof( v ), true, 'returns +0' );
92+
t.strictEqual( isPositiveZerof( v ), true, 'returns expected value' );
9393

9494
t.end();
9595
});
@@ -98,13 +98,13 @@ tape( 'the function returns the positive difference between `x` and `y`', functi
9898
var v;
9999

100100
v = pdifff( 4.15, 3.15 );
101-
t.strictEqual( v, 1.0, 'returns the positive difference' );
101+
t.strictEqual( v, 1.0, 'returns expected value' );
102102

103103
v = pdifff( -4.2, 3.14 );
104-
t.strictEqual( v, 0.0, 'returns the positive difference' );
104+
t.strictEqual( v, 0.0, 'returns expected value' );
105105

106106
v = pdifff( -4.2, -5.2 );
107-
t.strictEqual( v, 1.0, 'returns the positive difference' );
107+
t.strictEqual( v, 1.0, 'returns expected value' );
108108

109109
t.end();
110110
});
@@ -115,7 +115,7 @@ tape( 'the function returns `+infinity` if overflow occurs', function test( t )
115115

116116
half = FLOAT32_MAX / 2.0;
117117
v = pdifff( half, -(half*1.5) );
118-
t.strictEqual( v, PINF, 'returns +infinity' );
118+
t.strictEqual( v, PINF, 'returns expected value' );
119119

120120
t.end();
121121
});

Diff for: lib/node_modules/@stdlib/math/base/special/pdifff/test/test.native.js

+16-16
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,13 @@ tape( 'the function returns `NaN` if provided a `NaN`', opts, function test( t )
5050
var v;
5151

5252
v = pdifff( NaN, 3.14 );
53-
t.strictEqual( isnanf( v ), true, 'returns NaN' );
53+
t.strictEqual( isnanf( v ), true, 'returns expected value' );
5454

5555
v = pdifff( 3.14, NaN );
56-
t.strictEqual( isnanf( v ), true, 'returns NaN' );
56+
t.strictEqual( isnanf( v ), true, 'returns expected value' );
5757

5858
v = pdifff( NaN, NaN );
59-
t.strictEqual( isnanf( v ), true, 'returns NaN' );
59+
t.strictEqual( isnanf( v ), true, 'returns expected value' );
6060

6161
t.end();
6262
});
@@ -65,40 +65,40 @@ tape( 'the function returns `+infinity` if the first argument is `+infinity`', o
6565
var v;
6666

6767
v = pdifff( PINF, 3.14 );
68-
t.strictEqual( v, PINF, 'returns +infinity' );
68+
t.strictEqual( v, PINF, 'returns expected value' );
6969

7070
v = pdifff( PINF, NINF );
71-
t.strictEqual( v, PINF, 'returns +infinity' );
71+
t.strictEqual( v, PINF, 'returns expected value' );
7272

7373
t.end();
7474
});
7575

7676
tape( 'the function returns `0` if both arguments are `+infinity`', opts, function test( t ) {
7777
var v = pdifff( PINF, PINF );
78-
t.strictEqual( isPositiveZerof( v ), true, 'returns +0' );
78+
t.strictEqual( isPositiveZerof( v ), true, 'returns expected value' );
7979
t.end();
8080
});
8181

8282
tape( 'the function returns positive zero if the difference between the first and second arguments is less than or equal to `0`', opts, function test( t ) {
8383
var v;
8484

8585
v = pdifff( +0.0, -0.0 );
86-
t.strictEqual( isPositiveZerof( v ), true, 'returns +0' );
86+
t.strictEqual( isPositiveZerof( v ), true, 'returns expected value' );
8787

8888
v = pdifff( -0.0, +0.0 );
89-
t.strictEqual( isPositiveZerof( v ), true, 'returns +0' );
89+
t.strictEqual( isPositiveZerof( v ), true, 'returns expected value' );
9090

9191
v = pdifff( -0.0, -0.0 );
92-
t.strictEqual( isPositiveZerof( v ), true, 'returns +0' );
92+
t.strictEqual( isPositiveZerof( v ), true, 'returns expected value' );
9393

9494
v = pdifff( +0.0, +0.0 );
95-
t.strictEqual( isPositiveZerof( v ), true, 'returns +0' );
95+
t.strictEqual( isPositiveZerof( v ), true, 'returns expected value' );
9696

9797
v = pdifff( 3.14, 3.14 );
98-
t.strictEqual( isPositiveZerof( v ), true, 'returns +0' );
98+
t.strictEqual( isPositiveZerof( v ), true, 'returns expected value' );
9999

100100
v = pdifff( 3.14, 4.2 );
101-
t.strictEqual( isPositiveZerof( v ), true, 'returns +0' );
101+
t.strictEqual( isPositiveZerof( v ), true, 'returns expected value' );
102102

103103
t.end();
104104
});
@@ -107,13 +107,13 @@ tape( 'the function returns the positive difference between `x` and `y`', opts,
107107
var v;
108108

109109
v = pdifff( 4.15, 3.15 );
110-
t.strictEqual( v, 1.0, 'returns the positive difference' );
110+
t.strictEqual( v, 1.0, 'returns expected value' );
111111

112112
v = pdifff( -4.2, 3.14 );
113-
t.strictEqual( v, 0.0, 'returns the positive difference' );
113+
t.strictEqual( v, 0.0, 'returns expected value' );
114114

115115
v = pdifff( -4.2, -5.2 );
116-
t.strictEqual( v, 1.0, 'returns the positive difference' );
116+
t.strictEqual( v, 1.0, 'returns expected value' );
117117

118118
t.end();
119119
});
@@ -124,7 +124,7 @@ tape( 'the function returns `+infinity` if overflow occurs', opts, function test
124124

125125
half = FLOAT32_MAX / 2.0;
126126
v = pdifff( half, -(half*1.5) );
127-
t.strictEqual( v, PINF, 'returns +infinity' );
127+
t.strictEqual( v, PINF, 'returns expected value' );
128128

129129
t.end();
130130
});

Diff for: lib/node_modules/@stdlib/math/base/special/pow/benchmark/benchmark.js

+9-7
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/base/randu' );
24+
var uniform = require( '@stdlib/random/array/uniform' );
2525
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2626
var pkg = require( './../package.json' ).name;
2727
var pow = require( './../lib' );
@@ -35,11 +35,12 @@ bench( pkg, function benchmark( b ) {
3535
var z;
3636
var i;
3737

38+
x = uniform( 100, 0.0, 100.0 );
39+
y = uniform( 100, -50.0, 50.0 );
40+
3841
b.tic();
3942
for ( i = 0; i < b.iterations; i++ ) {
40-
x = ( randu()*100.0 ) - 0.0;
41-
y = ( randu()*100.0 ) - 50.0;
42-
z = pow( x, y );
43+
z = pow( x[ i%x.length ], y[ i%y.length ] );
4344
if ( isnan( z ) ) {
4445
b.fail( 'should not return NaN' );
4546
}
@@ -58,11 +59,12 @@ bench( pkg+'::built-in', function benchmark( b ) {
5859
var z;
5960
var i;
6061

62+
x = uniform( 100, 0.0, 100.0 );
63+
y = uniform( 100, -50.0, 50.0 );
64+
6165
b.tic();
6266
for ( i = 0; i < b.iterations; i++ ) {
63-
x = ( randu()*100.0 ) - 0.0;
64-
y = ( randu()*100.0 ) - 50.0;
65-
z = Math.pow( x, y ); // eslint-disable-line stdlib/no-builtin-math
67+
z = Math.pow( x[ i%x.length ], y[ i%y.length ] ); // eslint-disable-line stdlib/no-builtin-math
6668
if ( isnan( z ) ) {
6769
b.fail( 'should not return NaN' );
6870
}

Diff for: lib/node_modules/@stdlib/math/base/special/pow/benchmark/benchmark.native.js

+5-4
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/base/randu' );
25+
var uniform = require( '@stdlib/random/array/uniform' );
2626
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2727
var tryRequire = require( '@stdlib/utils/try-require' );
2828
var pkg = require( './../package.json' ).name;
@@ -44,11 +44,12 @@ bench( pkg+'::native', opts, function benchmark( b ) {
4444
var y;
4545
var i;
4646

47+
v = uniform( 100, 0.0, 10.0 );
48+
x = uniform( 100, -5.0, 5.0 );
49+
4750
b.tic();
4851
for ( i = 0; i < b.iterations; i++ ) {
49-
v = ( randu()*10.0 );
50-
x = ( randu()*10.0 ) - 5.0;
51-
y = pow( v, x );
52+
y = pow( v[ i%v.length ], x[ i%x.length ] );
5253
if ( isnan( y ) ) {
5354
b.fail( 'should not return NaN' );
5455
}

Diff for: lib/node_modules/@stdlib/math/base/special/pow/benchmark/c/benchmark.c

+8-5
Original file line numberDiff line numberDiff line change
@@ -90,17 +90,20 @@ static double rand_double( void ) {
9090
*/
9191
static double benchmark( void ) {
9292
double elapsed;
93-
double x;
94-
double y;
93+
double x[ 100 ];
94+
double y[ 100 ];
9595
double z;
9696
double t;
9797
int i;
9898

99+
for ( i = 0; i < 100; i++ ) {
100+
x[ i ] = ( 100.0*rand_double() ) - 0.0;
101+
y[ i ] = ( 100.0*rand_double() ) - 50.0;
102+
}
103+
99104
t = tic();
100105
for ( i = 0; i < ITERATIONS; i++ ) {
101-
x = ( 100.0*rand_double() ) - 0.0;
102-
y = ( 100.0*rand_double() ) - 50.0;
103-
z = pow( x, y );
106+
z = pow( x[ i%100 ], y[ i%100 ] );
104107
if ( z != z ) {
105108
printf( "should not return NaN\n" );
106109
break;

0 commit comments

Comments
 (0)