Skip to content

Commit a65a14a

Browse files
AuenKrPlaneshifter
andauthored
refactor: update blas/ext/base/dnannsum to follow current project conventions
PR-URL: #2019 Closes: #1478 Ref: #1152 --------- Signed-off-by: Philipp Burckhardt <pburckhardt@outlook.com> Co-authored-by: Philipp Burckhardt <pburckhardt@outlook.com> Reviewed-by: Philipp Burckhardt <pburckhardt@outlook.com>
1 parent a5e27be commit a65a14a

File tree

18 files changed

+240
-347
lines changed

18 files changed

+240
-347
lines changed

lib/node_modules/@stdlib/blas/ext/base/dnannsum/README.md

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -58,17 +58,15 @@ The function has the following parameters:
5858
- **out**: output [`Float64Array`][@stdlib/array/float64] whose first element is the sum and whose second element is the number of non-NaN elements.
5959
- **strideOut**: index increment for `out`.
6060

61-
The `N` and `stride` parameters determine which elements are accessed at runtime. For example, to compute the sum of every other element in `x`,
61+
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 the strided array,
6262

6363
```javascript
6464
var Float64Array = require( '@stdlib/array/float64' );
65-
var floor = require( '@stdlib/math/base/special/floor' );
6665

6766
var x = new Float64Array( [ 1.0, 2.0, NaN, -7.0, NaN, 3.0, 4.0, 2.0 ] );
6867
var out = new Float64Array( 2 );
69-
var N = floor( x.length / 2 );
7068

71-
var v = dnannsum( N, x, 2, out, 1 );
69+
var v = dnannsum( 4, x, 2, out, 1 );
7270
// returns <Float64Array>[ 5.0, 2 ]
7371
```
7472

