Skip to content

Commit be25162

Browse files
refactor: update blas/ext/base/dnannsumkbn to follow current project conventions
PR-URL: #2079 Closes: #1479 Ref: #1152 --------- Co-authored-by: Philipp Burckhardt <[email protected]> Reviewed-by: Philipp Burckhardt <[email protected]>
1 parent 0f07a02 commit be25162

18 files changed

+229
-349
lines changed

Diff for: lib/node_modules/@stdlib/blas/ext/base/dnannsumkbn/README.md

+12-21
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,11 @@ The `N` and `stride` parameters determine which elements are accessed at runtime
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 = dnannsumkbn( N, x, 2, out, 1 );
69+
var v = dnannsumkbn( 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 = dnannsumkbn( N, x1, 2, out1, 1 );
86+
var v = dnannsumkbn( 4, x1, 2, out1, 1 );
9287
// returns <Float64Array>[ 5.0, 4 ]
9388
```
9489

@@ -115,13 +110,11 @@ While [`typed array`][mdn-typed-array] views mandate a view offset based on the
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 = dnannsumkbn.ndarray( N, x, 2, 1, out, 2, 1 );
117+
var v = dnannsumkbn.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 = dnannsumkbn.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 dnannsumkbn = require( '@stdlib/blas/ext/base/dnannsumkbn' );
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 rand() {
149+
if ( bernoulli( 0.8 ) > 0 ) {
150+
return discreteUniform( 0, 100 );
163151
}
152+
return NaN;
164153
}
154+
155+
var x = filledarrayBy( 10, 'float64', rand );
165156
console.log( x );
166157

167158
var out = new Float64Array( 2 );

Diff for: lib/node_modules/@stdlib/blas/ext/base/dnannsumkbn/benchmark/benchmark.js

+9-11
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' );
@@ -40,19 +42,15 @@ var dnannsumkbn = require( './../lib/dnannsumkbn.js' );
4042
*/
4143
function createBenchmark( len ) {
4244
var out;
43-
var x;
44-
var i;
45+
var x = filledarrayBy( len, 'float64', rand );
46+
out = new Float64Array( 2 );
47+
return benchmark;
4548

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;
49+
function rand() {
50+
if ( bernoulli( 0.7 ) > 0 ) {
51+
return discreteUniform( -10, 10 );
5252
}
5353
}
54-
out = new Float64Array( 2 );
55-
return benchmark;
5654

5755
function benchmark( b ) {
5856
var i;

Diff for: lib/node_modules/@stdlib/blas/ext/base/dnannsumkbn/benchmark/benchmark.native.js

+10-11
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' );
@@ -49,19 +51,16 @@ var opts = {
4951
*/
5052
function createBenchmark( len ) {
5153
var out;
52-
var x;
53-
var i;
54+
var x = filledarrayBy( len, 'float64', rand );
55+
out = new Float64Array( 2 );
56+
return benchmark;
5457

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;
58+
function rand() {
59+
if ( bernoulli( 0.7 ) > 0 ) {
60+
return discreteUniform( -10, 10 );
6161
}
62+
return NaN;
6263
}
63-
out = new Float64Array( 2 );
64-
return benchmark;
6564

6665
function benchmark( b ) {
6766
var i;

Diff for: lib/node_modules/@stdlib/blas/ext/base/dnannsumkbn/benchmark/benchmark.ndarray.js

+10-11
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' );
@@ -40,19 +42,16 @@ var dnannsumkbn = require( './../lib/ndarray.js' );
4042
*/
4143
function createBenchmark( len ) {
4244
var out;
43-
var x;
44-
var i;
45+
var x = filledarrayBy( len, 'float64', rand );
46+
out = new Float64Array( 2 );
47+
return benchmark;
4548

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;
49+
function rand() {
50+
if ( bernoulli( 0.7 ) > 0 ) {
51+
return discreteUniform( -10, 10 );
5252
}
53+
return NaN;
5354
}
54-
out = new Float64Array( 2 );
55-
return benchmark;
5655

5756
function benchmark( b ) {
5857
var i;

Diff for: lib/node_modules/@stdlib/blas/ext/base/dnannsumkbn/benchmark/benchmark.ndarray.native.js

+10-11
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' );
@@ -49,19 +51,16 @@ var opts = {
4951
*/
5052
function createBenchmark( len ) {
5153
var out;
52-
var x;
53-
var i;
54+
var x = filledarrayBy( len, 'float64', rand );
55+
out = new Float64Array( 2 );
56+
return benchmark;
5457

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;
58+
function rand() {
59+
if ( bernoulli( 0.7 ) > 0 ) {
60+
return discreteUniform( -10, 10 );
6161
}
62+
return NaN;
6263
}
63-
out = new Float64Array( 2 );
64-
return benchmark;
6564

6665
function benchmark( b ) {
6766
var i;

Diff for: lib/node_modules/@stdlib/blas/ext/base/dnannsumkbn/docs/repl.txt

+8-10
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 and using an improved Kahan–Babuška algorithm.
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,26 +45,25 @@
4545
// Using `N` and `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 an improved Kahan–Babuška algorithm and
6362
alternative indexing semantics.
6463

6564
While typed array views mandate a view offset based on the underlying
66-
buffer, the `offset` parameter supports indexing semantics based on a
67-
starting index.
65+
buffer, the offsetX and offsetY parameter supports indexing semantics
66+
based on a starting index.
6867

6968
Parameters
7069
----------
@@ -105,9 +104,8 @@
105104

106105
// Using offset parameter:
107106
> var x = new {{alias:@stdlib/array/float64}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, 1.0, NaN, NaN ] );
108-
> var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
109107
> out = new {{alias:@stdlib/array/float64}}( 2 );
110-
> {{alias}}.ndarray( N, x, 2, 1, out, 1, 0 )
108+
> {{alias}}.ndarray( 4, x, 2, 1, out, 1, 0 )
111109
<Float64Array>[ 1.0, 3 ]
112110

