Skip to content

Commit e2b82b5

Browse files
committed
chore: apply suggestions from review
--- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown_pkg_readmes status: passed - task: lint_markdown_docs status: na - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: passed - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: passed - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: passed - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: passed - task: lint_license_headers status: passed ---
1 parent 8b84c43 commit e2b82b5

9 files changed

Lines changed: 196 additions & 147 deletions

File tree

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

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,25 +36,35 @@ limitations under the License.
3636
var saxpb = require( '@stdlib/blas/ext/base/ndarray/saxpb' );
3737
```
3838

39-
#### saxpb( alpha, beta, arrays )
39+
#### saxpb( arrays )
4040

41-
Multiplies each element in a one-dimensional single-precision floating-point ndarray by a scalar constant `alpha` and adds a scalar constant `beta` to each result.
41+
Multiplies each element in a one-dimensional single-precision floating-point ndarray by a scalar constant and adds a scalar constant to each result.
4242

4343
```javascript
4444
var Float32Vector = require( '@stdlib/ndarray/vector/float32' );
45+
var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
4546

4647
var x = new Float32Vector( [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ] );
47-
// returns <ndarray>[ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ]
4848

49-
saxpb( 5.0, 3.0, [ x ] );
49+
var alpha = scalar2ndarray( 5.0, {
50+
'dtype': 'float32'
51+
});
52+
53+
var beta = scalar2ndarray( 3.0, {
54+
'dtype': 'float32'
55+
});
56+
57+
saxpb( [ x, alpha, beta ] );
5058
// x => <ndarray>[ -7.0, 8.0, 18.0, -22.0, 23.0, 3.0, -2.0, -12.0 ]
5159
```
5260

5361
The function has the following parameters:
5462

55-
- **alpha**: first scalar constant.
56-
- **beta**: second scalar constant.
57-
- **arrays**: array-like object containing a one-dimensional input ndarray.
63+
- **arrays**: array-like object containing the following ndarrays:
64+
65+
- a one-dimensional input ndarray.
66+
- a zero-dimensional ndarray containing the scalar constant to multiply.
67+
- a zero-dimensional ndarray containing the scalar constant to add.
5868

5969
</section>
6070

@@ -78,16 +88,25 @@ The function has the following parameters:
7888

7989
```javascript
8090
var discreteUniform = require( '@stdlib/random/discrete-uniform' );
91+
var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
8192
var ndarray2array = require( '@stdlib/ndarray/to-array' );
93+
var ndarraylike2scalar = require( '@stdlib/ndarray/base/ndarraylike2scalar' );
8294
var saxpb = require( '@stdlib/blas/ext/base/ndarray/saxpb' );
8395

8496
var opts = {
8597
'dtype': 'float32'
8698
};
99+
87100
var x = discreteUniform( [ 10 ], -100, 100, opts );
88101
console.log( ndarray2array( x ) );
89102

