Skip to content

Commit 9943604

Browse files
committed
Fix dapx implementation per maintainer review
- Add 'one-dimensional' to all descriptions - Use ndarray2array to show expected values - Remove dimension check from main function - Update TypeScript types to tuple syntax - Use getData instead of .data in tests - Remove uninformative test cases - Add VARIABLES section in benchmark - Use options parameterization - Change isnanf to isnan for double precision - Remove Notes section from README - Update all documentation with expected outputs
1 parent e9c2f87 commit 9943604

File tree

9 files changed

+59
-127
lines changed

9 files changed

+59
-127
lines changed

lib/node_modules/@stdlib/blas/ext/base/ndarray/dapx/README.md

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ limitations under the License.
2020

2121
# dapx
2222

23-
> Add a scalar constant to each element in a double-precision floating-point ndarray.
23+
> Add a scalar constant to each element in a one-dimensional double-precision floating-point ndarray.
2424
2525
<section class="usage">
2626

@@ -32,12 +32,13 @@ var dapx = require( '@stdlib/blas/ext/base/ndarray/dapx' );
3232

3333
#### dapx( arrays )
3434

35-
Adds a scalar constant to each element in a double-precision floating-point ndarray.
35+
Adds a scalar constant to each element in a one-dimensional double-precision floating-point ndarray.
3636

3737
```javascript
3838
var Float64Array = require( '@stdlib/array/float64' );
3939
var ndarray = require( '@stdlib/ndarray/ctor' );
4040
var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
41+
var ndarray2array = require( '@stdlib/ndarray/to-array' );
4142

4243
var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );
4344
var x = new ndarray( 'float64', xbuf, [ 4 ], [ 1 ], 0, 'row-major' );
@@ -51,13 +52,14 @@ var out = dapx( [ x, alpha ] );
5152

5253
var bool = ( out === x );
5354
// returns true
55+
56+
var arr = ndarray2array( out );
57+
// returns [ 6.0, 7.0, 8.0, 9.0 ]
5458
```
5559

5660
The function has the following parameters:
5761

58-
- **arrays**: array-like object containing an input ndarray and a zero-dimensional ndarray containing the scalar constant.
59-
60-
Note that indexing is relative to the first index. To introduce an offset, use [`ndarray`][@stdlib/ndarray/ctor] view creation.
62+
- **arrays**: array-like object containing a one-dimensional input ndarray and a zero-dimensional ndarray containing a scalar constant.
6163

6264
```javascript
6365
var Float64Array = require( '@stdlib/array/float64' );
@@ -69,11 +71,9 @@ var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0 ] );
6971

7072
// Create an ndarray view:
7173
var x = new ndarray( 'float64', xbuf, [ 3 ], [ 1 ], 2, 'row-major' );
72-
7374
var alpha = scalar2ndarray( 5.0, {
7475
'dtype': 'float64'
7576
});
76-
7777
var out = dapx( [ x, alpha ] );
7878
// returns <ndarray>
7979
```
@@ -82,16 +82,6 @@ var out = dapx( [ x, alpha ] );
8282

8383
<!-- /.usage -->
8484

85-
<section class="notes">
86-
87-
## Notes
88-
89-
- The function **mutates** the input ndarray.
90-
91-
</section>
92-
93-
<!-- /.notes -->
94-
9585
<section class="examples">
9686

9787
## Examples
@@ -102,22 +92,21 @@ var out = dapx( [ x, alpha ] );
10292
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
10393
var ndarray = require( '@stdlib/ndarray/ctor' );
10494
var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
95+
var ndarray2array = require( '@stdlib/ndarray/to-array' );
10596
var dapx = require( '@stdlib/blas/ext/base/ndarray/dapx' );
10697

10798
var xbuf = discreteUniform( 10, 0, 100, {
10899
'dtype': 'float64'
109100
});
110101
var x = new ndarray( 'float64', xbuf, [ 10 ], [ 1 ], 0, 'row-major' );
111-
112-
console.log( x.data );
102+
console.log( ndarray2array( x ) );
113103

114104
var alpha = scalar2ndarray( 5.0, {
115105
'dtype': 'float64'
116106
});
117107

