11/**
22* @license Apache-2.0
33*
4- * Copyright (c) 2020 The Stdlib Authors.
4+ * Copyright (c) 2025 The Stdlib Authors.
55*
66* Licensed under the Apache License, Version 2.0 (the "License");
77* you may not use this file except in compliance with the License.
2121// MODULES //
2222
2323var bench = require ( '@stdlib/bench' ) ;
24- var randu = require ( '@stdlib/random/base/randu' ) ;
24+ var uniform = require ( '@stdlib/random/base/uniform' ) ;
25+ var bernoulli = require ( '@stdlib/random/base/bernoulli' ) ;
26+ var filledarrayBy = require ( '@stdlib/array/filled-by' ) ;
2527var isnan = require ( '@stdlib/math/base/assert/is-nan' ) ;
2628var pow = require ( '@stdlib/math/base/special/pow' ) ;
2729var pkg = require ( './../package.json' ) . name ;
@@ -30,6 +32,19 @@ var nanminabs = require( './../lib/ndarray.js' );
3032
3133// FUNCTIONS //
3234
35+ /**
36+ * Returns a random value or `NaN`.
37+ *
38+ * @private
39+ * @returns {number } random number or `NaN`
40+ */
41+ function rand ( ) {
42+ if ( bernoulli ( 0.8 ) < 1 ) {
43+ return NaN ;
44+ }
45+ return uniform ( - 10.0 , 10.0 ) ;
46+ }
47+
3348/**
3449* Creates a benchmark function.
3550*
@@ -38,17 +53,7 @@ var nanminabs = require( './../lib/ndarray.js' );
3853* @returns {Function } benchmark function
3954*/
4055function createBenchmark ( len ) {
41- var x ;
42- var i ;
43-
44- x = [ ] ;
45- for ( i = 0 ; i < len ; i ++ ) {
46- if ( randu ( ) < 0.2 ) {
47- x . push ( NaN ) ;
48- } else {
49- x . push ( ( randu ( ) * 20.0 ) - 10.0 ) ;
50- }
51- }
56+ var x = filledarrayBy ( len , 'float64' , rand ) ;
5257 return benchmark ;
5358
5459 function benchmark ( b ) {
0 commit comments