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 discreteUniform = require ( '@stdlib/random/base/discrete-uniform' ) ;
25+ var uniform = require ( '@stdlib/random/base/uniform' ) ;
26+ var Float64Array = require ( '@stdlib/array/float64' ) ;
2627var isnan = require ( '@stdlib/math/base/assert/is-nan' ) ;
2728var EPS = require ( '@stdlib/constants/float64/eps' ) ;
2829var pkg = require ( './../package.json' ) . name ;
@@ -32,18 +33,26 @@ var cdf = require( './../lib' );
3233// MAIN //
3334
3435bench ( pkg , function benchmark ( b ) {
36+ var len ;
3537 var r ;
3638 var p ;
3739 var x ;
3840 var y ;
3941 var i ;
4042
43+ len = 100 ;
44+ x = new Float64Array ( len ) ;
45+ r = new Float64Array ( len ) ;
46+ p = new Float64Array ( len ) ;
47+ for ( i = 0 ; i < len ; i ++ ) {
48+ x [ i ] = uniform ( 0.0 , 100.0 ) ;
49+ r [ i ] = discreteUniform ( 1 , 100 ) ;
50+ p [ i ] = uniform ( EPS , 1.0 ) ;
51+ }
52+
4153 b . tic ( ) ;
4254 for ( i = 0 ; i < b . iterations ; i ++ ) {
43- x = randu ( ) * 100.0 ;
44- r = ceil ( randu ( ) * 100.0 ) ;
45- p = ( randu ( ) * 1.0 ) + EPS ;
46- y = cdf ( x , r , p ) ;
55+ y = cdf ( x [ i % len ] , r [ i % len ] , p [ i % len ] ) ;
4756 if ( isnan ( y ) ) {
4857 b . fail ( 'should not return NaN' ) ;
4958 }
@@ -58,6 +67,7 @@ bench( pkg, function benchmark( b ) {
5867
5968bench ( pkg + ':factory' , function benchmark ( b ) {
6069 var mycdf ;
70+ var len ;
6171 var r ;
6272 var p ;
6373 var x ;
@@ -67,11 +77,15 @@ bench( pkg+':factory', function benchmark( b ) {
6777 r = 80 ;
6878 p = 0.4 ;
6979 mycdf = cdf . factory ( r , p ) ;
80+ len = 100 ;
81+ x = new Float64Array ( len ) ;
82+ for ( i = 0 ; i < len ; i ++ ) {
83+ x [ i ] = uniform ( 0.0 , 100.0 ) ;
84+ }
7085
7186 b . tic ( ) ;
7287 for ( i = 0 ; i < b . iterations ; i ++ ) {
73- x = ( randu ( ) * 100 ) ;
74- y = mycdf ( x ) ;
88+ y = mycdf ( x [ i % len ] ) ;
7589 if ( isnan ( y ) ) {
7690 b . fail ( 'should not return NaN' ) ;
7791 }
@@ -82,4 +96,4 @@ bench( pkg+':factory', function benchmark( b ) {
8296 }
8397 b . pass ( 'benchmark finished' ) ;
8498 b . end ( ) ;
85- } ) ;
99+ } ) ;
0 commit comments