16
16
* limitations under the License.
17
17
*/
18
18
19
- /* eslint-disable max-depth, max-len, max-statements */
19
+ /* eslint-disable max-depth, max-len, max-statements, max-lines-per-function */
20
20
21
21
'use strict' ;
22
22
@@ -37,11 +37,11 @@ var offsets = require( './offsets.js' );
37
37
* @param {Function } fcn - wrapper for a one-dimensional strided array reduction function
38
38
* @param {Array<Object> } arrays - ndarrays
39
39
* @param {Array<Object> } views - initialized ndarray-like objects representing sub-array views
40
- * @param {IntegerArray } strideX - loop dimension strides for the first input ndarray
41
- * @param {IntegerArray } strideY - loop dimension strides for the second input ndarray
40
+ * @param {IntegerArray } stridesX - loop dimension strides for the first input ndarray
41
+ * @param {IntegerArray } stridesY - loop dimension strides for the second input ndarray
42
42
* @param {boolean } isRowMajor - boolean indicating if provided arrays are in row-major order
43
- * @param {Function } strategy1 - first input ndarray reshape strategy
44
- * @param {Function } strategy2 - second input ndarray reshape strategy
43
+ * @param {Function } strategyX - first input ndarray reshape strategy
44
+ * @param {Function } strategyY - second input ndarray reshape strategy
45
45
* @param {Options } opts - function options
46
46
* @returns {void }
47
47
*
@@ -141,7 +141,7 @@ var offsets = require( './offsets.js' );
141
141
* var arr = ndarray2array( z.data, z.shape, z.strides, z.offset, z.order );
142
142
* // returns [ [ [ [ [ [ [ [ [ [ 30.0, 174.0, 446.0 ] ] ] ] ] ] ] ] ] ]
143
143
*/
144
- function binary10d ( fcn , arrays , views , strideX , strideY , isRowMajor , strategy1 , strategy2 , opts ) {
144
+ function binary10d ( fcn , arrays , views , stridesX , stridesY , isRowMajor , strategyX , strategyY , opts ) {
145
145
var zbuf ;
146
146
var set ;
147
147
var dv0 ;
@@ -200,16 +200,46 @@ function binary10d( fcn, arrays, views, strideX, strideY, isRowMajor, strategy1,
200
200
S7 = sh [ 2 ] ;
201
201
S8 = sh [ 1 ] ;
202
202
S9 = sh [ 0 ] ;
203
- dv0 = [ strideX [ 9 ] , strideY [ 9 ] ] ; // offset increment for innermost loop
204
- dv1 = [ strideX [ 8 ] - ( S0 * strideX [ 9 ] ) , strideY [ 8 ] - ( S0 * strideY [ 9 ] ) ] ;
205
- dv2 = [ strideX [ 7 ] - ( S1 * strideX [ 8 ] ) , strideY [ 7 ] - ( S1 * strideY [ 8 ] ) ] ;
206
- dv3 = [ strideX [ 6 ] - ( S2 * strideX [ 7 ] ) , strideY [ 6 ] - ( S2 * strideY [ 7 ] ) ] ;
207
- dv4 = [ strideX [ 5 ] - ( S3 * strideX [ 6 ] ) , strideY [ 5 ] - ( S3 * strideY [ 6 ] ) ] ;
208
- dv5 = [ strideX [ 4 ] - ( S4 * strideX [ 5 ] ) , strideY [ 4 ] - ( S4 * strideY [ 5 ] ) ] ;
209
- dv6 = [ strideX [ 3 ] - ( S5 * strideX [ 4 ] ) , strideY [ 3 ] - ( S5 * strideY [ 4 ] ) ] ;
210
- dv7 = [ strideX [ 2 ] - ( S6 * strideX [ 3 ] ) , strideY [ 2 ] - ( S6 * strideY [ 3 ] ) ] ;
211
- dv8 = [ strideX [ 1 ] - ( S7 * strideX [ 2 ] ) , strideY [ 1 ] - ( S7 * strideY [ 2 ] ) ] ;
212
- dv9 = [ strideX [ 0 ] - ( S8 * strideX [ 1 ] ) , strideY [ 0 ] - ( S8 * strideY [ 1 ] ) ] ; // offset increment for outermost loop
203
+ dv0 = [ // offset increment for innermost loop
204
+ stridesX [ 9 ] ,
205
+ stridesY [ 9 ]
206
+ ] ;
207
+ dv1 = [
208
+ stridesX [ 8 ] - ( S0 * stridesX [ 9 ] ) ,
209
+ stridesY [ 8 ] - ( S0 * stridesY [ 9 ] )
210
+ ] ;
211
+ dv2 = [
212
+ stridesX [ 7 ] - ( S1 * stridesX [ 8 ] ) ,
213
+ stridesY [ 7 ] - ( S1 * stridesY [ 8 ] )
214
+ ] ;
215
+ dv3 = [
216
+ stridesX [ 6 ] - ( S2 * stridesX [ 7 ] ) ,
217
+ stridesY [ 6 ] - ( S2 * stridesY [ 7 ] )
218
+ ] ;
219
+ dv4 = [
220
+ stridesX [ 5 ] - ( S3 * stridesX [ 6 ] ) ,
221
+ stridesY [ 5 ] - ( S3 * stridesY [ 6 ] )
222
+ ] ;
223
+ dv5 = [
224
+ stridesX [ 4 ] - ( S4 * stridesX [ 5 ] ) ,
225
+ stridesY [ 4 ] - ( S4 * stridesY [ 5 ] )
226
+ ] ;
227
+ dv6 = [
228
+ stridesX [ 3 ] - ( S5 * stridesX [ 4 ] ) ,
229
+ stridesY [ 3 ] - ( S5 * stridesY [ 4 ] )
230
+ ] ;
231
+ dv7 = [
232
+ stridesX [ 2 ] - ( S6 * stridesX [ 3 ] ) ,
233
+ stridesY [ 2 ] - ( S6 * stridesY [ 3 ] )
234
+ ] ;
235
+ dv8 = [
236
+ stridesX [ 1 ] - ( S7 * stridesX [ 2 ] ) ,
237
+ stridesY [ 1 ] - ( S7 * stridesY [ 2 ] )
238
+ ] ;
239
+ dv9 = [ // offset increment for outermost loop
240
+ stridesX [ 0 ] - ( S8 * stridesX [ 1 ] ) ,
241
+ stridesY [ 0 ] - ( S8 * stridesY [ 1 ] )
242
+ ] ;
213
243
for ( i = 2 ; i < arrays . length ; i ++ ) {
214
244
sv = arrays [ i ] . strides ;
215
245
dv0 . push ( sv [ 9 ] ) ;
@@ -235,16 +265,46 @@ function binary10d( fcn, arrays, views, strideX, strideY, isRowMajor, strategy1,
235
265
S7 = sh [ 7 ] ;
236
266
S8 = sh [ 8 ] ;
237
267
S9 = sh [ 9 ] ;
238
- dv0 = [ strideX [ 0 ] , strideY [ 0 ] ] ; // offset increment for innermost loop
239
- dv1 = [ strideX [ 1 ] - ( S0 * strideX [ 0 ] ) , strideY [ 1 ] - ( S0 * strideY [ 0 ] ) ] ;
240
- dv2 = [ strideX [ 2 ] - ( S1 * strideX [ 1 ] ) , strideY [ 2 ] - ( S1 * strideY [ 1 ] ) ] ;
241
- dv3 = [ strideX [ 3 ] - ( S2 * strideX [ 2 ] ) , strideY [ 3 ] - ( S2 * strideY [ 2 ] ) ] ;
242
- dv4 = [ strideX [ 4 ] - ( S3 * strideX [ 3 ] ) , strideY [ 4 ] - ( S3 * strideY [ 3 ] ) ] ;
243
- dv5 = [ strideX [ 5 ] - ( S4 * strideX [ 4 ] ) , strideY [ 5 ] - ( S4 * strideY [ 4 ] ) ] ;
244
- dv6 = [ strideX [ 6 ] - ( S5 * strideX [ 5 ] ) , strideY [ 6 ] - ( S5 * strideY [ 5 ] ) ] ;
245
- dv7 = [ strideX [ 7 ] - ( S6 * strideX [ 6 ] ) , strideY [ 7 ] - ( S6 * strideY [ 6 ] ) ] ;
246
- dv8 = [ strideX [ 8 ] - ( S7 * strideX [ 7 ] ) , strideY [ 8 ] - ( S7 * strideY [ 7 ] ) ] ;
247
- dv9 = [ strideX [ 9 ] - ( S8 * strideX [ 8 ] ) , strideY [ 9 ] - ( S8 * strideY [ 8 ] ) ] ; // offset increment for outermost loop
268
+ dv0 = [ // offset increment for innermost loop
269
+ stridesX [ 0 ] ,
270
+ stridesY [ 0 ]
271
+ ] ;
272
+ dv1 = [
273
+ stridesX [ 1 ] - ( S0 * stridesX [ 0 ] ) ,
274
+ stridesY [ 1 ] - ( S0 * stridesY [ 0 ] )
275
+ ] ;
276
+ dv2 = [
277
+ stridesX [ 2 ] - ( S1 * stridesX [ 1 ] ) ,
278
+ stridesY [ 2 ] - ( S1 * stridesY [ 1 ] )
279
+ ] ;
280
+ dv3 = [
281
+ stridesX [ 3 ] - ( S2 * stridesX [ 2 ] ) ,
282
+ stridesY [ 3 ] - ( S2 * stridesY [ 2 ] )
283
+ ] ;
284
+ dv4 = [
285
+ stridesX [ 4 ] - ( S3 * stridesX [ 3 ] ) ,
286
+ stridesY [ 4 ] - ( S3 * stridesY [ 3 ] )
287
+ ] ;
288
+ dv5 = [
289
+ stridesX [ 5 ] - ( S4 * stridesX [ 4 ] ) ,
290
+ stridesY [ 5 ] - ( S4 * stridesY [ 4 ] )
291
+ ] ;
292
+ dv6 = [
293
+ stridesX [ 6 ] - ( S5 * stridesX [ 5 ] ) ,
294
+ stridesY [ 6 ] - ( S5 * stridesY [ 5 ] )
295
+ ] ;
296
+ dv7 = [
297
+ stridesX [ 7 ] - ( S6 * stridesX [ 6 ] ) ,
298
+ stridesY [ 7 ] - ( S6 * stridesY [ 6 ] )
299
+ ] ;
300
+ dv8 = [
301
+ stridesX [ 8 ] - ( S7 * stridesX [ 7 ] ) ,
302
+ stridesY [ 8 ] - ( S7 * stridesY [ 7 ] )
303
+ ] ;
304
+ dv9 = [ // offset increment for outermost loop
305
+ stridesX [ 9 ] - ( S8 * stridesX [ 8 ] ) ,
306
+ stridesY [ 9 ] - ( S8 * stridesY [ 8 ] )
307
+ ] ;
248
308
for ( i = 2 ; i < arrays . length ; i ++ ) {
249
309
sv = arrays [ i ] . strides ;
250
310
dv0 . push ( sv [ 0 ] ) ;
@@ -283,8 +343,8 @@ function binary10d( fcn, arrays, views, strideX, strideY, isRowMajor, strategy1,
283
343
for ( i1 = 0 ; i1 < S1 ; i1 ++ ) {
284
344
for ( i0 = 0 ; i0 < S0 ; i0 ++ ) {
285
345
setViewOffsets ( views , iv ) ;
286
- v [ 0 ] = strategy1 ( views [ 0 ] ) ;
287
- v [ 1 ] = strategy2 ( views [ 1 ] ) ;
346
+ v [ 0 ] = strategyX ( views [ 0 ] ) ;
347
+ v [ 1 ] = strategyY ( views [ 1 ] ) ;
288
348
set ( zbuf , iv [ 2 ] , fcn ( v , opts ) ) ;
289
349
incrementOffsets ( iv , dv0 ) ;
290
350
}
0 commit comments