Skip to content

Commit 47cc515

Browse files
itskdherePranavchikukgryte
authored
refactor: update blas/ext/base/dcusumkbn to follow current project conventions
PR-URL: #2036 Closes: #1472 --------- Signed-off-by: Pranav Goswami <goswami.4@iitj.ac.in> Signed-off-by: Athan Reines <kgryte@gmail.com> Co-authored-by: Pranav Goswami <goswami.4@iitj.ac.in> Co-authored-by: Athan Reines <kgryte@gmail.com> Reviewed-by: Pranav Goswami <goswami.4@iitj.ac.in> Reviewed-by: Athan Reines <kgryte@gmail.com> Reviewed-by: Philipp Burckhardt <pburckhardt@outlook.com>
1 parent 55abd41 commit 47cc515

21 files changed

+222
-396
lines changed

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

+9-24
Original file line numberDiff line numberDiff line change
@@ -65,18 +65,15 @@ The function has the following parameters:
6565
- **y**: output [`Float64Array`][@stdlib/array/float64].
6666
- **strideY**: index increment for `y`.
6767

68-
The `N` and `stride` parameters determine which elements in `x` and `y` are accessed at runtime. For example, to compute the cumulative sum of every other element in `x`,
68+
The `N` and stride parameters determine which elements in the strided arrays are accessed at runtime. For example, to compute the cumulative sum of every other element in the strided input array,
6969

7070
```javascript
7171
var Float64Array = require( '@stdlib/array/float64' );
72-
var floor = require( '@stdlib/math/base/special/floor' );
7372

7473
var x = new Float64Array( [ 1.0, 2.0, 2.0, -7.0, -2.0, 3.0, 4.0, 2.0 ] );
7574
var y = new Float64Array( x.length );
7675

77-
var N = floor( x.length / 2 );
78-
79-
var v = dcusumkbn( N, 0.0, x, 2, y, 1 );
76+
var v = dcusumkbn( 4, 0.0, x, 2, y, 1 );
8077
// y => <Float64Array>[ 1.0, 3.0, 1.0, 5.0, 0.0, 0.0, 0.0, 0.0 ]
8178
```
8279

