Skip to content

Commit 811e510

Browse files
hrshyakgryte
andauthored
bench: update random value generation
PR-URL: #6232 Co-authored-by: Athan Reines <[email protected]> Reviewed-by: Athan Reines <[email protected]> Signed-off-by: Athan Reines <[email protected]>
1 parent 7519044 commit 811e510

File tree

5 files changed

+78
-77
lines changed

5 files changed

+78
-77
lines changed

lib/node_modules/@stdlib/math/base/special/negalucasf/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ limitations under the License.
1818
1919
-->
2020

21-
# negaLucas
21+
# negaLucasf
2222

2323
> Compute the nth [negaLucas number][lucas-number] in single-precision floating-point format.
2424

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

Lines changed: 67 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,13 @@
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 roundf = require( '@stdlib/math/base/special/roundf' );
2626
var pow = require( '@stdlib/math/base/special/pow' );
2727
var absf = require( '@stdlib/math/base/special/absf' );
2828
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
2929
var PHI = require( '@stdlib/constants/float32/phi' );
30+
var zeros = require( '@stdlib/array/base/zeros' );
3031
var pkg = require( './../package.json' ).name;
3132
var NEGALUCAS = require( './../lib/negalucas.json' );
3233
var negalucasf = require( './../lib' );
@@ -39,7 +40,7 @@ bench( pkg, function benchmark( b ) {
3940
var y;
4041
var i;
4142

42-
x = randu( 100, -34, 0 );
43+
x = discreteUniform( 100, -34, 0 );
4344

4445
b.tic();
4546
for ( i = 0; i < b.iterations; i++ ) {
@@ -61,12 +62,7 @@ bench( pkg+'::analytic', function benchmark( b ) {
6162
var y;
6263
var i;
6364

64-
x = randu( 100, -34, 0 );
65-
66-
function negalucasf( n ) {
67-
var an = absf( n );
68-
return pow( -1.0, an ) * roundf( pow( PHI, an ) );
69-
}
65+
x = discreteUniform( 100, -34, 0 );
7066

7167
b.tic();
7268
for ( i = 0; i < b.iterations; i++ ) {
@@ -81,14 +77,19 @@ bench( pkg+'::analytic', function benchmark( b ) {
8177
}
8278
b.pass( 'benchmark finished' );
8379
b.end();
80+
81+
function negalucasf( n ) {
82+
var an = absf( n );
83+
return pow( -1.0, an ) * roundf( pow( PHI, an ) );
84+
}
8485
});
8586

8687
bench( pkg+'::table', function benchmark( b ) {
8788
var x;
8889
var y;
8990
var i;
9091

91-
x = randu( 100, -34, 0 );
92+
x = discreteUniform( 100, -34, 0 );
9293

9394
b.tic();
9495
for ( i = 0; i < b.iterations; i++ ) {
@@ -110,17 +111,7 @@ bench( pkg+'::naive_recursion', function benchmark( b ) {
110111
var y;
111112
var i;
112113

113-
function negalucasf( n ) {
114-
if ( n === 0 ) {
115-
return 2;
116-
}
117-
if ( n === -1 ) {
118-
return -1;
119-
}
120-
return negalucasf( n+2 ) - negalucasf( n+1 );
121-
}
122-
123-
x = randu( 100, -20, 0 );
114+
x = discreteUniform( 100, -20, 0 );
124115

125116
b.tic();
126117
for ( i = 0; i < b.iterations; i++ ) {
@@ -135,6 +126,16 @@ bench( pkg+'::naive_recursion', function benchmark( b ) {
135126
}
136127
b.pass( 'benchmark finished' );
137128
b.end();
129+
130+
function negalucasf( n ) {
131+
if ( n === 0 ) {
132+
return 2;
133+
}
134+
if ( n === -1 ) {
135+
return -1;
136+
}
137+
return negalucasf( n+2 ) - negalucasf( n+1 );
138+
}
138139
});
139140

140141
bench( pkg+'::recursion_memoized', function benchmark( b ) {
@@ -144,11 +145,27 @@ bench( pkg+'::recursion_memoized', function benchmark( b ) {
144145
var y;
145146
var i;
146147

147-
arr = new Array( 35 );
148+
arr = zeros( 35 );
148149
arr[ 0 ] = 2;
149150
arr[ 1 ] = -1;
150151
N = 1;
151152

153+
x = discreteUniform( 100, -20, 0 );
154+
155+
b.tic();
156+
for ( i = 0; i < b.iterations; i++ ) {
157+
y = negalucasf( x[ i % x.length ] );
158+
if ( isnanf( y ) ) {
159+
b.fail( 'should not return NaN' );
160+
}
161+
}
162+
b.toc();
163+
if ( isnanf( y ) ) {
164+
b.fail( 'should not return NaN' );
165+
}
166+
b.pass( 'benchmark finished' );
167+
b.end();
168+
152169
function negalucasf( n ) {
153170
var an = absf( n );
154171
if ( an <= N ) {
@@ -157,8 +174,14 @@ bench( pkg+'::recursion_memoized', function benchmark( b ) {
157174
arr[ an ] = negalucasf( n+2 ) - negalucasf( n+1 );
158175
return arr[ an ];
159176
}
177+
});
160178

161-
x = randu( 100, -20, 0 );
179+
bench( pkg+'::naive_iterative', function benchmark( b ) {
180+
var x;
181+
var y;
182+
var i;
183+
184+
x = discreteUniform( 100, -34, 0 );
162185

163186
b.tic();
164187
for ( i = 0; i < b.iterations; i++ ) {
@@ -173,12 +196,6 @@ bench( pkg+'::recursion_memoized', function benchmark( b ) {
173196
}
174197
b.pass( 'benchmark finished' );
175198
b.end();
176-
});
177-
178-
bench( pkg+'::naive_iterative', function benchmark( b ) {
179-
var x;
180-
var y;
181-
var i;
182199

183200
function negalucasf( n ) {
184201
var arr;
@@ -187,16 +204,22 @@ bench( pkg+'::naive_iterative', function benchmark( b ) {
187204

188205
an = absf( n );
189206

190-
arr = new Array( an+1 );
207+
arr = zeros( an+1 );
191208
arr[ 0 ] = 2;
192209
arr[ 1 ] = -1;
193210
for ( i = 2; i <= an; i++ ) {
194211
arr[ i ] = arr[ i-2 ] - arr[ i-1 ];
195212
}
196213
return arr[ an ];
197214
}
215+
});
216+
217+
bench( pkg+'::iterative', function benchmark( b ) {
218+
var x;
219+
var y;
220+
var i;
198221

199-
x = randu( 100, -34, 0 );
222+
x = discreteUniform( 100, -34, 0 );
200223

201224
b.tic();
202225
for ( i = 0; i < b.iterations; i++ ) {
@@ -211,12 +234,6 @@ bench( pkg+'::naive_iterative', function benchmark( b ) {
211234
}
212235
b.pass( 'benchmark finished' );
213236
b.end();
214-
});
215-
216-
bench( pkg+'::iterative', function benchmark( b ) {
217-
var x;
218-
var y;
219-
var i;
220237

221238
function negalucasf( n ) {
222239
var an;
@@ -236,8 +253,21 @@ bench( pkg+'::iterative', function benchmark( b ) {
236253
}
237254
return b;
238255
}
256+
});
257+
258+
bench( pkg+'::iterative_memoized', function benchmark( b ) {
259+
var arr;
260+
var N;
261+
var x;
262+
var y;
263+
var i;
264+
265+
arr = zeros( 35 );
266+
arr[ 0 ] = 2;
267+
arr[ 1 ] = -1;
268+
N = 2;
239269

240-
x = randu( 100, -34, 0 );
270+
x = discreteUniform( 100, -34, 0 );
241271

242272
b.tic();
243273
for ( i = 0; i < b.iterations; i++ ) {
@@ -252,19 +282,6 @@ bench( pkg+'::iterative', function benchmark( b ) {
252282
}
253283
b.pass( 'benchmark finished' );
254284
b.end();
255-
});
256-
257-
bench( pkg+'::iterative_memoized', function benchmark( b ) {
258-
var arr;
259-
var N;
260-
var x;
261-
var y;
262-
var i;
263-
264-
arr = new Array( 35 );
265-
arr[ 0 ] = 2;
266-
arr[ 1 ] = -1;
267-
N = 2;
268285

269286
function negalucasf( n ) {
270287
var an;
@@ -279,20 +296,4 @@ bench( pkg+'::iterative_memoized', function benchmark( b ) {
279296
}
280297
return arr[ an ];
281298
}
282-
283-
x = randu( 100, -34, 0 );
284-
285-
b.tic();
286-
for ( i = 0; i < b.iterations; i++ ) {
287-
y = negalucasf( x[ i % x.length ] );
288-
if ( isnanf( y ) ) {
289-
b.fail( 'should not return NaN' );
290-
}
291-
}
292-
b.toc();
293-
if ( isnanf( y ) ) {
294-
b.fail( 'should not return NaN' );
295-
}
296-
b.pass( 'benchmark finished' );
297-
b.end();
298299
});

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

Lines changed: 2 additions & 2 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/array/discrete-uniform' );
25+
var discreteUniform = require( '@stdlib/random/array/discrete-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;
@@ -43,7 +43,7 @@ bench( pkg+'::native', opts, function benchmark( b ) {
4343
var y;
4444
var i;
4545

46-
x = randu( 100, -34, 0 );
46+
x = discreteUniform( 100, -34, 0 );
4747

4848
b.tic();
4949
for ( i = 0; i < b.iterations; i++ ) {

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,30 +46,30 @@ tape( 'if provided a positive number, the function returns `NaN`', function test
4646
var v;
4747
var i;
4848

49-
t.strictEqual( isnanf( negalucasf( 3.14 ) ), true, 'returns NaN' );
49+
t.strictEqual( isnanf( negalucasf( 3.14 ) ), true, 'returns expected value' );
5050

5151
for ( i = 1; i < 100; i++ ) {
5252
v = negalucasf( i );
53-
t.strictEqual( isnanf( v ), true, 'returns NaN when provided ' + i );
53+
t.strictEqual( isnanf( v ), true, 'returns expected value when provided ' + i );
5454
}
5555
t.end();
5656
});
5757

5858
tape( 'if provided negative infinity, the function returns `NaN`', function test( t ) {
5959
var v = negalucasf( NINF );
60-
t.strictEqual( isnanf( v ), true, 'returns NaN when provided -infinity' );
60+
t.strictEqual( isnanf( v ), true, 'returns expected value' );
6161
t.end();
6262
});
6363

6464
tape( 'if provided `NaN`, the function returns `NaN`', function test( t ) {
6565
var v = negalucasf( NaN );
66-
t.strictEqual( isnanf( v ), true, 'returns NaN when provided a NaN' );
66+
t.strictEqual( isnanf( v ), true, 'returns expected value' );
6767
t.end();
6868
});
6969

7070
tape( 'if provided a non-integer, the function returns `NaN`', function test( t ) {
7171
var v = negalucasf( -3.14 );
72-
t.strictEqual( isnanf( v ), true, 'returns NaN' );
72+
t.strictEqual( isnanf( v ), true, 'returns expected value' );
7373
t.end();
7474
});
7575

@@ -100,7 +100,7 @@ tape( 'if provided nonpositive integers less than `-34`, the function returns `N
100100
var v;
101101
for ( i = -35; i > -500; i-- ) {
102102
v = negalucasf( i );
103-
t.strictEqual( isnanf( v ), true, 'returns NaN when provided ' + i );
103+
t.strictEqual( isnanf( v ), true, 'returns expected value when provided ' + i );
104104
}
105105
t.end();
106106
});

lib/node_modules/@stdlib/math/base/special/negalucasf/test/test.native.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ tape( 'if provided a positive number, the function returns `NaN`', opts, functio
5656

5757
for ( i = 1; i < 100; i++ ) {
5858
v = negalucasf( i );
59-
t.strictEqual( isnanf( v ), true, 'returns NaN when provided ' + i );
59+
t.strictEqual( isnanf( v ), true, 'returns expected value when provided ' + i );
6060
}
6161
t.end();
6262
});
@@ -88,7 +88,7 @@ tape( 'if provided nonpositive integers less than `-34`, the function returns `N
8888
var v;
8989
for ( i = -35; i > -500; i-- ) {
9090
v = negalucasf( i );
91-
t.strictEqual( isnanf( v ), true, 'returns NaN when provided ' + i );
91+
t.strictEqual( isnanf( v ), true, 'returns expected value when provided ' + i );
9292
}
9393
t.end();
9494
});

0 commit comments

Comments
 (0)