Skip to content

Commit bc93f68

Browse files
committed
refactor: apply suggestions from code 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 status: passed - 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: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - 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: na - task: lint_license_headers status: passed --- --- type: pre_push_report description: Results of running various checks prior to pushing changes. report: - task: run_javascript_examples status: na - task: run_c_examples status: na - task: run_cpp_examples status: na - task: run_javascript_readme_examples status: passed - task: run_c_benchmarks status: na - task: run_cpp_benchmarks status: na - task: run_fortran_benchmarks status: na - task: run_javascript_benchmarks status: na - task: run_julia_benchmarks status: na - task: run_python_benchmarks status: na - task: run_r_benchmarks status: na - task: run_javascript_tests status: passed ---
1 parent 2ea05a5 commit bc93f68

File tree

7 files changed

+82
-150
lines changed

7 files changed

+82
-150
lines changed

lib/node_modules/@stdlib/array/base/map/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ The callback function is provided the following arguments:
8989
- **index**: current element index.
9090
- **arr**: input array.
9191

92-
#### map.assign( x, y, fcn\[, thisArg] )
92+
#### map.assign( x, y, strideX, offsetX, fcn\[, thisArg] )
9393

9494
Applies a callback function to elements in an input array and assigns results to elements in an output array.
9595

@@ -102,7 +102,7 @@ var x = [ -1.0, -2.0, -3.0, -4.0 ];
102102

103103
var y = zeros( x.length );
104104

105-
var out = map.assign( x, y, naryFunction( abs, 1 ) );
105+
var out = map.assign( x, y, 1, 0, naryFunction( abs, 1 ) );
106106
// returns [ 1.0, 2.0, 3.0, 4.0 ]
107107

108108
var bool = ( out === y );
@@ -113,6 +113,8 @@ The function accepts the following arguments:
113113

114114
- **x**: input array.
115115
- **y**: output array.
116+
- **strideX**: stride length for x.
117+
- **offsetX**: starting index for x.
116118
- **fcn**: callback function.
117119
- **thisArg**: callback execution context (_optional_).
118120

lib/node_modules/@stdlib/array/base/map/docs/repl.txt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
{{alias}}( x, fcn[, thisArg] )
23
Applies a callback function to elements in an input array and assigns
34
results to elements in a new output array.
@@ -37,7 +38,7 @@
3738
[ 1, 2, 3, 4 ]
3839

3940

40-
{{alias}}.assign( x, y, fcn[, thisArg] )
41+
{{alias}}.assign( x, y, strideX, offsetX, fcn[, thisArg] )
4142
Applies a callback function to elements in an input array and assigns
4243
results to elements in an output array.
4344

@@ -49,6 +50,12 @@
4950
y: Array|TypedArray|Object
5051
Output array.
5152

53+
strideX: integer
54+
Stride length for x.
55+
56+
offsetX: integer
57+
Starting index for x.
58+
5259
fcn: Function
5360
Callback function.
5461

@@ -64,7 +71,7 @@
6471
--------
6572
> var x = [ -1, -2, -3, -4 ];
6673
> var y = [ 0, 0, 0, 0 ];
67-
> var out = {{alias}}.assign( x, y, {{alias:@stdlib/math/base/special/abs}} )
74+
> var out = {{alias}}.assign( x, y, 1, 0, {{alias:@stdlib/math/base/special/abs}} )
6875
[ 1, 2, 3, 4 ]
6976
> var bool = ( out === y )
7077
true

