Skip to content

Commit ff7d4ee

Browse files
committed
Auto-generated commit
1 parent ca862d0 commit ff7d4ee

23 files changed

+219
-311
lines changed

CONTRIBUTORS

+1
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ Shivam <11shivam00@gmail.com>
7373
Shraddheya Shendre <shendreshraddheya@gmail.com>
7474
Shubh Mehta <93862397+Shubh942@users.noreply.github.com>
7575
Shubham Mishra <shubh622005@gmail.com>
76+
Sivam Das <100067002+Sivam2313@users.noreply.github.com>
7677
Snehil Shah <130062020+Snehil-Shah@users.noreply.github.com>
7778
Soumajit Chatterjee <121816890+soumajit23@users.noreply.github.com>
7879
Spandan Barve <contact@marsian.dev>

README.md

+15-27
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,8 @@ Computes the sum of single-precision floating-point strided array elements, igno
7777
var Float32Array = require( '@stdlib/array-float32' );
7878

7979
var x = new Float32Array( [ 1.0, -2.0, NaN, 2.0 ] );
80-
var N = x.length;
8180

82-
var v = snansum( N, x, 1 );
81+
var v = snansum( 4, x, 1 );
8382
// returns 1.0
8483
```
8584

@@ -89,16 +88,14 @@ The function has the following parameters:
8988
- **x**: input [`Float32Array`][@stdlib/array/float32].
9089
- **stride**: index increment for `x`.
9190

92-
The `N` and `stride` parameters determine which elements in `x` are accessed at runtime. For example, to compute the sum of every other element in `x`,
91+
The `N` and stride parameters determine which elements in the strided array are accessed at runtime. For example, to compute the sum of every other element in `x`,
9392

9493
```javascript
9594
var Float32Array = require( '@stdlib/array-float32' );
96-
var floor = require( '@stdlib/math-base-special-floor' );
9795

9896
var x = new Float32Array( [ 1.0, 2.0, NaN, -7.0, NaN, 3.0, 4.0, 2.0 ] );
99-
var N = floor( x.length / 2 );
10097

101-
var v = snansum( N, x, 2 );
98+
var v = snansum( 4, x, 2 );
10299
// returns 5.0
103100
```
104101

@@ -108,14 +105,11 @@ Note that indexing is relative to the first index. To introduce an offset, use [
108105

109106
```javascript
110107
var Float32Array = require( '@stdlib/array-float32' );
111-
var floor = require( '@stdlib/math-base-special-floor' );
112108

113109
var x0 = new Float32Array( [ 2.0, 1.0, NaN, -2.0, -2.0, 2.0, 3.0, 4.0 ] );
114110
var x1 = new Float32Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
115111

116-
var N = floor( x0.length / 2 );
117-
118-
var v = snansum( N, x1, 2 );
112+
var v = snansum( 4, x1, 2 );
119113
// returns 5.0
120114
```
121115

@@ -127,9 +121,8 @@ Computes the sum of single-precision floating-point strided array elements, igno
127121
var Float32Array = require( '@stdlib/array-float32' );
128122

129123
var x = new Float32Array( [ 1.0, -2.0, NaN, 2.0 ] );
130-
var N = x.length;
131124

132-
var v = snansum.ndarray( N, x, 1, 0 );
125+
var v = snansum.ndarray( 4, x, 1, 0 );
133126
// returns 1.0
134127
```
135128

@@ -141,12 +134,10 @@ While [`typed array`][mdn-typed-array] views mandate a view offset based on the
141134

142135
```javascript
143136
var Float32Array = require( '@stdlib/array-float32' );
144-
var floor = require( '@stdlib/math-base-special-floor' );
145137

146138
var x = new Float32Array( [ 2.0, 1.0, NaN, -2.0, -2.0, 2.0, 3.0, 4.0 ] );
147-
var N = floor( x.length / 2 );
148139

149-
var v = snansum.ndarray( N, x, 2, 1 );
140+
var v = snansum.ndarray( 4, x, 2, 1 );
150141
// returns 5.0
151142
```
152143

@@ -171,22 +162,19 @@ var v = snansum.ndarray( N, x, 2, 1 );
171162
<!-- eslint no-undef: "error" -->
172163