@@ -78,17 +76,14 @@ Note that indexing is relative to the first index. To introduce an offset, use [
7876

7977
```javascript
8078
var Float64Array = require( '@stdlib/array/float64' );
81-
var floor = require( '@stdlib/math/base/special/floor' );
8279

8380
var x0 = new Float64Array( [ 2.0, 1.0, NaN, -2.0, -2.0, 2.0, 3.0, 4.0 ] );
8481
var x1 = new Float64Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
8582

8683
var out0 = new Float64Array( 4 );
8784
var out1 = new Float64Array( out0.buffer, out0.BYTES_PER_ELEMENT*2 ); // start at 3rd element
8885

89-
var N = floor( x0.length / 2 );
90-
91-
var v = dnannsum( N, x1, 2, out1, 1 );
86+
var v = dnannsum( 4, x1, 2, out1, 1 );
9287
// returns <Float64Array>[ 5.0, 4 ]
9388
```
9489

@@ -111,17 +106,15 @@ The function has the following additional parameters:
111106
- **offsetX**: starting index for `x`.
112107
- **offsetOut**: starting index for `out`.
113108

114-
While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying `buffer`, the `offset` parameter supports indexing semantics based on a starting index. For example, to calculate the sum of every other value in `x` starting from the second value
109+
While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying `buffer`, the `offset` parameter supports indexing semantics based on a starting index. For example, to calculate the sum of every other value in the strided array starting from the second value
115110

116111
```javascript
117112
var Float64Array = require( '@stdlib/array/float64' );
118-
var floor = require( '@stdlib/math/base/special/floor' );
119113

120114
var x = new Float64Array( [ 2.0, 1.0, NaN, -2.0, -2.0, 2.0, 3.0, 4.0 ] );
121115
var out = new Float64Array( 4 );
122-
var N = floor( x.length / 2 );
123116

124-
var v = dnannsum.ndarray( N, x, 2, 1, out, 2, 1 );
117+
var v = dnannsum.ndarray( 4, x, 2, 1, out, 2, 1 );
125118
// returns <Float64Array>[ 0.0, 5.0, 0.0, 4 ]
126119
```
127120

@@ -146,22 +139,20 @@ var v = dnannsum.ndarray( N, x, 2, 1, out, 2, 1 );
146139
<!-- eslint no-undef: "error" -->
147140

148141
```javascript
149-
var randu = require( '@stdlib/random/base/randu' );
150-
var round = require( '@stdlib/math/base/special/round' );
142+
var bernoulli = require( '@stdlib/random/base/bernoulli' );
143+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
144+
var filledarrayBy = require( '@stdlib/array/filled-by' );
151145
var Float64Array = require( '@stdlib/array/float64' );
152146
var dnannsum = require( '@stdlib/blas/ext/base/dnannsum' );
153147

154-
var x;
155-
var i;
156-
157-
x = new Float64Array( 10 );
158-
for ( i = 0; i < x.length; i++ ) {
159-
if ( randu() < 0.2 ) {
160-
x[ i ] = NaN;
161-
} else {
162-
x[ i ] = round( randu()*100.0 );
148+
function clbk() {
149+
if ( bernoulli( 0.7 ) > 0 ) {
150+
return discreteUniform( 0, 100 );
163151
}
152+
return NaN;
164153
}
154+
155+
var x = filledarrayBy( 10, 'float64', clbk );
165156
console.log( x );
166157

167158
var out = new Float64Array( 2 );

lib/node_modules/@stdlib/blas/ext/base/dnannsum/benchmark/benchmark.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
24+
var bernoulli = require( '@stdlib/random/base/bernoulli' );
25+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
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' );
2729
var Float64Array = require( '@stdlib/array/float64' );
@@ -41,19 +43,18 @@ var dnannsum = require( './../lib/dnannsum.js' );
4143
function createBenchmark( len ) {
4244
var out;
4345
var x;
44-
var i;
4546

46-
x = new Float64Array( len );
47-
for ( i = 0; i < len; i++ ) {
48-
if ( randu() < 0.2 ) {
49-
x[ i ] = NaN;
50-
} else {
51-
x[ i ] = ( randu()*10.0 ) - 20.0;
52-
}
53-
}
47+
x = filledarrayBy( len, 'float64', clbk );
5448
out = new Float64Array( 2 );
5549
return benchmark;
5650

51+
function clbk() {
52+
if ( bernoulli( 0.7 ) > 0 ) {
53+
return discreteUniform( -10, 10 );
54+
}
55+
return NaN;
56+
}
57+
5758
function benchmark( b ) {
5859
var i;
5960

lib/node_modules/@stdlib/blas/ext/base/dnannsum/benchmark/benchmark.native.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
25-
var randu = require( '@stdlib/random/base/randu' );
25+
var bernoulli = require( '@stdlib/random/base/bernoulli' );
26+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
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' );
2830
var Float64Array = require( '@stdlib/array/float64' );
@@ -50,19 +52,18 @@ var opts = {
5052
function createBenchmark( len ) {
5153
var out;
5254
var x;
53-
var i;
5455

55-
x = new Float64Array( len );
56-
for ( i = 0; i < len; i++ ) {
57-
if ( randu() < 0.2 ) {
58-
x[ i ] = NaN;
59-
} else {
60-
x[ i ] = ( randu()*10.0 ) - 20.0;
61-
}
62-
}
56+
x = filledarrayBy( len, 'float64', clbk );
6357
out = new Float64Array( 2 );
6458
return benchmark;
6559

60+
function clbk() {
61+
if ( bernoulli( 0.7 ) > 0 ) {
62+
return discreteUniform( -10, 10 );
63+
}
64+
return NaN;
65+
}
66+
6667
function benchmark( b ) {
6768
var i;
6869

lib/node_modules/@stdlib/blas/ext/base/dnannsum/benchmark/benchmark.ndarray.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
24+
var bernoulli = require( '@stdlib/random/base/bernoulli' );
25+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
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' );
2729
var Float64Array = require( '@stdlib/array/float64' );
@@ -41,19 +43,18 @@ var dnannsum = require( './../lib/ndarray.js' );
4143
function createBenchmark( len ) {
4244
var out;
4345
var x;
44-
var i;
4546

46-
x = new Float64Array( len );
47-
for ( i = 0; i < len; i++ ) {
48-
if ( randu() < 0.2 ) {
49-
x[ i ] = NaN;
50-
} else {
51-
x[ i ] = ( randu()*10.0 ) - 20.0;
52-
}
53-
}
47+
x = filledarrayBy( len, 'float64', clbk );
5448
out = new Float64Array( 2 );
5549
return benchmark;
5650

51+
function clbk() {
52+
if ( bernoulli( 0.7 ) > 0 ) {
53+
return discreteUniform( -10, 10 );
54+
}
55+
return NaN;
56+
}
57+
5758
function benchmark( b ) {
5859
var i;
5960

lib/node_modules/@stdlib/blas/ext/base/dnannsum/benchmark/benchmark.ndarray.native.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
25-
var randu = require( '@stdlib/random/base/randu' );
25+
var bernoulli = require( '@stdlib/random/base/bernoulli' );
26+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
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' );
2830
var Float64Array = require( '@stdlib/array/float64' );
@@ -50,19 +52,18 @@ var opts = {
5052
function createBenchmark( len ) {
5153
var out;
5254
var x;
53-
var i;
5455

55-
x = new Float64Array( len );
56-
for ( i = 0; i < len; i++ ) {
57-
if ( randu() < 0.2 ) {
58-
x[ i ] = NaN;
59-
} else {
60-
x[ i ] = ( randu()*10.0 ) - 20.0;
61-
}
62-
}
56+
x = filledarrayBy( len, 'float64', clbk );
6357
out = new Float64Array( 2 );
6458
return benchmark;
6559

60+
function clbk() {
61+
if ( bernoulli( 0.7 ) > 0 ) {
62+
return discreteUniform( -10, 10 );
63+
}
64+
return NaN;
65+
}
66+
6667
function benchmark( b ) {
6768
var i;
6869

lib/node_modules/@stdlib/blas/ext/base/dnannsum/docs/repl.txt

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
Computes the sum of double-precision floating-point strided array elements,
44
ignoring `NaN` values.
55

6-
The `N` and `stride` parameters determine which elements are accessed at
7-
runtime.
6+
The `N` and `stride` parameters determine which elements in the strided
7+
array are accessed at runtime.
88

99
Indexing is relative to the first index. To introduce an offset, use a typed
1010
array view.
@@ -45,18 +45,17 @@
4545
// Using `N` .`stride` parameters:
4646
> x = new {{alias:@stdlib/array/float64}}( [ -2.0, 1.0, 1.0, -5.0, 2.0, -1.0, NaN, NaN ] );
4747
> out = new {{alias:@stdlib/array/float64}}( 2 );
48-
> var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
49-
> {{alias}}( N, x, 2, out, 1 )
48+
> {{alias}}( 4, x, 2, out, 1 )
5049
<Float64Array>[ 1.0, 3 ]
5150

5251
// Using view offsets:
5352
> var x0 = new {{alias:@stdlib/array/float64}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, 1.0, NaN, NaN ] );
5453
> var x1 = new {{alias:@stdlib/array/float64}}( x0.buffer, x0.BYTES_PER_ELEMENT*1 );
55-
> N = {{alias:@stdlib/math/base/special/floor}}( x0.length / 2 );
5654
> out = new {{alias:@stdlib/array/float64}}( 2 );
57-
> {{alias}}( N, x1, 2, out, 1 )
55+
> {{alias}}( 4, x1, 2, out, 1 )
5856
<Float64Array>[ 1.0, 3 ]
5957

58+
6059
{{alias}}.ndarray( N, x, strideX, offsetX, out, strideOut, offsetOut )
6160
Computes the sum of double-precision floating-point strided array elements,
6261
ignoring `NaN` values and using alternative indexing semantics.
@@ -103,12 +102,10 @@
103102
<Float64Array>[ 1.0, 3 ]
104103

105104
// Using offset parameter:
106-
> var x = new {{alias:@stdlib/array/float64}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, 1.0, NaN, NaN ] );
107-
> var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
105+
> x = new {{alias:@stdlib/array/float64}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, 1.0, NaN, NaN ] );
108106
> out = new {{alias:@stdlib/array/float64}}( 2 );
109-
> {{alias}}.ndarray( N, x, 2, 1, out, 1, 0 )
107+
> {{alias}}.ndarray( 4, x, 2, 1, out, 1, 0 )
110108
<Float64Array>[ 1.0, 3 ]
111109

112110
See Also
113111
--------
114-

lib/node_modules/@stdlib/blas/ext/base/dnannsum/examples/index.js

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,25 +18,22 @@
1818

1919
'use strict';
2020

21-
var randu = require( '@stdlib/random/base/randu' );
22-
var round = require( '@stdlib/math/base/special/round' );
21+
var bernoulli = require( '@stdlib/random/base/bernoulli' );
22+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' );
23+
var filledarrayBy = require( '@stdlib/array/filled-by' );
2324
var Float64Array = require( '@stdlib/array/float64' );
2425
var dnannsum = require( './../lib' );
2526

26-
var out;
27-
var x;
28-
var i;
29-
30-
x = new Float64Array( 10 );
31-
for ( i = 0; i < x.length; i++ ) {
32-
if ( randu() < 0.2 ) {
33-
x[ i ] = NaN;
34-
} else {
35-
x[ i ] = round( randu()*100.0 );
27+
function clbk() {
28+
if ( bernoulli( 0.7 ) > 0 ) {
29+
return discreteUniform( 0, 100 );
3630
}
31+
return NaN;
3732
}
33+
34+
var x = filledarrayBy( 10, 'float64', clbk );
3835
console.log( x );
3936

40-
out = new Float64Array( 2 );
37+
var out = new Float64Array( 2 );
4138
dnannsum( x.length, x, 1, out, 1 );
4239
console.log( out );

lib/node_modules/@stdlib/blas/ext/base/dnannsum/include.gypi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
# Source files:
3838
'src_files': [
39-
'<(src_dir)/addon.cpp',
39+
'<(src_dir)/addon.c',
4040
'<!@(node -e "var arr = require(\'@stdlib/utils/library-manifest\')(\'./manifest.json\',{},{\'basedir\':process.cwd(),\'paths\':\'posix\'}).src; for ( var i = 0; i < arr.length; i++ ) { console.log( arr[ i ] ); }")',
4141
],
4242

lib/node_modules/@stdlib/blas/ext/base/dnannsum/lib/index.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,12 @@
3535
*
3636
* @example
3737
* var Float64Array = require( '@stdlib/array/float64' );
38-
* var floor = require( '@stdlib/math/base/special/floor' );
3938
* var dnannsum = require( '@stdlib/blas/ext/base/dnannsum' );
4039
*
4140
* var x = new Float64Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN, NaN ] );
4241
* var out = new Float64Array( 2 );
4342
*
44-
* var N = floor( x.length / 2 );
45-
*
46-
* var v = dnannsum.ndarray( N, x, 2, 1, out, 1, 0 );
43+
* var v = dnannsum.ndarray( 5, x, 2, 1, out, 1, 0 );
4744
* // returns <Float64Array>[ 5.0, 4 ]
4845
*/
4946

lib/node_modules/@stdlib/blas/ext/base/dnannsum/lib/ndarray.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,11 @@ var dnannsumkbn = require( '@stdlib/blas/ext/base/dnannsumkbn' ).ndarray;
3939
*
4040
* @example
4141
* var Float64Array = require( '@stdlib/array/float64' );
42-
* var floor = require( '@stdlib/math/base/special/floor' );
4342
*
4443
* var x = new Float64Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN, NaN ] );
4544
* var out = new Float64Array( 2 );
4645
*
47-
* var N = floor( x.length / 2 );
48-
*
49-
* var v = dnannsum( N, x, 2, 1, out, 1, 0 );
46+
* var v = dnannsum( 5, x, 2, 1, out, 1, 0 );
5047
* // returns <Float64Array>[ 5.0, 4 ]
5148
*/
5249
function dnannsum( N, x, strideX, offsetX, out, strideOut, offsetOut ) {

0 commit comments

Comments
 (0)