lib/node_modules/@stdlib/array/base/map/docs/types/index.d.ts

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -73,56 +73,57 @@ interface Routine {
7373
/**
7474
* Applies a callback function to elements in an input array and assigns results to elements in a new output array.
7575
*
76-
* @param x - input array
76+
* @param x - input array object
7777
* @param fcn - callback function
7878
* @param thisArg - callback execution context
7979
* @returns output array
8080
*
8181
* @example
82+
* var toAccessorArray = require( '@stdlib/array/to-accessor-array' );
8283
* var ones = require( '@stdlib/array/base/ones' );
8384
*
8485
* function scale( v ) {
85-
* return v * 10;
86+
* return v * 10.0;
8687
* }
8788
*
8889
* var x = ones( 4 );
89-
* var y = map( x, scale );
90-
* // returns [ 10, 10, 10, 10 ]
90+
* var y = map( toAccessorArray( x ), scale );
91+
* // returns [ 10.0, 10.0, 10.0, 10.0 ]
9192
*/
92-
<T = unknown, U = unknown, V = unknown>( x: Collection<T>, fcn: Callback<T, U, V>, thisArg?: ThisParameterType<Callback<T, U, V>> ): Collection<U>;
93+
<T = unknown, U = unknown, V = unknown>( x: AccessorArrayLike<T>, fcn: Callback<T, U, V>, thisArg?: ThisParameterType<Callback<T, U, V>> ): AccessorArrayLike<U>;
9394

9495
/**
9596
* Applies a callback function to elements in an input array and assigns results to elements in a new output array.
9697
*
97-
* @param x - input array object
98+
* @param x - input array
9899
* @param fcn - callback function
99100
* @param thisArg - callback execution context
100-
* @returns output array object
101+
* @returns output array
101102
*
102103
* @example
103-
* var toAccessorArray = require( '@stdlib/array/to-accessor-array' );
104104
* var ones = require( '@stdlib/array/base/ones' );
105105
*
106106
* function scale( v ) {
107-
* return v * 10;
107+
* return v * 10.0;
108108
* }
109109
*
110-
* var x = toAccessorArray( ones( 4 ) );
110+
* var x = ones( 4 );
111111
* var y = map( x, scale );
112-
* // returns {...}
112+
* // returns [ 10.0, 10.0, 10.0, 10.0 ]
113113
*/
114-
<T = unknown, U = unknown, V = unknown>( x: AccessorArrayLike<T>, fcn: Callback<T, U, V>, thisArg?: ThisParameterType<Callback<T, U, V>> ): AccessorArrayLike<U>;
114+
<T = unknown, U = unknown, V = unknown>( x: Collection<T>, fcn: Callback<T, U, V>, thisArg?: ThisParameterType<Callback<T, U, V>> ): Collection<U>;
115115

116116
/**
117117
* Applies a callback function to elements in an input array and assigns results to elements in an output array.
118118
*
119-
* @param x - input array
120-
* @param y - output array
119+
* @param x - input array object
120+
* @param y - output array object
121121
* @param fcn - callback function
122122
* @param thisArg - callback execution context
123-
* @returns output array
123+
* @returns output array object
124124
*
125125
* @example
126+
* var toAccessorArray = require( '@stdlib/array/to-accessor-array' );
126127
* var ones = require( '@stdlib/array/base/ones' );
127128
* var zeros = require( '@stdlib/array/base/zeros' );
128129
*
@@ -132,13 +133,10 @@ interface Routine {
132133
* var x = ones( 4 );
133134
* var y = zeros( x.length );
134135
*
135-
* var out = map.assign( x, y, scale );
136-
* // returns [ 10, 10, 10, 10 ]
137-
*
138-
* var bool = ( out === y );
139-
* // returns true
136+
* var out = map.assign( toAccessorArray( x ), toAccessorArray( y ), scale );
137+
* // y => [ 10, 10, 10, 10 ]
140138
*/
141-
assign<T = unknown, U = unknown, V = unknown>( x: Collection<T>, y: Collection<U>, fcn: Callback<T, U, V>, thisArg?: ThisParameterType<Callback<T, U, V>> ): Collection<U>;
139+
assign<T = unknown, U = unknown, V = unknown>( x: AccessorArrayLike<T>, y: AccessorArrayLike<U>, fcn: Callback<T, U, V>, thisArg?: ThisParameterType<Callback<T, U, V>> ): AccessorArrayLike<U>;
142140

143141
/**
144142
* Applies a callback function to elements in an input array and assigns results to elements in an output array.
@@ -150,23 +148,22 @@ interface Routine {
150148
* @returns output array
151149
*
152150
* @example
153-
* var toAccessorArray = require( '@stdlib/array/to-accessor-array' );
154151
* var ones = require( '@stdlib/array/base/ones' );
155152
* var zeros = require( '@stdlib/array/base/zeros' );
156153
*
157154
* function scale( v ) {
158155
* return v * 10;
159156
* }
160-
* var x = toAccessorArray( ones( 4 ) );
161-
* var y = toAccessorArray( zeros( x.length ) );
157+
* var x = ones( 4 );
158+
* var y = zeros( x.length );
162159
*
163160
* var out = map.assign( x, y, scale );
164-
* // returns {...}
161+
* // returns [ 10, 10, 10, 10 ]
165162
*
166163
* var bool = ( out === y );
167164
* // returns true
168165
*/
169-
assign<T = unknown, U = unknown, V = unknown>( x: AccessorArrayLike<T>, y: AccessorArrayLike<U>, fcn: Callback<T, U, V>, thisArg?: ThisParameterType<Callback<T, U, V>> ): AccessorArrayLike<U>;
166+
assign<T = unknown, U = unknown, V = unknown>( x: Collection<T>, y: Collection<U>, fcn: Callback<T, U, V>, thisArg?: ThisParameterType<Callback<T, U, V>> ): Collection<U>;
170167
}
171168

172169
/**
@@ -197,14 +194,11 @@ interface Routine {
197194
* return v * 10;
198195
* }
199196
*
200-
* var x = toAccessorArray( ones( 4 ) );
201-
* var y = toAccessorArray( zeros( x.length ) );
202-
*
203-
* var out = map.assign( x, y, scale );
204-
* // returns {...}
197+
* var x = ones( 4 );
198+
* var y = zeros( x.length );
205199
*
206-
* var bool = ( out === y );
207-
* // returns true
200+
* var out = map.assign( toAccessorArray( x ), toAccessorArray( y ), scale );
201+
* // y => [ 10, 10, 10, 10 ]
208202
*/
209203
declare var map: Routine;
210204