90-
saxpb( 5.0, 3.0, [ x ] );
103+
var alpha = scalar2ndarray( 5.0, opts );
104+
console.log( 'Alpha: %d', ndarraylike2scalar( alpha ) );
105+
106+
var beta = scalar2ndarray( 3.0, opts );
107+
console.log( 'Beta: %d', ndarraylike2scalar( beta ) );
108+
109+
saxpb( [ x, alpha, beta ] );
91110
console.log( ndarray2array( x ) );
92111
```
93112

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

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,21 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var Float32Vector = require( '@stdlib/ndarray/vector/float32' );
24+
var uniform = require( '@stdlib/random/uniform' );
25+
var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
2526
var pow = require( '@stdlib/math/base/special/pow' );
2627
var format = require( '@stdlib/string/format' );
2728
var pkg = require( './../package.json' ).name;
2829
var saxpb = require( './../lib' );
2930

3031

32+
// VARIABLES //
33+
34+
var options = {
35+
'dtype': 'float32'
36+
};
37+
38+
3139
// FUNCTIONS //
3240

3341
/**
@@ -38,7 +46,13 @@ var saxpb = require( './../lib' );
3846
* @returns {Function} benchmark function
3947
*/
4048
function createBenchmark( len ) {
41-
var x = new Float32Vector( len );
49+
var alpha;
50+
var beta;
51+
var x;
52+
53+
x = uniform( [ len ], -100.0, 100.0, options );
54+
alpha = scalar2ndarray( 5.0, options );
55+
beta = scalar2ndarray( 3.0, options );
4256
return benchmark;
4357

4458
/**
@@ -53,7 +67,7 @@ function createBenchmark( len ) {
5367

5468
b.tic();
5569
for ( i = 0; i < b.iterations; i++ ) {
56-
out = saxpb( 5.0, 3.0, [ x ] );
70+
out = saxpb( [ x, alpha, beta ] );
5771
if ( typeof out !== 'object' ) {
5872
b.fail( 'should return an ndarray' );
5973
}

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

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
{{alias}}( alpha, beta, arrays )
2+
{{alias}}( arrays )
33
Multiplies each element in a one-dimensional single-precision floating-point
44
ndarray by a scalar constant and adds a scalar constant to each result.
55

@@ -8,14 +8,12 @@
88

99
Parameters
1010
----------
11-
alpha: number
12-
First scalar constant.
13-
14-
beta: number
15-
Second scalar constant.
16-
1711
arrays: ArrayLikeObject<ndarray>
18-
Array-like object containing a one-dimensional input ndarray.
12+
Array-like object containing the following ndarrays:
13+
14+
- a one-dimensional input ndarray.
15+
- a zero-dimensional ndarray containing the scalar constant to multiply.
16+
- a zero-dimensional ndarray containing the scalar constant to add.
1917

2018
Returns
2119
-------
@@ -26,7 +24,10 @@
2624
--------
2725
> var buf = [ -2.0, 1.0, 3.0, -5.0 ];
2826
> var x = new {{alias:@stdlib/ndarray/vector/float32}}( buf );
29-
> {{alias}}( 5.0, 3.0, [ x ] )
27+
> var opts = { 'dtype': 'float32' };
28+
> var alpha = {{alias:@stdlib/ndarray/from-scalar}}( 5.0, opts );
29+
> var beta = {{alias:@stdlib/ndarray/from-scalar}}( 3.0, opts );
30+
> {{alias}}( [ x, alpha, beta ] )
3031
<ndarray>[ -7.0, 8.0, 18.0, -22.0 ]
3132

3233
See Also

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

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
/// <reference types="@stdlib/types"/>
2222

23-
import { float32ndarray } from '@stdlib/types/ndarray';
23+
import { float32ndarray, typedndarray } from '@stdlib/types/ndarray';
2424

2525
/**
2626
* Multiplies each element in a one-dimensional single-precision floating-point ndarray by a scalar constant and adds a scalar constant to each result.
@@ -30,22 +30,30 @@ import { float32ndarray } from '@stdlib/types/ndarray';
3030
* - The function expects the following ndarrays:
3131
*
3232
* - a one-dimensional input ndarray.
33+
* - a zero-dimensional ndarray containing the scalar constant to multiply.
34+
* - a zero-dimensional ndarray containing the scalar constant to add.
3335
*
34-
* @param alpha - first scalar constant
35-
* @param beta - second scalar constant
36-
* @param arrays - array-like object containing a one-dimensional input ndarray
36+
* @param arrays - array-like object containing ndarrays
3737
* @returns input ndarray
3838
*
3939
* @example
4040
* var Float32Vector = require( '@stdlib/ndarray/vector/float32' );
41+
* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
4142
*
4243
* var x = new Float32Vector( [ -2.0, 1.0, 3.0, -5.0 ] );
43-
* // returns <ndarray>[ -2.0, 1.0, 3.0, -5.0 ]
4444
*
45-
* var out = saxpb( 5.0, 3.0, [ x ] );
45+
* var alpha = scalar2ndarray( 5.0, {
46+
* 'dtype': 'float32'
47+
* });
48+
*
49+
* var beta = scalar2ndarray( 3.0, {
50+
* 'dtype': 'float32'
51+
* });
52+
*
53+
* var out = saxpb( [ x, alpha, beta ] );
4654
* // returns <ndarray>[ -7.0, 8.0, 18.0, -22.0 ]
4755
*/
48-
declare function saxpb( alpha: number, beta: number, arrays: [ float32ndarray ] ): float32ndarray;
56+
declare function saxpb( arrays: [ float32ndarray, typedndarray<number>, typedndarray<number> ] ): float32ndarray;
4957

5058

5159
// EXPORTS //

lib/node_modules/@stdlib/blas/ext/base/ndarray/saxpb/docs/types/test.ts

Lines changed: 35 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -16,62 +16,55 @@
1616
* limitations under the License.
1717
*/
1818

19-
import Float32Vector = require( '@stdlib/ndarray/vector/float32' );
19+
/* eslint-disable space-in-parens */
20+
21+
import zeros = require( '@stdlib/ndarray/zeros' );
22+
import scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
2023
import saxpb = require( './index' );
2124

2225

2326
// TESTS //
2427

2528
// The function returns an ndarray...
2629
{
27-
const x = new Float32Vector( [ -2.0, 1.0, 3.0, -5.0 ] );
28-
saxpb( 5.0, 3.0, [ x ] ); // $ExpectType float32ndarray
29-
}
30+
const x = zeros( [ 10 ], {
31+
'dtype': 'float32'
32+
});
33+
const alpha = scalar2ndarray( 5.0, {
34+
'dtype': 'float32'
35+
});
36+
const beta = scalar2ndarray( 3.0, {
37+
'dtype': 'float32'
38+
});
3039

31-
// The compiler throws an error if the function is provided a first argument which is not a number...
32-
{
33-
const x = new Float32Vector( [ -2.0, 1.0, 3.0, -5.0 ] );
34-
saxpb( '5', 3.0, [ x ] ); // $ExpectError
35-
saxpb( true, 3.0, [ x ] ); // $ExpectError
36-
saxpb( false, 3.0, [ x ] ); // $ExpectError
37-
saxpb( null, 3.0, [ x ] ); // $ExpectError
38-
saxpb( undefined, 3.0, [ x ] ); // $ExpectError
39-
saxpb( [], 3.0, [ x ] ); // $ExpectError
40-
saxpb( {}, 3.0, [ x ] ); // $ExpectError
41-
saxpb( ( x: number ): number => x, 3.0, [ x ] ); // $ExpectError
40+
saxpb( [ x, alpha, beta ] ); // $ExpectType float32ndarray
4241
}
4342

44-
// The compiler throws an error if the function is provided a second argument which is not a number...
43+
// The compiler throws an error if the function is provided a first argument which is not an array of ndarrays...
4544
{
46-
const x = new Float32Vector( [ -2.0, 1.0, 3.0, -5.0 ] );
47-
saxpb( 5.0, '3', [ x ] ); // $ExpectError
48-
saxpb( 5.0, true, [ x ] ); // $ExpectError
49-
saxpb( 5.0, false, [ x ] ); // $ExpectError
50-
saxpb( 5.0, null, [ x ] ); // $ExpectError
51-
saxpb( 5.0, undefined, [ x ] ); // $ExpectError
52-
saxpb( 5.0, [], [ x ] ); // $ExpectError
53-
saxpb( 5.0, {}, [ x ] ); // $ExpectError
54-
saxpb( 5.0, ( x: number ): number => x, [ x ] ); // $ExpectError
55-
}
56-
57-
// The compiler throws an error if the function is provided a third argument which is not an array of ndarrays...
58-
{
59-
saxpb( 5.0, 3.0, '10' ); // $ExpectError
60-
saxpb( 5.0, 3.0, 5 ); // $ExpectError
61-
saxpb( 5.0, 3.0, true ); // $ExpectError
62-
saxpb( 5.0, 3.0, false ); // $ExpectError
63-
saxpb( 5.0, 3.0, null ); // $ExpectError
64-
saxpb( 5.0, 3.0, undefined ); // $ExpectError
65-
saxpb( 5.0, 3.0, [] ); // $ExpectError
66-
saxpb( 5.0, 3.0, {} ); // $ExpectError
67-
saxpb( 5.0, 3.0, ( x: number ): number => x ); // $ExpectError
45+
saxpb( '10' ); // $ExpectError
46+
saxpb( 5 ); // $ExpectError
47+
saxpb( true ); // $ExpectError
48+
saxpb( false ); // $ExpectError
49+
saxpb( null ); // $ExpectError
50+
saxpb( undefined ); // $ExpectError
51+
saxpb( [] ); // $ExpectError
52+
saxpb( {} ); // $ExpectError
53+
saxpb( ( x: number ): number => x ); // $ExpectError
6854
}
6955

7056
// The compiler throws an error if the function is provided an unsupported number of arguments...
7157
{
72-
const x = new Float32Vector( [ -2.0, 1.0, 3.0, -5.0 ] );
58+
const x = zeros( [ 10 ], {
59+
'dtype': 'float32'
60+
});
61+
const alpha = scalar2ndarray( 5.0, {
62+
'dtype': 'float32'
63+
});
64+
const beta = scalar2ndarray( 3.0, {
65+
'dtype': 'float32'
66+
});
67+
7368
saxpb(); // $ExpectError
74-
saxpb( 5.0 ); // $ExpectError
75-
saxpb( 5.0, 3.0 ); // $ExpectError
76-
saxpb( 5.0, 3.0, [ x ], {} ); // $ExpectError
69+
saxpb( [ x, alpha, beta ], {} ); // $ExpectError
7770
}

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

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

2121
var discreteUniform = require( '@stdlib/random/discrete-uniform' );
22+
var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
2223
var ndarray2array = require( '@stdlib/ndarray/to-array' );
24+
var ndarraylike2scalar = require( '@stdlib/ndarray/base/ndarraylike2scalar' );
2325
var saxpb = require( './../lib' );
2426

2527
var opts = {
2628
'dtype': 'float32'
2729
};
30+
2831
var x = discreteUniform( [ 10 ], -100, 100, opts );
2932
console.log( ndarray2array( x ) );
3033

31-
saxpb( 5.0, 3.0, [ x ] );
34+
var alpha = scalar2ndarray( 5.0, opts );
35+
console.log( 'Alpha: %d', ndarraylike2scalar( alpha ) );
36+
37+
var beta = scalar2ndarray( 3.0, opts );
38+
console.log( 'Beta: %d', ndarraylike2scalar( beta ) );
39+
40+
saxpb( [ x, alpha, beta ] );
3241
console.log( ndarray2array( x ) );

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

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,20 @@
2525
*
2626
* @example
2727
* var Float32Vector = require( '@stdlib/ndarray/vector/float32' );
28+
* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
2829
* var saxpb = require( '@stdlib/blas/ext/base/ndarray/saxpb' );
2930
*
3031
* var x = new Float32Vector( [ -2.0, 1.0, 3.0, -5.0 ] );
31-
* // returns <ndarray>[ -2.0, 1.0, 3.0, -5.0 ]
3232
*
33-
* var out = saxpb( 5.0, 3.0, [ x ] );
33+
* var alpha = scalar2ndarray( 5.0, {
34+
* 'dtype': 'float32'
35+
* });
36+
*
37+
* var beta = scalar2ndarray( 3.0, {
38+
* 'dtype': 'float32'
39+
* });
40+
*
41+
* var out = saxpb( [ x, alpha, beta ] );
3442
* // returns <ndarray>[ -7.0, 8.0, 18.0, -22.0 ]
3543
*/
3644

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

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ var getStride = require( '@stdlib/ndarray/base/stride' );
2525
var getOffset = require( '@stdlib/ndarray/base/offset' );
2626
var getData = require( '@stdlib/ndarray/base/data-buffer' );
2727
var strided = require( '@stdlib/blas/ext/base/saxpb' ).ndarray;
28+
var ndarraylike2scalar = require( '@stdlib/ndarray/base/ndarraylike2scalar' );
2829

2930

3031
// MAIN //
@@ -37,23 +38,37 @@ var strided = require( '@stdlib/blas/ext/base/saxpb' ).ndarray;
3738
* - The function expects the following ndarrays:
3839
*
3940
* - a one-dimensional input ndarray.
41+
* - a zero-dimensional ndarray containing the scalar constant to multiply.
42+
* - a zero-dimensional ndarray containing the scalar constant to add.
4043
*
41-
* @param {number} alpha - first scalar constant
42-
* @param {number} beta - second scalar constant
4344
* @param {ArrayLikeObject<Object>} arrays - array-like object containing ndarrays
4445
* @returns {ndarray} input ndarray
4546
*
4647
* @example
4748
* var Float32Vector = require( '@stdlib/ndarray/vector/float32' );
49+
* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );
4850
*
4951
* var x = new Float32Vector( [ -2.0, 1.0, 3.0, -5.0 ] );
50-
* // returns <ndarray>[ -2.0, 1.0, 3.0, -5.0 ]
5152
*
52-
* var out = saxpb( 5.0, 3.0, [ x ] );
53+
* var alpha = scalar2ndarray( 5.0, {
54+
* 'dtype': 'float32'
55+
* });
56+
*
57+
* var beta = scalar2ndarray( 3.0, {
58+
* 'dtype': 'float32'
59+
* });
60+
*
61+
* var out = saxpb( [ x, alpha, beta ] );
5362
* // returns <ndarray>[ -7.0, 8.0, 18.0, -22.0 ]
5463
*/
55-
function saxpb( alpha, beta, arrays ) {
56-
var x = arrays[ 0 ];
64+
function saxpb( arrays ) {
65+
var alpha;
66+
var beta;
67+
var x;
68+
69+
x = arrays[ 0 ];
70+
alpha = ndarraylike2scalar( arrays[ 1 ] );
71+
beta = ndarraylike2scalar( arrays[ 2 ] );
5772
strided( numelDimension( x, 0 ), alpha, beta, getData( x ), getStride( x, 0 ), getOffset( x ) ); // eslint-disable-line max-len
5873
return x;
5974
}

0 commit comments

Comments
 (0)