113111
See Also

Diff for: lib/node_modules/@stdlib/blas/ext/base/dnannsumkbn/examples/index.js

+10-13
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 dnannsumkbn = 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 rand() {
28+
if ( bernoulli( 0.8 ) > 0 ) {
29+
return discreteUniform( 0, 100 );
3630
}
31+
return NaN;
3732
}
33+
34+
var x = filledarrayBy( 10, 'float64', rand );
3835
console.log( x );
3936

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

Diff for: lib/node_modules/@stdlib/blas/ext/base/dnannsumkbn/include.gypi

+1-1
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

Diff for: lib/node_modules/@stdlib/blas/ext/base/dnannsumkbn/lib/index.js

+1-4
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 dnannsumkbn = require( '@stdlib/blas/ext/base/dnannsumkbn' );
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 = dnannsumkbn.ndarray( N, x, 2, 1, out, 1, 0 );
43+
* var v = dnannsumkbn.ndarray( 5, x, 2, 1, out, 1, 0 );
4744
* // returns <Float64Array>[ 5.0, 4 ]
4845
*/
4946

Diff for: lib/node_modules/@stdlib/blas/ext/base/dnannsumkbn/lib/ndarray.js

+1-4
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,11 @@ var abs = require( '@stdlib/math/base/special/abs' );
4848
*
4949
* @example
5050
* var Float64Array = require( '@stdlib/array/float64' );
51-
* var floor = require( '@stdlib/math/base/special/floor' );
5251
*
5352
* var x = new Float64Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0, NaN, NaN ] );
5453
* var out = new Float64Array( 2 );
5554
*
56-
* var N = floor( x.length / 2 );
57-
*
58-
* var v = dnannsumkbn( N, x, 2, 1, out, 1, 0 );
55+
* var v = dnannsumkbn( 5, x, 2, 1, out, 1, 0 );
5956
* // returns <Float64Array>[ 5.0, 4 ]
6057
*/
6158
function dnannsumkbn( N, x, strideX, offsetX, out, strideOut, offsetOut ) {

0 commit comments

Comments
 (0)