21
21
// MODULES //
22
22
23
23
var bench = require ( '@stdlib/bench' ) ;
24
- var randu = require ( '@stdlib/random/base/randu' ) ;
24
+ var uniform = require ( '@stdlib/random/base/uniform' ) ;
25
+ var Float64Array = require ( '@stdlib/array/float64' ) ;
25
26
var isnan = require ( '@stdlib/math/base/assert/is-nan' ) ;
26
27
var pkg = require ( './../package.json' ) . name ;
27
28
var cdf = require ( './../lib' ) ;
@@ -32,16 +33,24 @@ var cdf = require( './../lib' );
32
33
bench ( pkg , function benchmark ( b ) {
33
34
var min ;
34
35
var max ;
36
+ var len ;
35
37
var x ;
36
38
var y ;
37
39
var i ;
38
40
41
+ len = 100 ;
42
+ x = new Float64Array ( len ) ;
43
+ min = new Float64Array ( len ) ;
44
+ max = new Float64Array ( len ) ;
45
+ for ( i = 0 ; i < len ; i ++ ) {
46
+ x [ i ] = uniform ( - 10.0 , 10.0 ) ;
47
+ min [ i ] = uniform ( - 20.0 , 0.0 ) ;
48
+ max [ i ] = uniform ( min [ i ] , min [ i ] + 40.0 ) ;
49
+ }
50
+
39
51
b . tic ( ) ;
40
52
for ( i = 0 ; i < b . iterations ; i ++ ) {
41
- x = ( randu ( ) * 20.0 ) - 10.0 ;
42
- min = ( randu ( ) * 20.0 ) - 20.0 ;
43
- max = min + ( randu ( ) * 40.0 ) ;
44
- y = cdf ( x , min , max ) ;
53
+ y = cdf ( x [ i % len ] , min [ i % len ] , max [ i % len ] ) ;
45
54
if ( isnan ( y ) ) {
46
55
b . fail ( 'should not return NaN' ) ;
47
56
}
@@ -58,18 +67,23 @@ bench( pkg+':factory', function benchmark( b ) {
58
67
var mycdf ;
59
68
var min ;
60
69
var max ;
70
+ var len ;
61
71
var x ;
62
72
var y ;
63
73
var i ;
64
74
65
75
min = - 1.5 ;
66
76
max = 1.5 ;
67
77
mycdf = cdf . factory ( min , max ) ;
78
+ len = 100 ;
79
+ x = new Float64Array ( len ) ;
80
+ for ( i = 0 ; i < len ; i ++ ) {
81
+ x [ i ] = uniform ( - 2.0 , 0.0 ) ;
82
+ }
68
83
69
84
b . tic ( ) ;
70
85
for ( i = 0 ; i < b . iterations ; i ++ ) {
71
- x = ( randu ( ) * 2.0 ) - 2.0 ;
72
- y = mycdf ( x ) ;
86
+ y = mycdf ( x [ i % len ] ) ;
73
87
if ( isnan ( y ) ) {
74
88
b . fail ( 'should not return NaN' ) ;
75
89
}
0 commit comments