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 pkg = require ( './../package.json' ) . name ;
28
29
var cdf = require ( './../lib' ) ;
@@ -31,16 +32,23 @@ var cdf = require( './../lib' );
31
32
// MAIN //
32
33
33
34
bench ( pkg , function benchmark ( b ) {
35
+ var len ;
34
36
var k ;
35
37
var x ;
36
38
var y ;
37
39
var i ;
38
40
41
+ len = 100 ;
42
+ x = new Float64Array ( len ) ;
43
+ k = new Float64Array ( len ) ;
44
+ for ( i = 0 ; i < len ; i ++ ) {
45
+ x [ i ] = uniform ( 0.0 , 100.0 ) ;
46
+ k [ i ] = discreteUniform ( 1 , 100 ) ;
47
+ }
48
+
39
49
b . tic ( ) ;
40
50
for ( i = 0 ; i < b . iterations ; i ++ ) {
41
- x = randu ( ) * 100.0 ;
42
- k = ceil ( randu ( ) * 100.0 ) ;
43
- y = cdf ( x , k ) ;
51
+ y = cdf ( x [ i % len ] , k [ i % len ] ) ;
44
52
if ( isnan ( y ) ) {
45
53
b . fail ( 'should not return NaN' ) ;
46
54
}
@@ -55,18 +63,23 @@ bench( pkg, function benchmark( b ) {
55
63
56
64
bench ( pkg + ':factory' , function benchmark ( b ) {
57
65
var mycdf ;
66
+ var len ;
58
67
var k ;
59
68
var x ;
60
69
var y ;
61
70
var i ;
62
71
63
72
k = 10.0 ;
64
73
mycdf = cdf . factory ( k ) ;
74
+ len = 100 ;
75
+ x = new Float64Array ( len ) ;
76
+ for ( i = 0 ; i < len ; i ++ ) {
77
+ x [ i ] = uniform ( 0.0 , 100.0 ) ;
78
+ }
65
79
66
80
b . tic ( ) ;
67
81
for ( i = 0 ; i < b . iterations ; i ++ ) {
68
- x = randu ( ) * 100.0 ;
69
- y = mycdf ( x ) ;
82
+ y = mycdf ( x [ i % len ] ) ;
70
83
if ( isnan ( y ) ) {
71
84
b . fail ( 'should not return NaN' ) ;
72
85
}
0 commit comments