2121// MODULES //
2222
2323var bench = require ( '@stdlib/bench' ) ;
24- var ceil = require ( '@stdlib/math/base/special/ceil' ) ;
25- var randu = require ( '@stdlib/random/base/randu' ) ;
24+ var Float64Array = require ( '@stdlib/array/float64' ) ;
25+ var uniform = require ( '@stdlib/random/base/uniform' ) ;
26+ var discreteUniform = require ( '@stdlib/random/base/discrete-uniform' ) ;
2627var isnan = require ( '@stdlib/math/base/assert/is-nan' ) ;
2728var pkg = require ( './../package.json' ) . name ;
2829var cdf = require ( './../lib' ) ;
@@ -31,18 +32,26 @@ var cdf = require( './../lib' );
3132// MAIN //
3233
3334bench ( pkg , function benchmark ( b ) {
35+ var len ;
3436 var n ;
3537 var p ;
3638 var x ;
3739 var y ;
3840 var i ;
3941
42+ len = 100 ;
43+ x = new Float64Array ( len ) ;
44+ n = new Float64Array ( len ) ;
45+ p = new Float64Array ( len ) ;
46+ for ( i = 0 ; i < len ; i ++ ) {
47+ x [ i ] = uniform ( 0.0 , 100.0 ) ;
48+ n [ i ] = discreteUniform ( 1 , 100 ) ;
49+ p [ i ] = uniform ( 0.0 , 1.0 ) ;
50+ }
51+
4052 b . tic ( ) ;
4153 for ( i = 0 ; i < b . iterations ; i ++ ) {
42- x = randu ( ) * 100.0 ;
43- n = ceil ( randu ( ) * 100.0 ) ;
44- p = randu ( ) ;
45- y = cdf ( x , n , p ) ;
54+ y = cdf ( x [ i % len ] , n [ i % len ] , p [ i % len ] ) ;
4655 if ( isnan ( y ) ) {
4756 b . fail ( 'should not return NaN' ) ;
4857 }
@@ -57,6 +66,7 @@ bench( pkg, function benchmark( b ) {
5766
5867bench ( pkg + ':factory' , function benchmark ( b ) {
5968 var mycdf ;
69+ var len ;
6070 var n ;
6171 var p ;
6272 var x ;
@@ -66,11 +76,15 @@ bench( pkg+':factory', function benchmark( b ) {
6676 n = 80 ;
6777 p = 0.4 ;
6878 mycdf = cdf . factory ( n , p ) ;
79+ len = 100 ;
80+ x = new Float64Array ( len ) ;
81+ for ( i = 0 ; i < len ; i ++ ) {
82+ x [ i ] = uniform ( 0.0 , 80.0 ) ;
83+ }
6984
7085 b . tic ( ) ;
7186 for ( i = 0 ; i < b . iterations ; i ++ ) {
72- x = randu ( ) * 80.0 ;
73- y = mycdf ( x ) ;
87+ y = mycdf ( x [ i % len ] ) ;
7488 if ( isnan ( y ) ) {
7589 b . fail ( 'should not return NaN' ) ;
7690 }
0 commit comments