118108
dapx( [ x, alpha ] );
119-
120-
console.log( x.data );
109+
console.log( ndarray2array( x ) );
121110
```
122111

123112
</section>
@@ -136,8 +125,6 @@ console.log( x.data );
136125

137126
<section class="links">
138127

139-
[@stdlib/ndarray/ctor]: https://github.com/stdlib-js/ndarray-ctor
140-
141128
</section>
142129

143130
<!-- /.links -->

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

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,21 @@
2222

2323
var bench = require( '@stdlib/bench' );
2424
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
25-
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
25+
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2626
var pow = require( '@stdlib/math/base/special/pow' );
2727
var ndarray = require( '@stdlib/ndarray/ctor' );
2828
var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
2929
var pkg = require( './../package.json' ).name;
3030
var dapx = require( './../lib' );
3131

3232

33+
// VARIABLES //
34+
35+
var options = {
36+
'dtype': 'float64'
37+
};
38+
39+
3340
// FUNCTIONS //
3441

3542
/**
@@ -44,13 +51,9 @@ function createBenchmark( len ) {
4451
var xbuf;
4552
var x;
4653

47-
xbuf = discreteUniform( len, -100, 100, {
48-
'dtype': 'float64'
49-
});
50-
x = new ndarray( 'float64', xbuf, [ len ], [ 1 ], 0, 'row-major' );
51-
alpha = scalar2ndarray( 5.0, {
52-
'dtype': 'float64'
53-
});
54+
xbuf = discreteUniform( len, -100, 100, options );
55+
x = new ndarray( options.dtype, xbuf, [ len ], [ 1 ], 0, 'row-major' );
56+
alpha = scalar2ndarray( 5.0, options );
5457

5558
return benchmark;
5659

@@ -67,12 +70,12 @@ function createBenchmark( len ) {
6770
b.tic();
6871
for ( i = 0; i < b.iterations; i++ ) {
6972
z = dapx( [ x, alpha ] );
70-
if ( isnanf( z.data[ i % len ] ) ) {
73+
if ( isnan( z.data[ i % len ] ) ) {
7174
b.fail( 'should not return NaN' );
7275
}
7376
}
7477
b.toc();
75-
if ( isnanf( z.data[ i % len ] ) ) {
78+
if ( isnan( z.data[ i % len ] ) ) {
7679
b.fail( 'should not return NaN' );
7780
}
7881
b.pass( 'benchmark finished' );

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

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
{{alias}}( arrays )
2-
3-
Adds a scalar constant to each element in a double-precision floating-
4-
point ndarray.
2+
Adds a scalar constant to each element in a one-dimensional double-
3+
precision floating-point ndarray.
54

65
Parameters
76
----------
87
arrays: ArrayLikeObject<ndarray>
9-
Array-like object containing an input ndarray and a zero-dimensional
10-
ndarray containing the scalar constant.
8+
Array-like object containing a one-dimensional input ndarray and a
9+
zero-dimensional ndarray containing a scalar constant.
1110

1211
Returns
1312
-------
@@ -21,6 +20,8 @@
2120
> var alpha = {{alias:@stdlib/ndarray/from-scalar}}( 5.0, { 'dtype': 'float64' } );
2221
> {{alias}}( [ x, alpha ] )
2322
<ndarray>
23+
> var data = x.data
24+
<Float64Array>[ 6.0, 7.0, 8.0, 9.0 ]
2425

2526
See Also
2627
--------

lib/node_modules/@stdlib/blas/ext/base/ndarray/dapx/docs/types/index.d.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,16 @@
2323
import { float64ndarray } from '@stdlib/types/ndarray';
2424

2525
/**
26-
* Adds a scalar constant to each element in a double-precision floating-point ndarray.
26+
* Adds a scalar constant to each element in a one-dimensional double-precision floating-point ndarray.
2727
*
28-
* @param arrays - array-like object containing an input ndarray and a zero-dimensional ndarray containing the scalar constant
28+
* @param arrays - array-like object containing a one-dimensional input ndarray and a zero-dimensional ndarray containing a scalar constant
2929
* @returns input ndarray
3030
*
3131
* @example
3232
* var Float64Array = require( '@stdlib/array/float64' );
3333
* var ndarray = require( '@stdlib/ndarray/ctor' );
3434
* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
35+
* var ndarray2array = require( '@stdlib/ndarray/to-array' );
3536
*
3637
* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );
3738
* var x = new ndarray( 'float64', xbuf, [ 4 ], [ 1 ], 0, 'row-major' );
@@ -42,8 +43,11 @@ import { float64ndarray } from '@stdlib/types/ndarray';
4243
*
4344
* var out = dapx( [ x, alpha ] );
4445
* // returns <ndarray>
46+
*
47+
* var arr = ndarray2array( out );
48+
* // returns [ 6.0, 7.0, 8.0, 9.0 ]
4549
*/
46-
declare function dapx( arrays: ArrayLike<float64ndarray> ): float64ndarray;
50+
declare function dapx( arrays: [ float64ndarray, float64ndarray ] ): float64ndarray;
4751

4852

4953
// EXPORTS //

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,18 @@
2121
var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
2222
var ndarray = require( '@stdlib/ndarray/ctor' );
2323
var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
24+
var ndarray2array = require( '@stdlib/ndarray/to-array' );
2425
var dapx = require( './../lib' );
2526

2627
var xbuf = discreteUniform( 10, 0, 100, {
2728
'dtype': 'float64'
2829
});
2930
var x = new ndarray( 'float64', xbuf, [ 10 ], [ 1 ], 0, 'row-major' );
30-
31-
console.log( x.data );
31+
console.log( ndarray2array( x ) );
3232

3333
var alpha = scalar2ndarray( 5.0, {
3434
'dtype': 'float64'
3535
});
3636

3737
dapx( [ x, alpha ] );
38-
39-
console.log( x.data );
38+
console.log( ndarray2array( x ) );

lib/node_modules/@stdlib/blas/ext/base/ndarray/dapx/lib/index.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,15 @@
1919
'use strict';
2020

2121
/**
22-
* Add a scalar constant to each element in a double-precision floating-point ndarray.
22+
* Add a scalar constant to each element in a one-dimensional double-precision floating-point ndarray.
2323
*
2424
* @module @stdlib/blas/ext/base/ndarray/dapx
2525
*
2626
* @example
2727
* var Float64Array = require( '@stdlib/array/float64' );
2828
* var ndarray = require( '@stdlib/ndarray/ctor' );
2929
* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
30+
* var ndarray2array = require( '@stdlib/ndarray/to-array' );
3031
* var dapx = require( '@stdlib/blas/ext/base/ndarray/dapx' );
3132
*
3233
* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );
@@ -38,6 +39,9 @@
3839
*
3940
* var out = dapx( [ x, alpha ] );
4041
* // returns <ndarray>
42+
*
43+
* var arr = ndarray2array( out );
44+
* // returns [ 6.0, 7.0, 8.0, 9.0 ]
4145
*/
4246

4347
// MODULES //

lib/node_modules/@stdlib/blas/ext/base/ndarray/dapx/lib/main.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,16 @@ var ndarraylike2scalar = require( '@stdlib/ndarray/base/ndarraylike2scalar' );
3131
// MAIN //
3232

3333
/**
34-
* Adds a scalar constant to each element in a double-precision floating-point ndarray.
34+
* Adds a scalar constant to each element in a one-dimensional double-precision floating-point ndarray.
3535
*
36-
* @param {ArrayLikeObject<Object>} arrays - array-like object containing an input ndarray and a zero-dimensional ndarray containing the scalar constant
37-
* @returns {Object} input ndarray
36+
* @param {ArrayLikeObject<Object>} arrays - array-like object containing a one-dimensional input ndarray and a zero-dimensional ndarray containing a scalar constant
37+
* @returns {ndarray} input ndarray
3838
*
3939
* @example
4040
* var Float64Array = require( '@stdlib/array/float64' );
4141
* var ndarray = require( '@stdlib/ndarray/ctor' );
4242
* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
43+
* var ndarray2array = require( '@stdlib/ndarray/to-array' );
4344
*
4445
* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );
4546
* var x = new ndarray( 'float64', xbuf, [ 4 ], [ 1 ], 0, 'row-major' );
@@ -50,13 +51,13 @@ var ndarraylike2scalar = require( '@stdlib/ndarray/base/ndarraylike2scalar' );
5051
*
5152
* var out = dapx( [ x, alpha ] );
5253
* // returns <ndarray>
54+
*
55+
* var arr = ndarray2array( out );
56+
* // returns [ 6.0, 7.0, 8.0, 9.0 ]
5357
*/
5458
function dapx( arrays ) {
5559
var x = arrays[ 0 ];
5660

57-
if ( numelDimension( x, 0 ) <= 0 ) {
58-
return x;
59-
}
6061
strided( numelDimension( x, 0 ), ndarraylike2scalar( arrays[ 1 ] ), getData( x ), getStride( x, 0 ), getOffset( x ) ); // eslint-disable-line max-len
6162
return x;
6263
}

lib/node_modules/@stdlib/blas/ext/base/ndarray/dapx/package.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@stdlib/blas/ext/base/ndarray/dapx",
33
"version": "0.0.0",
4-
"description": "Add a scalar constant to each element in a double-precision floating-point ndarray.",
4+
"description": "Add a scalar constant to each element in a one-dimensional double-precision floating-point ndarray.",
55
"license": "Apache-2.0",
66
"author": {
77
"name": "The Stdlib Authors",
@@ -64,10 +64,8 @@
6464
"array",
6565
"multidimensional",
6666
"add",
67-
"constant",
6867
"plus",
6968
"increment",
70-
"augment",
7169
"float64",
7270
"double",
7371
"float64array"

0 commit comments

Comments
 (0)