2121// MODULES //
2222
2323var bench = require ( '@stdlib/bench' ) ;
24- var randu = require ( '@stdlib/random/base/randu' ) ;
24+ var Float64Array = require ( '@stdlib/array/float64' ) ;
25+ var uniform = require ( '@stdlib/random/base/uniform' ) ;
2526var isnan = require ( '@stdlib/math/base/assert/is-nan' ) ;
2627var EPS = require ( '@stdlib/constants/float64/eps' ) ;
2728var pkg = require ( './../package.json' ) . name ;
@@ -34,13 +35,20 @@ bench( pkg+'::instantiation', function benchmark( b ) {
3435 var alpha ;
3536 var beta ;
3637 var dist ;
38+ var len ;
3739 var i ;
3840
41+ len = 100 ;
42+ alpha = new Float64Array ( len ) ;
43+ beta = new Float64Array ( len ) ;
44+ for ( i = 0 ; i < len ; i ++ ) {
45+ alpha [ i ] = uniform ( EPS , 10.0 ) ;
46+ beta [ i ] = uniform ( EPS , 10.0 ) ;
47+ }
48+
3949 b . tic ( ) ;
4050 for ( i = 0 ; i < b . iterations ; i ++ ) {
41- alpha = ( randu ( ) * 10.0 ) + EPS ;
42- beta = ( randu ( ) * 10.0 ) + EPS ;
43- dist = new BetaPrime ( alpha , beta ) ;
51+ dist = new BetaPrime ( alpha [ i % len ] , beta [ i % len ] ) ;
4452 if ( ! ( dist instanceof BetaPrime ) ) {
4553 b . fail ( 'should return a distribution instance' ) ;
4654 }
@@ -83,18 +91,23 @@ bench( pkg+'::set:alpha', function benchmark( b ) {
8391 var alpha ;
8492 var beta ;
8593 var dist ;
94+ var len ;
8695 var y ;
8796 var i ;
8897
8998 alpha = 100.56789 ;
9099 beta = 55.54321 ;
91100 dist = new BetaPrime ( alpha , beta ) ;
101+ len = 100 ;
102+ y = new Float64Array ( len ) ;
103+ for ( i = 0 ; i < len ; i ++ ) {
104+ y [ i ] = uniform ( EPS , 100.0 ) ;
105+ }
92106
93107 b . tic ( ) ;
94108 for ( i = 0 ; i < b . iterations ; i ++ ) {
95- y = ( 100.0 * randu ( ) ) + EPS ;
96- dist . alpha = y ;
97- if ( dist . alpha !== y ) {
109+ dist . alpha = y [ i % len ] ;
110+ if ( dist . alpha !== y [ i % len ] ) {
98111 b . fail ( 'should return set value' ) ;
99112 }
100113 }
@@ -136,18 +149,23 @@ bench( pkg+'::set:beta', function benchmark( b ) {
136149 var alpha ;
137150 var beta ;
138151 var dist ;
152+ var len ;
139153 var y ;
140154 var i ;
141155
142156 alpha = 100.56789 ;
143157 beta = 55.54321 ;
144158 dist = new BetaPrime ( alpha , beta ) ;
159+ len = 100 ;
160+ y = new Float64Array ( len ) ;
161+ for ( i = 0 ; i < len ; i ++ ) {
162+ y [ i ] = uniform ( EPS , 100.0 ) ;
163+ }
145164
146165 b . tic ( ) ;
147166 for ( i = 0 ; i < b . iterations ; i ++ ) {
148- y = ( 100.0 * randu ( ) ) + EPS ;
149- dist . beta = y ;
150- if ( dist . beta !== y ) {
167+ dist . beta = y [ i % len ] ;
168+ if ( dist . beta !== y [ i % len ] ) {
151169 b . fail ( 'should return set value' ) ;
152170 }
153171 }
@@ -163,16 +181,23 @@ bench( pkg+':kurtosis', function benchmark( b ) {
163181 var alpha ;
164182 var beta ;
165183 var dist ;
184+ var len ;
185+ var x ;
166186 var y ;
167187 var i ;
168188
169189 alpha = 100.56789 ;
170190 beta = 55.54321 ;
171191 dist = new BetaPrime ( alpha , beta ) ;
192+ len = 100 ;
193+ x = new Float64Array ( len ) ;
194+ for ( i = 0 ; i < len ; i ++ ) {
195+ x [ i ] = uniform ( EPS , 100.0 ) ;
196+ }
172197
173198 b . tic ( ) ;
174199 for ( i = 0 ; i < b . iterations ; i ++ ) {
175- dist . alpha = ( 100.0 * randu ( ) ) + EPS ;
200+ dist . alpha = x [ i % len ] ;
176201 y = dist . kurtosis ;
177202 if ( isnan ( y ) ) {
178203 b . fail ( 'should not return NaN' ) ;
@@ -190,16 +215,23 @@ bench( pkg+':mean', function benchmark( b ) {
190215 var alpha ;
191216 var beta ;
192217 var dist ;
218+ var len ;
219+ var x ;
193220 var y ;
194221 var i ;
195222
196223 alpha = 100.56789 ;
197224 beta = 55.54321 ;
198225 dist = new BetaPrime ( alpha , beta ) ;
226+ len = 100 ;
227+ x = new Float64Array ( len ) ;
228+ for ( i = 0 ; i < len ; i ++ ) {
229+ x [ i ] = uniform ( EPS , 100.0 ) ;
230+ }
199231
200232 b . tic ( ) ;
201233 for ( i = 0 ; i < b . iterations ; i ++ ) {
202- dist . alpha = ( 100.0 * randu ( ) ) + EPS ;
234+ dist . alpha = x [ i % len ] ;
203235 y = dist . mean ;
204236 if ( isnan ( y ) ) {
205237 b . fail ( 'should not return NaN' ) ;
@@ -217,16 +249,23 @@ bench( pkg+':mode', function benchmark( b ) {
217249 var alpha ;
218250 var beta ;
219251 var dist ;
252+ var len ;
253+ var x ;
220254 var y ;
221255 var i ;
222256
223257 alpha = 100.56789 ;
224258 beta = 55.54321 ;
225259 dist = new BetaPrime ( alpha , beta ) ;
260+ len = 100 ;
261+ x = new Float64Array ( len ) ;
262+ for ( i = 0 ; i < len ; i ++ ) {
263+ x [ i ] = uniform ( 1.0 + EPS , 100.0 ) ;
264+ }
226265
227266 b . tic ( ) ;
228267 for ( i = 0 ; i < b . iterations ; i ++ ) {
229- dist . alpha = ( 100.0 * randu ( ) ) + 1.0 + EPS ;
268+ dist . alpha = x [ i % len ] ;
230269 y = dist . mode ;
231270 if ( isnan ( y ) ) {
232271 b . fail ( 'should not return NaN' ) ;
@@ -244,16 +283,23 @@ bench( pkg+':skewness', function benchmark( b ) {
244283 var alpha ;
245284 var beta ;
246285 var dist ;
286+ var len ;
287+ var x ;
247288 var y ;
248289 var i ;
249290
250291 alpha = 100.56789 ;
251292 beta = 55.54321 ;
252293 dist = new BetaPrime ( alpha , beta ) ;
294+ len = 100 ;
295+ x = new Float64Array ( len ) ;
296+ for ( i = 0 ; i < len ; i ++ ) {
297+ x [ i ] = uniform ( EPS , 100.0 ) ;
298+ }
253299
254300 b . tic ( ) ;
255301 for ( i = 0 ; i < b . iterations ; i ++ ) {
256- dist . alpha = ( 100.0 * randu ( ) ) + EPS ;
302+ dist . alpha = x [ i % len ] ;
257303 y = dist . skewness ;
258304 if ( isnan ( y ) ) {
259305 b . fail ( 'should not return NaN' ) ;
@@ -271,16 +317,23 @@ bench( pkg+':stdev', function benchmark( b ) {
271317 var alpha ;
272318 var beta ;
273319 var dist ;
320+ var len ;
321+ var x ;
274322 var y ;
275323 var i ;
276324
277325 alpha = 100.56789 ;
278326 beta = 55.54321 ;
279327 dist = new BetaPrime ( alpha , beta ) ;
328+ len = 100 ;
329+ x = new Float64Array ( len ) ;
330+ for ( i = 0 ; i < len ; i ++ ) {
331+ x [ i ] = uniform ( EPS , 100.0 ) ;
332+ }
280333
281334 b . tic ( ) ;
282335 for ( i = 0 ; i < b . iterations ; i ++ ) {
283- dist . alpha = ( 100.0 * randu ( ) ) + EPS ;
336+ dist . alpha = x [ i % len ] ;
284337 y = dist . stdev ;
285338 if ( isnan ( y ) ) {
286339 b . fail ( 'should not return NaN' ) ;
@@ -298,18 +351,23 @@ bench( pkg+':cdf', function benchmark( b ) {
298351 var alpha ;
299352 var beta ;
300353 var dist ;
354+ var len ;
301355 var x ;
302356 var y ;
303357 var i ;
304358
305359 alpha = 100.56789 ;
306360 beta = 55.54321 ;
307361 dist = new BetaPrime ( alpha , beta ) ;
362+ len = 100 ;
363+ x = new Float64Array ( len ) ;
364+ for ( i = 0 ; i < len ; i ++ ) {
365+ x [ i ] = uniform ( 0.0 , 1.0 ) ;
366+ }
308367
309368 b . tic ( ) ;
310369 for ( i = 0 ; i < b . iterations ; i ++ ) {
311- x = randu ( ) ;
312- y = dist . cdf ( x ) ;
370+ y = dist . cdf ( x [ i % len ] ) ;
313371 if ( isnan ( y ) ) {
314372 b . fail ( 'should not return NaN' ) ;
315373 }
@@ -326,18 +384,23 @@ bench( pkg+':logpdf', function benchmark( b ) {
326384 var alpha ;
327385 var beta ;
328386 var dist ;
387+ var len ;
329388 var x ;
330389 var y ;
331390 var i ;
332391
333392 alpha = 100.56789 ;
334393 beta = 55.54321 ;
335394 dist = new BetaPrime ( alpha , beta ) ;
395+ len = 100 ;
396+ x = new Float64Array ( len ) ;
397+ for ( i = 0 ; i < len ; i ++ ) {
398+ x [ i ] = uniform ( 0.0 , 1.0 ) ;
399+ }
336400
337401 b . tic ( ) ;
338402 for ( i = 0 ; i < b . iterations ; i ++ ) {
339- x = randu ( ) ;
340- y = dist . logpdf ( x ) ;
403+ y = dist . logpdf ( x [ i % len ] ) ;
341404 if ( isnan ( y ) ) {
342405 b . fail ( 'should not return NaN' ) ;
343406 }
@@ -354,18 +417,23 @@ bench( pkg+':pdf', function benchmark( b ) {
354417 var alpha ;
355418 var beta ;
356419 var dist ;
420+ var len ;
357421 var x ;
358422 var y ;
359423 var i ;
360424
361425 alpha = 100.56789 ;
362426 beta = 55.54321 ;
363427 dist = new BetaPrime ( alpha , beta ) ;
428+ len = 100 ;
429+ x = new Float64Array ( len ) ;
430+ for ( i = 0 ; i < len ; i ++ ) {
431+ x [ i ] = uniform ( 0.0 , 1.0 ) ;
432+ }
364433
365434 b . tic ( ) ;
366435 for ( i = 0 ; i < b . iterations ; i ++ ) {
367- x = randu ( ) ;
368- y = dist . pdf ( x ) ;
436+ y = dist . pdf ( x [ i % len ] ) ;
369437 if ( isnan ( y ) ) {
370438 b . fail ( 'should not return NaN' ) ;
371439 }
@@ -382,18 +450,23 @@ bench( pkg+':quantile', function benchmark( b ) {
382450 var alpha ;
383451 var beta ;
384452 var dist ;
453+ var len ;
385454 var x ;
386455 var y ;
387456 var i ;
388457
389458 alpha = 100.56789 ;
390459 beta = 55.54321 ;
391460 dist = new BetaPrime ( alpha , beta ) ;
461+ len = 100 ;
462+ x = new Float64Array ( len ) ;
463+ for ( i = 0 ; i < len ; i ++ ) {
464+ x [ i ] = uniform ( 0.0 , 1.0 ) ;
465+ }
392466
393467 b . tic ( ) ;
394468 for ( i = 0 ; i < b . iterations ; i ++ ) {
395- x = randu ( ) ;
396- y = dist . quantile ( x ) ;
469+ y = dist . quantile ( x [ i % len ] ) ;
397470 if ( isnan ( y ) ) {
398471 b . fail ( 'should not return NaN' ) ;
399472 }
0 commit comments