@@ -86,7 +83,6 @@ Note that indexing is relative to the first index. To introduce an offset, use [
8683

8784
```javascript
8885
var Float64Array = require( '@stdlib/array/float64' );
89-
var floor = require( '@stdlib/math/base/special/floor' );
9086

9187
// Initial arrays...
9288
var x0 = new Float64Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0 ] );
@@ -96,9 +92,7 @@ var y0 = new Float64Array( x0.length );
9692
var x1 = new Float64Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
9793
var y1 = new Float64Array( y0.buffer, y0.BYTES_PER_ELEMENT*3 ); // start at 4th element
9894

99-
var N = floor( x0.length / 2 );
100-
101-
dcusumkbn( N, 0.0, x1, -2, y1, 1 );
95+
dcusumkbn( 4, 0.0, x1, -2, y1, 1 );
10296
// y0 => <Float64Array>[ 0.0, 0.0, 0.0, 4.0, 6.0, 4.0, 5.0, 0.0 ]
10397
```
10498

@@ -121,18 +115,15 @@ The function has the following additional parameters:
121115
- **offsetX**: starting index for `x`.
122116
- **offsetY**: starting index for `y`.
123117

124-
While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying `buffer`, `offsetX` and `offsetY` parameters support indexing semantics based on a starting indices. For example, to calculate the cumulative sum of every other value in `x` starting from the second value and to store in the last `N` elements of `y` starting from the last element
118+
While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying `buffer`, `offsetX` and `offsetY` parameters support indexing semantics based on a starting indices. For example, to calculate the cumulative sum of every other value in the strided input array starting from the second value and to store in the last `N` elements of the strided output array starting from the last element
125119

126120
```javascript
127121
var Float64Array = require( '@stdlib/array/float64' );
128-
var floor = require( '@stdlib/math/base/special/floor' );
129122

130123
var x = new Float64Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0 ] );
131124
var y = new Float64Array( x.length );
132125

133-
var N = floor( x.length / 2 );
134-
135-
dcusumkbn.ndarray( N, 0.0, x, 2, 1, y, -1, y.length-1 );
126+
dcusumkbn.ndarray( 4, 0.0, x, 2, 1, y, -1, y.length-1 );
136127
// y => <Float64Array>[ 0.0, 0.0, 0.0, 0.0, 5.0, 1.0, -1.0, 1.0 ]
137128
```
138129

@@ -157,20 +148,14 @@ dcusumkbn.ndarray( N, 0.0, x, 2, 1, y, -1, y.length-1 );
157148
<!-- eslint no-undef: "error" -->
158149

159150
```javascript
160-
var randu = require( '@stdlib/random/base/randu' );
161-
var round = require( '@stdlib/math/base/special/round' );
151+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
152+
var filledarrayBy = require( '@stdlib/array/filled-by' );
162153
var Float64Array = require( '@stdlib/array/float64' );
163154
var dcusumkbn = require( '@stdlib/blas/ext/base/dcusumkbn' );
164155

165-
var y;
166-
var x;
167-
var i;
156+
var x = filledarrayBy( 10, 'float64', discreteUniform( 0, 100 ) );
157+
var y = new Float64Array( x.length );
168158

169-
x = new Float64Array( 10 );
170-
y = new Float64Array( x.length );
171-
for ( i = 0; i < x.length; i++ ) {
172-
x[ i ] = round( randu()*100.0 );
173-
}
174159
console.log( x );
175160
console.log( y );
176161

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

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

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
24+
var uniform = require( '@stdlib/random/base/uniform' ).factory;
25+
var filledarrayBy = require( '@stdlib/array/filled-by' );
2526
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2627
var pow = require( '@stdlib/math/base/special/pow' );
2728
var Float64Array = require( '@stdlib/array/float64' );
2829
var pkg = require( './../package.json' ).name;
2930
var dcusumkbn = require( './../lib/dcusumkbn.js' );
3031

3132

33+
// VARIABLES //
34+
35+
var rand = uniform( -10.0, 10.0 );
36+
37+
3238
// FUNCTIONS //
3339

3440
/**
@@ -39,15 +45,8 @@ var dcusumkbn = require( './../lib/dcusumkbn.js' );
3945
* @returns {Function} benchmark function
4046
*/
4147
function createBenchmark( len ) {
42-
var y;
43-
var x;
44-
var i;
45-
46-
x = new Float64Array( len );
47-
y = new Float64Array( len );
48-
for ( i = 0; i < x.length; i++ ) {
49-
x[ i ] = ( randu()*20.0 ) - 10.0;
50-
}
48+
var x = filledarrayBy( len, 'float64', rand );
49+
var y = new Float64Array( len );
5150
return benchmark;
5251

5352
function benchmark( b ) {

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

+5-10
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
25-
var randu = require( '@stdlib/random/base/randu' );
25+
var uniform = require( '@stdlib/random/base/uniform' ).factory;
26+
var filledarrayBy = require( '@stdlib/array/filled-by' );
2627
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2728
var pow = require( '@stdlib/math/base/special/pow' );
2829
var Float64Array = require( '@stdlib/array/float64' );
@@ -32,6 +33,7 @@ var pkg = require( './../package.json' ).name;
3233

3334
// VARIABLES //
3435

36+
var rand = uniform( -10.0, 10.0 );
3537
var dcusumkbn = tryRequire( resolve( __dirname, './../lib/dcusumkbn.native.js' ) );
3638
var opts = {
3739
'skip': ( dcusumkbn instanceof Error )
@@ -48,15 +50,8 @@ var opts = {
4850
* @returns {Function} benchmark function
4951
*/
5052
function createBenchmark( len ) {
51-
var x;
52-
var y;
53-
var i;
54-
55-
x = new Float64Array( len );
56-
y = new Float64Array( len );
57-
for ( i = 0; i < x.length; i++ ) {
58-
x[ i ] = ( randu()*20.0 ) - 10.0;
59-
}
53+
var x = filledarrayBy( len, 'float64', rand );
54+
var y = new Float64Array( len );
6055
return benchmark;
6156

6257
function benchmark( b ) {

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

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

2323
var bench = require( '@stdlib/bench' );
24-
var randu = require( '@stdlib/random/base/randu' );
24+
var uniform = require( '@stdlib/random/base/uniform' ).factory;
25+
var filledarrayBy = require( '@stdlib/array/filled-by' );
2526
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2627
var pow = require( '@stdlib/math/base/special/pow' );
2728
var Float64Array = require( '@stdlib/array/float64' );
2829
var pkg = require( './../package.json' ).name;
2930
var dcusumkbn = require( './../lib/ndarray.js' );
3031

3132

33+
// VARIABLES //
34+
35+
var rand = uniform( -10.0, 10.0 );
36+
37+
3238
// FUNCTIONS //
3339

3440
/**
@@ -39,15 +45,8 @@ var dcusumkbn = require( './../lib/ndarray.js' );
3945
* @returns {Function} benchmark function
4046
*/
4147
function createBenchmark( len ) {
42-
var x;
43-
var y;
44-
var i;
45-
46-
x = new Float64Array( len );
47-
y = new Float64Array( len );
48-
for ( i = 0; i < x.length; i++ ) {
49-
x[ i ] = ( randu()*20.0 ) - 10.0;
50-
}
48+
var x = filledarrayBy( len, 'float64', rand );
49+
var y = new Float64Array( len );
5150
return benchmark;
5251

5352
function benchmark( b ) {

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

+5-10
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var bench = require( '@stdlib/bench' );
25-
var randu = require( '@stdlib/random/base/randu' );
25+
var uniform = require( '@stdlib/random/base/uniform' ).factory;
26+
var filledarrayBy = require( '@stdlib/array/filled-by' );
2627
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2728
var pow = require( '@stdlib/math/base/special/pow' );
2829
var Float64Array = require( '@stdlib/array/float64' );
@@ -32,6 +33,7 @@ var pkg = require( './../package.json' ).name;
3233

3334
// VARIABLES //
3435

36+
var rand = uniform( -10.0, 10.0 );
3537
var dcusumkbn = tryRequire( resolve( __dirname, './../lib/ndarray.native.js' ) );
3638
var opts = {
3739
'skip': ( dcusumkbn instanceof Error )
@@ -48,15 +50,8 @@ var opts = {
4850
* @returns {Function} benchmark function
4951
*/
5052
function createBenchmark( len ) {
51-
var x;
52-
var y;
53-
var i;
54-
55-
x = new Float64Array( len );
56-
y = new Float64Array( len );
57-
for ( i = 0; i < x.length; i++ ) {
58-
x[ i ] = ( randu()*20.0 ) - 10.0;
59-
}
53+
var x = filledarrayBy( len, 'float64', rand );
54+
var y = new Float64Array( len );
6055
return benchmark;
6156

6257
function benchmark( b ) {

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

+6-8
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
Computes the cumulative sum of double-precision floating-point strided array
44
elements using an improved Kahan–Babuška algorithm.
55

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

99
Indexing is relative to the first index. To introduce an offset, use a typed
1010
array view.
@@ -47,21 +47,20 @@
4747
// Using `N` and `stride` parameters:
4848
> x = new {{alias:@stdlib/array/float64}}( [ -2.0, 1.0, 1.0, -5.0, 2.0, -1.0 ] );
4949
> y = new {{alias:@stdlib/array/float64}}( x.length );
50-
> var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
51-
> {{alias}}( N, 0.0, x, 2, y, 2 )
50+
> {{alias}}( 3, 0.0, x, 2, y, 2 )
5251
<Float64Array>[ -2.0, 0.0, -1.0, 0.0, 1.0, 0.0 ]
5352

5453
// Using view offsets:
5554
> var x0 = new {{alias:@stdlib/array/float64}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0 ] );
5655
> var y0 = new {{alias:@stdlib/array/float64}}( x0.length );
5756
> var x1 = new {{alias:@stdlib/array/float64}}( x0.buffer, x0.BYTES_PER_ELEMENT*1 );
5857
> var y1 = new {{alias:@stdlib/array/float64}}( y0.buffer, y0.BYTES_PER_ELEMENT*3 );
59-
> N = {{alias:@stdlib/math/base/special/floor}}( x0.length / 2 );
60-
> {{alias}}( N, 0.0, x1, 2, y1, 1 )
58+
> {{alias}}( 3, 0.0, x1, 2, y1, 1 )
6159
<Float64Array>[ -2.0, 0.0, -1.0 ]
6260
> y0
6361
<Float64Array>[ 0.0, 0.0, 0.0, -2.0, 0.0, -1.0 ]
6462

63+
6564
{{alias}}.ndarray( N, sum, x, strideX, offsetX, y, strideY, offsetY )
6665
Computes the cumulative sum of double-precision floating-point strided array
6766
elements using an improved Kahan–Babuška algorithm and alternative indexing
@@ -113,8 +112,7 @@
113112
// Advanced indexing:
114113
> x = new {{alias:@stdlib/array/float64}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0 ] );
115114
> y = new {{alias:@stdlib/array/float64}}( x.length );
116-
> var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
117-
> {{alias}}.ndarray( N, 0.0, x, 2, 1, y, -1, y.length-1 )
115+
> {{alias}}.ndarray( 3, 0.0, x, 2, 1, y, -1, y.length-1 )
118116
<Float64Array>[ 0.0, 0.0, 0.0, -1.0, 0.0, -2.0 ]
119117

120118
See Also

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

+4-10
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,14 @@
1818

1919
'use strict';
2020

21-
var randu = require( '@stdlib/random/base/randu' );
22-
var round = require( '@stdlib/math/base/special/round' );
21+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
22+
var filledarrayBy = require( '@stdlib/array/filled-by' );
2323
var Float64Array = require( '@stdlib/array/float64' );
2424
var dcusumkbn = require( './../lib' );
2525

26-
var y;
27-
var x;
28-
var i;
26+
var x = filledarrayBy( 10, 'float64', discreteUniform( 0, 100 ) );
27+
var y = new Float64Array( x.length );
2928

30-
x = new Float64Array( 10 );
31-
y = new Float64Array( x.length );
32-
for ( i = 0; i < x.length; i++ ) {
33-
x[ i ] = round( randu()*100.0 );
34-
}
3529
console.log( x );
3630
console.log( y );
3731

lib/node_modules/@stdlib/blas/ext/base/dcusumkbn/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

lib/node_modules/@stdlib/blas/ext/base/dcusumkbn/lib/dcusumkbn.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,8 @@ var abs = require( '@stdlib/math/base/special/abs' );
4949
*
5050
* var x = new Float64Array( [ 1.0, -2.0, 2.0 ] );
5151
* var y = new Float64Array( x.length );
52-
* var N = x.length;
5352
*
54-
* var v = dcusumkbn( N, 0.0, x, 1, y, 1 );
53+
* var v = dcusumkbn( 3, 0.0, x, 1, y, 1 );
5554
* // returns <Float64Array>[ 1.0, -1.0, 1.0 ]
5655
*/
5756
function dcusumkbn( N, sum, x, strideX, y, strideY ) {

lib/node_modules/@stdlib/blas/ext/base/dcusumkbn/lib/dcusumkbn.native.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,8 @@ var addon = require( './../src/addon.node' );
4141
*
4242
* var x = new Float64Array( [ 1.0, -2.0, 2.0 ] );
4343
* var y = new Float64Array( x.length );
44-
* var N = x.length;
4544
*
46-
* var v = dcusumkbn( N, 0.0, x, 1, y, 1 );
45+
* var v = dcusumkbn( 3, 0.0, x, 1, y, 1 );
4746
* // returns <Float64Array>[ 1.0, -1.0, 1.0 ]
4847
*/
4948
function dcusumkbn( N, sum, x, strideX, y, strideY ) {

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

+2-5
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,18 @@
2929
*
3030
* var x = new Float64Array( [ 1.0, -2.0, 2.0 ] );
3131
* var y = new Float64Array( x.length );
32-
* var N = x.length;
3332
*
34-
* dcusumkbn( N, 0.0, x, 1, y, 1 );
33+
* dcusumkbn( 3, 0.0, x, 1, y, 1 );
3534
* // y => <Float64Array>[ 1.0, -1.0, 1.0 ]
3635
*
3736
* @example
3837
* var Float64Array = require( '@stdlib/array/float64' );
39-
* var floor = require( '@stdlib/math/base/special/floor' );
4038
* var dcusumkbn = require( '@stdlib/blas/ext/base/dcusumkbn' );
4139
*
4240
* var x = new Float64Array( [ 2.0, 1.0, 2.0, -2.0, -2.0, 2.0, 3.0, 4.0 ] );
4341
* var y = new Float64Array( x.length );
44-
* var N = floor( x.length / 2 );
4542
*
46-
* dcusumkbn.ndarray( N, 0.0, x, 2, 1, y, 1, 0 );
43+
* dcusumkbn.ndarray( 4, 0.0, x, 2, 1, y, 1, 0 );
4744
* // y => <Float64Array>[ 1.0, -1.0, 1.0, 5.0, 0.0, 0.0, 0.0, 0.0 ]
4845
*/
4946

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

+1-3
Original file line numberDiff line numberDiff line change
@@ -48,13 +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 ] );
5453
* var y = new Float64Array( x.length );
55-
* var N = floor( x.length / 2 );
5654
*
57-
* var v = dcusumkbn( N, 0.0, x, 2, 1, y, 1, 0 );
55+
* var v = dcusumkbn( 4, 0.0, x, 2, 1, y, 1, 0 );
5856
* // returns <Float64Array>[ 1.0, -1.0, 1.0, 5.0, 0.0, 0.0, 0.0, 0.0 ]
5957
*/
6058
function dcusumkbn( N, sum, x, strideX, offsetX, y, strideY, offsetY ) {

0 commit comments

Comments
 (0)