21
21
// MODULES //
22
22
23
23
var 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' ) ;
26
27
var isnan = require ( '@stdlib/math/base/assert/is-nan' ) ;
27
28
var EPS = require ( '@stdlib/constants/float64/eps' ) ;
28
29
var pkg = require ( './../package.json' ) . name ;
@@ -33,17 +34,25 @@ var cdf = require( './../lib' );
33
34
34
35
bench ( pkg , function benchmark ( b ) {
35
36
var lambda ;
37
+ var len ;
36
38
var k ;
37
39
var x ;
38
40
var y ;
39
41
var i ;
40
42
43
+ len = 100 ;
44
+ x = new Float64Array ( len ) ;
45
+ k = new Float64Array ( len ) ;
46
+ lambda = new Float64Array ( len ) ;
47
+ for ( i = 0 ; i < len ; i ++ ) {
48
+ x [ i ] = discreteUniform ( 0 , 100 ) ;
49
+ k [ i ] = discreteUniform ( 0 , 100 ) ;
50
+ lambda [ i ] = uniform ( EPS , 20.0 ) ;
51
+ }
52
+
41
53
b . tic ( ) ;
42
54
for ( i = 0 ; i < b . iterations ; i ++ ) {
43
- x = ceil ( randu ( ) * 100.0 ) ;
44
- k = ceil ( randu ( ) * 100.0 ) ;
45
- lambda = ( randu ( ) * 20.0 ) + EPS ;
46
- y = cdf ( x , k , lambda ) ;
55
+ y = cdf ( x [ i % len ] , k [ i % len ] , lambda [ i % len ] ) ;
47
56
if ( isnan ( y ) ) {
48
57
b . fail ( 'should not return NaN' ) ;
49
58
}
@@ -59,6 +68,7 @@ bench( pkg, function benchmark( b ) {
59
68
bench ( pkg + ':factory' , function benchmark ( b ) {
60
69
var lambda ;
61
70
var mycdf ;
71
+ var len ;
62
72
var k ;
63
73
var x ;
64
74
var y ;
@@ -67,11 +77,15 @@ bench( pkg+':factory', function benchmark( b ) {
67
77
k = 2.0 ;
68
78
lambda = 1.5 ;
69
79
mycdf = cdf . factory ( k , lambda ) ;
80
+ len = 100 ;
81
+ x = new Float64Array ( len ) ;
82
+ for ( i = 0 ; i < len ; i ++ ) {
83
+ x [ i ] = uniform ( EPS , 50.0 ) ;
84
+ }
70
85
71
86
b . tic ( ) ;
72
87
for ( i = 0 ; i < b . iterations ; i ++ ) {
73
- x = ( randu ( ) * 50.0 ) + EPS ;
74
- y = mycdf ( x ) ;
88
+ y = mycdf ( x [ i % len ] ) ;
75
89
if ( isnan ( y ) ) {
76
90
b . fail ( 'should not return NaN' ) ;
77
91
}
0 commit comments