Skip to content

Commit 655dc7f

Browse files
committed
bench: update random value generation
1 parent ef90f52 commit 655dc7f

File tree

18 files changed

+147
-126
lines changed

18 files changed

+147
-126
lines changed

lib/node_modules/@stdlib/math/base/special/minn/benchmark/benchmark.js

Lines changed: 9 additions & 7 deletions
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 minn = require( './../lib' );
@@ -35,11 +35,12 @@ bench( pkg, function benchmark( b ) {
3535
var z;
3636
var i;
3737

38+
x = uniform( 100, -500.0, 500.0 );
39+
y = uniform( 100, -500.0, 500.0 );
40+
3841
b.tic();
3942
for ( i = 0; i < b.iterations; i++ ) {
40-
x = ( randu()*1000.0 ) - 500.0;
41-
y = ( randu()*1000.0 ) - 500.0;
42-
z = minn( x, y );
43+
z = minn( 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, -500.0, 500.0 );
63+
y = uniform( 100, -500.0, 500.0 );
64+
6165
b.tic();
6266
for ( i = 0; i < b.iterations; i++ ) {
63-
x = ( randu()*1000.0 ) - 500.0;
64-
y = ( randu()*1000.0 ) - 500.0;
65-
z = Math.min( x, y ); // eslint-disable-line stdlib/no-builtin-math
67+
z = Math.min( 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
}

lib/node_modules/@stdlib/math/base/special/minn/benchmark/c/benchmark.c

Lines changed: 8 additions & 5 deletions
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 ] = ( 1000.0*rand_double() ) - 500.0;
101+
y[ i ] = ( 1000.0*rand_double() ) - 500.0;
102+
}
103+
99104
t = tic();
100105
for ( i = 0; i < ITERATIONS; i++ ) {
101-
x = ( 1000.0*rand_double() ) - 500.0;
102-
y = ( 1000.0*rand_double() ) - 500.0;
103-
z = fmin( x, y );
106+
z = fmin( x[ i%100 ], y[ i%100 ] );
104107
if ( z != z ) {
105108
printf( "should not return NaN\n" );
106109
break;

lib/node_modules/@stdlib/math/base/special/minn/test/test.js

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,16 @@ tape( 'the function returns `NaN` if provided a `NaN`', function test( t ) {
4141
var v;
4242

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

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

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

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

5555
t.end();
5656
});
@@ -59,49 +59,49 @@ tape( 'the function returns `-Infinity` if provided `-Infinity`', function test(
5959
var v;
6060

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

6464
v = minn( 3.14, NINF );
65-
t.strictEqual( v, NINF, 'returns -infinity' );
65+
t.strictEqual( v, NINF, 'returns expected value' );
6666

6767
v = minn( NINF );
68-
t.strictEqual( v, NINF, 'returns -infinity' );
68+
t.strictEqual( v, NINF, 'returns expected value' );
6969

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

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

7676
tape( 'the function returns `+infinity` if not provided any arguments', function test( t ) {
7777
var v = minn();
78-
t.strictEqual( v, PINF, 'returns +infinity' );
78+
t.strictEqual( v, PINF, 'returns expected value' );
7979
t.end();
8080
});
8181

8282
tape( 'the function returns a correctly signed zero', function test( t ) {
8383
var v;
8484

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

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

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

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

9797
v = minn( -0.0 );
98-
t.strictEqual( isNegativeZero( v ), true, 'returns -0' );
98+
t.strictEqual( isNegativeZero( v ), true, 'returns expected value' );
9999

100100
v = minn( +0.0 );
101-
t.strictEqual( isPositiveZero( v ), true, 'returns +0' );
101+
t.strictEqual( isPositiveZero( v ), true, 'returns expected value' );
102102

103103
v = minn( +0.0, -0.0, +0.0 );
104-
t.strictEqual( isNegativeZero( v ), true, 'returns -0' );
104+
t.strictEqual( isNegativeZero( v ), true, 'returns expected value' );
105105

106106
t.end();
107107
});
@@ -110,22 +110,22 @@ tape( 'the function returns the minimum value', function test( t ) {
110110
var v;
111111

112112
v = minn( 4.2, 3.14 );
113-
t.strictEqual( v, 3.14, 'returns min value' );
113+
t.strictEqual( v, 3.14, 'returns expected value' );
114114

115115
v = minn( -4.2, 3.14 );
116-
t.strictEqual( v, -4.2, 'returns min value' );
116+
t.strictEqual( v, -4.2, 'returns expected value' );
117117

118118
v = minn( 3.14 );
119-
t.strictEqual( v, 3.14, 'returns min value' );
119+
t.strictEqual( v, 3.14, 'returns expected value' );
120120

121121
v = minn( PINF );
122-
t.strictEqual( v, PINF, 'returns min value' );
122+
t.strictEqual( v, PINF, 'returns expected value' );
123123

124124
v = minn( 4.2, 3.14, -1.0 );
125-
t.strictEqual( v, -1.0, 'returns min value' );
125+
t.strictEqual( v, -1.0, 'returns expected value' );
126126

127127
v = minn( 4.2, 3.14, -1.0, -3.14 );
128-
t.strictEqual( v, -3.14, 'returns min value' );
128+
t.strictEqual( v, -3.14, 'returns expected value' );
129129

130130
t.end();
131131
});

lib/node_modules/@stdlib/math/base/special/modf/benchmark/benchmark.js

Lines changed: 6 additions & 5 deletions
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 isArray = require( '@stdlib/assert/is-array' );
2626
var pkg = require( './../package.json' ).name;
2727
var modf = require( './../lib' );
@@ -34,10 +34,11 @@ bench( pkg, function benchmark( b ) {
3434
var y;
3535
var i;
3636

37+
x = uniform( 100, -5.0e6, 5.0e6 );
38+
3739
b.tic();
3840
for ( i = 0; i < b.iterations; i++ ) {
39-
x = ( randu()*1.0e7 ) - 5.0e6;
40-
y = modf( x );
41+
y = modf( x[ i%x.length ] );
4142
if ( typeof y !== 'object' ) {
4243
b.fail( 'should return an array' );
4344
}
@@ -56,12 +57,12 @@ bench( pkg+':assign', function benchmark( b ) {
5657
var y;
5758
var i;
5859

60+
x = uniform( 100, -5.0e6, 5.0e6 );
5961
out = [ 0.0, 0.0 ];
6062

6163
b.tic();
6264
for ( i = 0; i < b.iterations; i++ ) {
63-
x = ( randu()*1.0e7 ) - 5.0e6;
64-
y = modf.assign( x, out, 1, 0 );
65+
y = modf.assign( x[ i%x.length ], out, 1, 0 );
6566
if ( typeof y !== 'object' ) {
6667
b.fail( 'should return an array' );
6768
}

lib/node_modules/@stdlib/math/base/special/modf/benchmark/benchmark.native.js

Lines changed: 4 additions & 3 deletions
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 isArray = require( '@stdlib/assert/is-array' );
2727
var tryRequire = require( '@stdlib/utils/try-require' );
2828
var pkg = require( './../package.json' ).name;
@@ -43,10 +43,11 @@ bench( pkg+'::native', opts, function benchmark( b ) {
4343
var y;
4444
var i;
4545

46+
x = uniform( 100, -5.0e6, 5.0e6 );
47+
4648
b.tic();
4749
for ( i = 0; i < b.iterations; i++ ) {
48-
x = ( randu() * 1.0e7 ) - 5.0e6;
49-
y = modf( x );
50+
y = modf( x[ i%x.length ] );
5051
if ( typeof y !== 'object' ) {
5152
b.fail( 'should return an array' );
5253
}

lib/node_modules/@stdlib/math/base/special/modf/benchmark/c/benchmark.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,18 @@ static double rand_double( void ) {
9191
static double benchmark( void ) {
9292
double elapsed;
9393
double iptr;
94-
double x;
94+
double x[ 100 ];
9595
double y;
9696
double t;
9797
int i;
9898

99+
for ( i = 0; i < 100; i++ ) {
100+
x[ i ] = ( 1.0e7*rand_double() ) - 5.0e6;
101+
}
102+
99103
t = tic();
100104
for ( i = 0; i < ITERATIONS; i++ ) {
101-
x = ( 1.0e7*rand_double() ) - 5.0e6;
102-
y = modf( x, &iptr );
105+
y = modf( x[ i%100 ], &iptr );
103106
if ( y != y ) {
104107
printf( "should not return NaN\n" );
105108
break;

lib/node_modules/@stdlib/math/base/special/modf/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
static double benchmark( void ) {
9393
double integral;
9494
double elapsed;
95-
double x;
95+
double x[ 100 ];
9696
double y;
9797
double t;
9898
int i;
9999

100+
for ( i = 0; i < 100; i++ ) {
101+
x[ i ] = ( 1.0e7*rand_double() ) - 5.0e6;
102+
}
103+
100104
t = tic();
101105
for ( i = 0; i < ITERATIONS; i++ ) {
102-
x = ( 1.0e7 * rand_double() ) - 5.0e6;
103-
stdlib_base_modf( x, &integral, &y );
106+
stdlib_base_modf( x[ i%100 ], &integral, &y );
104107
if ( y != y || integral != integral) {
105108
printf( "unexpected results\n" );
106109
break;

lib/node_modules/@stdlib/math/base/special/modf/test/test.assign.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,8 @@ tape( 'if provided `+0`, the function returns `[+0,+0]`', function test( t ) {
159159
out = [ 0.0, 0.0 ];
160160
parts = modf( +0.0, out, 1, 0 );
161161
t.equal( parts, out, 'returns output array' );
162-
t.strictEqual( isPositiveZero( parts[0] ), true, 'returns +0' );
163-
t.strictEqual( isPositiveZero( parts[1] ), true, 'returns +0' );
162+
t.strictEqual( isPositiveZero( parts[0] ), true, 'returns expected value' );
163+
t.strictEqual( isPositiveZero( parts[1] ), true, 'returns expected value' );
164164
t.end();
165165
});
166166

@@ -171,8 +171,8 @@ tape( 'if provided `-0`, the function returns `[-0,-0]`', function test( t ) {
171171
out = [ 0.0, 0.0 ];
172172
parts = modf( -0.0, out, 1, 0 );
173173
t.equal( parts, out, 'returns output array' );
174-
t.strictEqual( isNegativeZero( parts[0] ), true, 'returns -0' );
175-
t.strictEqual( isNegativeZero( parts[1] ), true, 'returns -0' );
174+
t.strictEqual( isNegativeZero( parts[0] ), true, 'returns expected value' );
175+
t.strictEqual( isNegativeZero( parts[1] ), true, 'returns expected value' );
176176
t.end();
177177
});
178178

@@ -184,7 +184,7 @@ tape( 'if provided `+infinity`, the function returns `[+infinity,+0]`', function
184184
parts = modf( PINF, out, 1, 0 );
185185
t.equal( parts, out, 'returns output array' );
186186
t.strictEqual( parts[0], PINF, 'returns +infinity' );
187-
t.strictEqual( isPositiveZero( parts[1] ), true, 'returns +0' );
187+
t.strictEqual( isPositiveZero( parts[1] ), true, 'returns expected value' );
188188
t.end();
189189
});
190190

@@ -196,7 +196,7 @@ tape( 'if provided `-infinity`, the function returns `[-infinity,-0]`', function
196196
parts = modf( NINF, out, 1, 0 );
197197
t.equal( parts, out, 'returns output array' );
198198
t.strictEqual( parts[0], NINF, 'returns -infinity' );
199-
t.strictEqual( isNegativeZero( parts[1] ), true, 'returns -0' );
199+
t.strictEqual( isNegativeZero( parts[1] ), true, 'returns expected value' );
200200
t.end();
201201
});
202202

@@ -207,8 +207,8 @@ tape( 'if provided `NaN`, the function returns `[NaN,NaN]`', function test( t )
207207
out = [ 0.0, 0.0 ];
208208
parts = modf( NaN, out, 1, 0 );
209209
t.equal( parts, out, 'returns output array' );
210-
t.strictEqual( isnan( parts[0] ), true, 'returns NaN' );
211-
t.strictEqual( isnan( parts[1] ), true, 'returns NaN' );
210+
t.strictEqual( isnan( parts[0] ), true, 'returns expected value' );
211+
t.strictEqual( isnan( parts[1] ), true, 'returns expected value' );
212212
t.end();
213213
});
214214

lib/node_modules/@stdlib/math/base/special/modf/test/test.main.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -138,35 +138,35 @@ tape( 'the function decomposes a number into integral and fractional parts (subn
138138

139139
tape( 'if provided `+0`, the function returns `[+0,+0]`', function test( t ) {
140140
var parts = modf( +0.0 );
141-
t.strictEqual( isPositiveZero( parts[0] ), true, 'returns +0' );
142-
t.strictEqual( isPositiveZero( parts[1] ), true, 'returns +0' );
141+
t.strictEqual( isPositiveZero( parts[0] ), true, 'returns expected value' );
142+
t.strictEqual( isPositiveZero( parts[1] ), true, 'returns expected value' );
143143
t.end();
144144
});
145145

146146
tape( 'if provided `-0`, the function returns `[-0,-0]`', function test( t ) {
147147
var parts = modf( -0.0 );
148-
t.strictEqual( isNegativeZero( parts[0] ), true, 'returns -0' );
149-
t.strictEqual( isNegativeZero( parts[1] ), true, 'returns -0' );
148+
t.strictEqual( isNegativeZero( parts[0] ), true, 'returns expected value' );
149+
t.strictEqual( isNegativeZero( parts[1] ), true, 'returns expected value' );
150150
t.end();
151151
});
152152

153153
tape( 'if provided `+infinity`, the function returns `[+infinity,+0]`', function test( t ) {
154154
var parts = modf( PINF );
155155
t.strictEqual( parts[0], PINF, 'returns +infinity' );
156-
t.strictEqual( isPositiveZero( parts[1] ), true, 'returns +0' );
156+
t.strictEqual( isPositiveZero( parts[1] ), true, 'returns expected value' );
157157
t.end();
158158
});
159159

160160
tape( 'if provided `-infinity`, the function returns `[-infinity,-0]`', function test( t ) {
161161
var parts = modf( NINF );
162162
t.strictEqual( parts[0], NINF, 'returns -infinity' );
163-
t.strictEqual( isNegativeZero( parts[1] ), true, 'returns -0' );
163+
t.strictEqual( isNegativeZero( parts[1] ), true, 'returns expected value' );
164164
t.end();
165165
});
166166

167167
tape( 'if provided `NaN`, the function returns `[NaN,NaN]`', function test( t ) {
168168
var parts = modf( NaN );
169-
t.strictEqual( isnan( parts[0] ), true, 'returns NaN' );
170-
t.strictEqual( isnan( parts[1] ), true, 'returns NaN' );
169+
t.strictEqual( isnan( parts[0] ), true, 'returns expected value' );
170+
t.strictEqual( isnan( parts[1] ), true, 'returns expected value' );
171171
t.end();
172172
});

0 commit comments

Comments
 (0)