Skip to content

Commit c2a1b29

Browse files
committed
Merge branch 'develop' of https://github.com/stdlib-js/stdlib into develop
2 parents 73268b2 + 9211a99 commit c2a1b29

33 files changed

+237
-432
lines changed

.devcontainer/devcontainer.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
{
22
"name": "stdlib - OSS Development",
3-
"image": "mcr.microsoft.com/devcontainers/javascript-node:1-20-bullseye",
3+
"image": "mcr.microsoft.com/devcontainers/universal:2",
44
"features": {
5-
"ghcr.io/devcontainers/features/python:1": {},
65
"ghcr.io/rocker-org/devcontainer-features/r-apt:0": {},
76
"ghcr.io/julialang/devcontainer-features/julia:1": {},
87
"ghcr.io/marcozac/devcontainer-features/shellcheck:1": {},

.devcontainer/post-create

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,8 @@
2020

2121
make install
2222
make init
23+
24+
sudo apt-get update
25+
sudo apt-get install -y gfortran
26+
27+
make install-deps-r

lib/node_modules/@stdlib/blas/ext/base/dcusumors/manifest.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
"dependencies": [
4141
"@stdlib/napi/argv",
4242
"@stdlib/napi/argv-int64",
43+
"@stdlib/napi/argv-double",
4344
"@stdlib/napi/argv-strided-float64array",
4445
"@stdlib/napi/export"
4546
]

lib/node_modules/@stdlib/blas/ext/base/dcusumors/src/addon.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "stdlib/blas/ext/base/dcusumors.h"
2020
#include "stdlib/napi/argv.h"
2121
#include "stdlib/napi/argv_int64.h"
22+
#include "stdlib/napi/argv_double.h"
2223
#include "stdlib/napi/argv_strided_float64array.h"
2324
#include "stdlib/napi/export.h"
2425

@@ -33,7 +34,7 @@
3334
static napi_value addon( napi_env env, napi_callback_info info ) {
3435
STDLIB_NAPI_ARGV( env, info, argv, argc, 6 );
3536
STDLIB_NAPI_ARGV_INT64( env, N, argv, 0 );
36-
STDLIB_NAPI_ARGV_INT64( env, sum, argv, 1 );
37+
STDLIB_NAPI_ARGV_DOUBLE( env, sum, argv, 1 );
3738
STDLIB_NAPI_ARGV_INT64( env, strideX, argv, 3 );
3839
STDLIB_NAPI_ARGV_INT64( env, strideY, argv, 5 );
3940
STDLIB_NAPI_ARGV_STRIDED_FLOAT64ARRAY( env, X, N, strideX, argv, 2 );

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

Lines changed: 9 additions & 24 deletions
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 = dcusumpw( N, 0.0, x, 2, y, 1 );
76+
var v = dcusumpw( 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-
dcusumpw( N, 0.0, x1, -2, y1, 1 );
95+
dcusumpw( 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-
dcusumpw.ndarray( N, 0.0, x, 2, 1, y, -1, y.length-1 );
126+
dcusumpw.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

@@ -158,20 +149,14 @@ dcusumpw.ndarray( N, 0.0, x, 2, 1, y, -1, y.length-1 );
158149
<!-- eslint no-undef: "error" -->
159150

160151
```javascript
161-
var randu = require( '@stdlib/random/base/randu' );
162-
var round = require( '@stdlib/math/base/special/round' );
152+
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
153+
var filledarrayBy = require( '@stdlib/array/filled-by' );
163154
var Float64Array = require( '@stdlib/array/float64' );
164155
var dcusumpw = require( '@stdlib/blas/ext/base/dcusumpw' );
165156

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

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

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

Lines changed: 9 additions & 10 deletions
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 dcusumpw = require( './../lib/dcusumpw.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 dcusumpw = require( './../lib/dcusumpw.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/dcusumpw/benchmark/benchmark.native.js

Lines changed: 5 additions & 10 deletions
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 dcusumpw = tryRequire( resolve( __dirname, './../lib/dcusumpw.native.js' ) );
3638
var opts = {
3739
'skip': ( dcusumpw 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/dcusumpw/benchmark/benchmark.ndarray.js

Lines changed: 9 additions & 10 deletions
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 dcusumpw = 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 dcusumpw = 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/dcusumpw/benchmark/benchmark.ndarray.native.js

Lines changed: 5 additions & 10 deletions
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 dcusumpw = tryRequire( resolve( __dirname, './../lib/ndarray.native.js' ) );
3638
var opts = {
3739
'skip': ( dcusumpw 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/dcusumpw/docs/repl.txt

Lines changed: 6 additions & 8 deletions
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 pairwise summation.
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 pairwise summation and alternative indexing semantics.
@@ -112,8 +111,7 @@
112111
// Advanced indexing:
113112
> x = new {{alias:@stdlib/array/float64}}( [ 1.0, -2.0, 3.0, 2.0, 5.0, -1.0 ] );
114113
> y = new {{alias:@stdlib/array/float64}}( x.length );
115-
> var N = {{alias:@stdlib/math/base/special/floor}}( x.length / 2 );
116-
> {{alias}}.ndarray( N, 0.0, x, 2, 1, y, -1, y.length-1 )
114+
> {{alias}}.ndarray( 3, 0.0, x, 2, 1, y, -1, y.length-1 )
117115
<Float64Array>[ 0.0, 0.0, 0.0, -1.0, 0.0, -2.0 ]
118116

119117
See Also

0 commit comments

Comments
 (0)