173164
```javascript
174-
var randu = require( '@stdlib/random-base-randu' );
175-
var round = require( '@stdlib/math-base-special-round' );
176-
var Float32Array = require( '@stdlib/array-float32' );
165+
var discreteUniform = require( '@stdlib/random-base-discrete-uniform' );
166+
var bernoulli = require( '@stdlib/random-base-bernoulli' );
167+
var filledarrayBy = require( '@stdlib/array-filled-by' );
177168
var snansum = require( '@stdlib/blas-ext-base-snansum' );
178169

179-
var x;
180-
var i;
181-
182-
x = new Float32Array( 10 );
183-
for ( i = 0; i < x.length; i++ ) {
184-
if ( randu() < 0.2 ) {
185-
x[ i ] = NaN;
186-
} else {
187-
x[ i ] = round( randu()*100.0 );
170+
function rand() {
171+
if ( bernoulli( 0.8 ) > 0 ) {
172+
return discreteUniform( 0, 100 );
188173
}
174+
return NaN;
189175
}
176+
177+
var x = filledarrayBy( 10, 'float32', rand );
190178
console.log( x );
191179

192180
var v = snansum( x.length, x, 1 );

benchmark/benchmark.js

+9-11
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench-harness' );
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' );
2527
var isnan = require( '@stdlib/math-base-assert-is-nan' );
2628
var pow = require( '@stdlib/math-base-special-pow' );
27-
var Float32Array = require( '@stdlib/array-float32' );
2829
var pkg = require( './../package.json' ).name;
2930
var snansum = require( './../lib/snansum.js' );
3031

@@ -39,18 +40,15 @@ var snansum = require( './../lib/snansum.js' );
3940
* @returns {Function} benchmark function
4041
*/
4142
function createBenchmark( len ) {
42-
var x;
43-
var i;
43+
var x = filledarrayBy( len, 'float32', rand );
44+
return benchmark;
4445

45-
x = new Float32Array( len );
46-
for ( i = 0; i < x.length; i++ ) {
47-
if ( randu() < 0.2 ) {
48-
x[ i ] = NaN;
49-
} else {
50-
x[ i ] = ( randu()*10.0 ) - 20.0;
46+
function rand() {
47+
if ( bernoulli( 0.8 ) > 0 ) {
48+
return uniform( -10.0, 10.0 );
5149
}
50+
return NaN;
5251
}
53-
return benchmark;
5452

5553
function benchmark( b ) {
5654
var v;

benchmark/benchmark.native.js

+9-11
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench-harness' );
25-
var randu = require( '@stdlib/random-base-randu' );
25+
var uniform = require( '@stdlib/random-base-uniform' );
26+
var bernoulli = require( '@stdlib/random-base-bernoulli' );
27+
var filledarrayBy = require( '@stdlib/array-filled-by' );
2628
var isnan = require( '@stdlib/math-base-assert-is-nan' );
2729
var pow = require( '@stdlib/math-base-special-pow' );
28-
var Float32Array = require( '@stdlib/array-float32' );
2930
var tryRequire = require( '@stdlib/utils-try-require' );
3031
var pkg = require( './../package.json' ).name;
3132

@@ -48,18 +49,15 @@ var opts = {
4849
* @returns {Function} benchmark function
4950
*/
5051
function createBenchmark( len ) {
51-
var x;
52-
var i;
52+
var x = filledarrayBy( len, 'float32', rand );
53+
return benchmark;
5354

54-
x = new Float32Array( len );
55-
for ( i = 0; i < x.length; i++ ) {
56-
if ( randu() < 0.2 ) {
57-
x[ i ] = NaN;
58-
} else {
59-
x[ i ] = ( randu()*10.0 ) - 20.0;
55+
function rand() {
56+
if ( bernoulli( 0.8 ) > 0 ) {
57+
return uniform( -10.0, 10.0 );
6058
}
59+
return NaN;
6160
}
62-
return benchmark;
6361

6462
function benchmark( b ) {
6563
var v;

benchmark/benchmark.ndarray.js

+9-11
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench-harness' );
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' );
2527
var isnan = require( '@stdlib/math-base-assert-is-nan' );
2628
var pow = require( '@stdlib/math-base-special-pow' );
27-
var Float32Array = require( '@stdlib/array-float32' );
2829
var pkg = require( './../package.json' ).name;
2930
var snansum = require( './../lib/ndarray.js' );
3031

@@ -39,18 +40,15 @@ var snansum = require( './../lib/ndarray.js' );
3940
* @returns {Function} benchmark function
4041
*/
4142
function createBenchmark( len ) {
42-
var x;
43-
var i;
43+
var x = filledarrayBy( len, 'float32', rand );
44+
return benchmark;
4445

45-
x = new Float32Array( len );
46-
for ( i = 0; i < x.length; i++ ) {
47-
if ( randu() < 0.2 ) {
48-
x[ i ] = NaN;
49-
} else {
50-
x[ i ] = ( randu()*10.0 ) - 20.0;
46+
function rand() {
47+
if ( bernoulli( 0.8 ) > 0 ) {
48+
return uniform( -10.0, 10.0 );
5149
}
50+
return NaN;
5251
}
53-
return benchmark;
5452

5553
function benchmark( b ) {
5654
var v;

benchmark/benchmark.ndarray.native.js

+9-11
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench-harness' );
25-
var randu = require( '@stdlib/random-base-randu' );
25+
var uniform = require( '@stdlib/random-base-uniform' );
26+
var bernoulli = require( '@stdlib/random-base-bernoulli' );
27+
var filledarrayBy = require( '@stdlib/array-filled-by' );
2628
var isnan = require( '@stdlib/math-base-assert-is-nan' );
2729
var pow = require( '@stdlib/math-base-special-pow' );
28-
var Float32Array = require( '@stdlib/array-float32' );
2930
var tryRequire = require( '@stdlib/utils-try-require' );
3031
var pkg = require( './../package.json' ).name;
3132

@@ -48,18 +49,15 @@ var opts = {
4849
* @returns {Function} benchmark function
4950
*/
5051
function createBenchmark( len ) {
51-
var x;
52-
var i;
52+
var x = filledarrayBy( len, 'float32', rand );
53+
return benchmark;
5354

54-
x = new Float32Array( len );
55-
for ( i = 0; i < x.length; i++ ) {
56-
if ( randu() < 0.2 ) {
57-
x[ i ] = NaN;
58-
} else {
59-
x[ i ] = ( randu()*10.0 ) - 20.0;
55+
function rand() {
56+
if ( bernoulli( 0.8 ) > 0 ) {
57+
return uniform( -10.0, 10.0 );
6058
}
59+
return NaN;
6160
}
62-
return benchmark;
6361

6462
function benchmark( b ) {
6563
var v;

0 commit comments

Comments
 (0)