lib/node_modules/@stdlib/array/base/map/lib/assign.js

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ var arraylike2object = require( '@stdlib/array/base/arraylike2object' );
3131
* @private
3232
* @param {Collection} x - input array
3333
* @param {Collection} y - output array
34+
* @param {integer} strideX - stride length for x
35+
* @param {NonNegativeInteger} offsetX - starting index for x
3436
* @param {Function} fcn - callback function
3537
* @param {*} thisArg - callback execution context
3638
* @returns {Collection} output array
@@ -45,16 +47,20 @@ var arraylike2object = require( '@stdlib/array/base/arraylike2object' );
4547
*
4648
* var x = ones( 4 );
4749
* var y = zeros( x.length );
48-
* var out = internal( x, y, scale );
50+
* var out = internal( x, y, 1, 0, scale );
4951
* // returns [ 10.0, 10.0, 10.0, 10.0 ]
5052
*
5153
* var bool = ( out === y );
5254
* // returns true
5355
*/
54-
function internal( x, y, fcn, thisArg ) {
56+
function internal( x, y, strideX, offsetX, fcn, thisArg ) {
57+
var ix;
5558
var i;
56-
for ( i = 0; i < x.length; i++ ) {
57-
y[ i ] = fcn.call( thisArg, x[ i ], i, x );
59+
60+
ix = offsetX;
61+
for ( i = 0; i < y.length; i++ ) {
62+
y[ i ] = fcn.call( thisArg, x[ ix ], ix, x );
63+
ix += strideX;
5864
}
5965
return y;
6066
}
@@ -65,6 +71,8 @@ function internal( x, y, fcn, thisArg ) {
6571
* @private
6672
* @param {Object} x - input array object
6773
* @param {Object} y - output array object
74+
* @param {integer} strideX - stride length for x
75+
* @param {NonNegativeInteger} offsetX - starting index for x
6876
* @param {Function} fcn - callback function
6977
* @param {*} thisArg - callback execution context
7078
* @returns {Object} output array object
@@ -79,28 +87,29 @@ function internal( x, y, fcn, thisArg ) {
7987
* return x * 10.0;
8088
* }
8189
*
82-
* var x = arraylike2object( toAccessorArray( ones( 4 ) ) );
83-
* var y = arraylike2object( toAccessorArray( zeros( x.data.length ) ) );
84-
* var out = accessors( x, y, scale );
85-
* // returns {...}
90+
* var x = ones( 4 );
91+
* var y = zeros( x.length );
8692
*
87-
* var bool = ( out === y );
88-
* // returns true
93+
* var out = accessors( arraylike2object( toAccessorArray( x ) ), arraylike2object( toAccessorArray( y ) ), 1, 0, scale );
94+
* // y => [ 10.0, 10.0, 10.0, 10.0 ]
8995
*/
90-
function accessors( x, y, fcn, thisArg ) {
96+
function accessors( x, y, strideX, offsetX, fcn, thisArg ) {
9197
var xdata;
9298
var ydata;
9399
var xget;
94100
var yset;
101+
var ix;
95102
var i;
96103

97104
xdata = x.data;
98105
ydata = y.data;
99106
xget = x.accessors[ 0 ];
100107
yset = y.accessors[ 1 ];
101108

102-
for ( i = 0; i < xdata.length; i++ ) {
103-
yset( ydata, i, fcn.call( thisArg, xget( xdata, i ), i, xdata ) );
109+
ix = offsetX;
110+
for ( i = 0; i < ydata.length; i++ ) {
111+
yset( ydata, i, fcn.call( thisArg, xget( xdata, ix ), ix, xdata ) );
112+
ix += strideX;
104113
}
105114
return y;
106115
}
@@ -113,6 +122,8 @@ function accessors( x, y, fcn, thisArg ) {
113122
*
114123
* @param {Collection} x - input array
115124
* @param {Collection} y - output array
125+
* @param {integer} strideX - stride length for x
126+
* @param {NonNegativeInteger} offsetX - starting index for x
116127
* @param {Function} fcn - callback function
117128
* @param {*} [thisArg] - callback execution context
118129
* @returns {Collection} output array
@@ -128,23 +139,23 @@ function accessors( x, y, fcn, thisArg ) {
128139
* var x = ones( 4 );
129140
* var y = zeros( x.length );
130141
*
131-
* var out = assign( x, y, scale );
142+
* var out = assign( x, y, 1, 0, scale );
132143
* // returns [ 10.0, 10.0, 10.0, 10.0 ]
133144
*
134145
* var bool = ( out === y );
135146
* // returns true
136147
*/
137-
function assign( x, y, fcn, thisArg ) {
148+
function assign( x, y, strideX, offsetX, fcn, thisArg ) {
138149
var xobj;
139150
var yobj;
140151

141152
xobj = arraylike2object( x );
142153
yobj = arraylike2object( y );
143154
if ( xobj.accessorProtocol || yobj.accessorProtocol ) {
144-
accessors( xobj, yobj, fcn, thisArg );
155+
accessors( xobj, yobj, strideX, offsetX, fcn, thisArg );
145156
return y;
146157
}
147-
return internal( x, y, fcn, thisArg );
158+
return internal( x, y, strideX, offsetX, fcn, thisArg );
148159
}
149160

150161

0 commit comments

Comments
 (0)