Skip to content

Commit 95cf265

Browse files
committed
refactor: reduce code duplication
1 parent 0d4ef60 commit 95cf265

File tree

2 files changed

+14
-76
lines changed

2 files changed

+14
-76
lines changed

lib/node_modules/@stdlib/strided/base/map-by2/lib/accessors.js

Lines changed: 7 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@
1818

1919
'use strict';
2020

21+
// MODULES //
22+
23+
var stride2offset = require( '@stdlib/strided/base/stride2offset' );
24+
var ndarray = require( './accessors.ndarray.js' );
25+
26+
2127
// MAIN //
2228

2329
/**
@@ -64,44 +70,7 @@
6470
* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]
6571
*/
6672
function mapBy2( N, x, strideX, xget, y, strideY, yget, z, strideZ, zset, fcn, clbk, thisArg ) { // eslint-disable-line max-len, max-params
67-
var args;
68-
var o;
69-
var a;
70-
var v;
71-
var i;
72-
if ( N <= 0 ) {
73-
return z;
74-
}
75-
o = [ 0, 0, 0 ];
76-
if ( strideX < 0 ) {
77-
o[ 0 ] = (1-N) * strideX;
78-
} else {
79-
o[ 0 ] = 0;
80-
}
81-
if ( strideY < 0 ) {
82-
o[ 1 ] = (1-N) * strideY;
83-
} else {
84-
o[ 1 ] = 0;
85-
}
86-
if ( strideZ < 0 ) {
87-
o[ 2 ] = (1-N) * strideZ;
88-
} else {
89-
o[ 2 ] = 0;
90-
}
91-
a = [ x, y, z ];
92-
args = [ 0, 0 ];
93-
for ( i = 0; i < N; i++ ) {
94-
args[ 0 ] = xget( x, o[ 0 ] );
95-
args[ 1 ] = yget( y, o[ 1 ] );
96-
v = clbk.call( thisArg, args, i, o, a );
97-
if ( v !== void 0 ) {
98-
zset( z, o[ 2 ], fcn( v[ 0 ], v[ 1 ] ) );
99-
}
100-
o[ 0 ] += strideX;
101-
o[ 1 ] += strideY;
102-
o[ 2 ] += strideZ;
103-
}
104-
return z;
73+
return ndarray( N, x, strideX, stride2offset( N, strideX ), xget, y, strideY, stride2offset( N, strideY ), yget, z, strideZ, stride2offset( N, strideZ ), zset, fcn, clbk, thisArg ); // eslint-disable-line max-len
10574
}
10675

10776

lib/node_modules/@stdlib/strided/base/map-by2/lib/map.js

Lines changed: 7 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@
1818

1919
'use strict';
2020

21+
// MODULES //
22+
23+
var stride2offset = require( '@stdlib/strided/base/stride2offset' );
24+
var ndarray = require( './map.ndarray.js' );
25+
26+
2127
// MAIN //
2228

2329
/**
@@ -55,44 +61,7 @@
5561
* // => [ 4.0, 0.0, 12.0, 0.0, 20.0 ]
5662
*/
5763
function mapBy2( N, x, strideX, y, strideY, z, strideZ, fcn, clbk, thisArg ) {
58-
var args;
59-
var o;
60-
var a;
61-
var v;
62-
var i;
63-
if ( N <= 0 ) {
64-
return z;
65-
}
66-
o = [ 0, 0, 0 ];
67-
if ( strideX < 0 ) {
68-
o[ 0 ] = (1-N) * strideX;
69-
} else {
70-
o[ 0 ] = 0;
71-
}
72-
if ( strideY < 0 ) {
73-
o[ 1 ] = (1-N) * strideY;
74-
} else {
75-
o[ 1 ] = 0;
76-
}
77-
if ( strideZ < 0 ) {
78-
o[ 2 ] = (1-N) * strideZ;
79-
} else {
80-
o[ 2 ] = 0;
81-
}
82-
a = [ x, y, z ];
83-
args = [ 0, 0 ];
84-
for ( i = 0; i < N; i++ ) {
85-
args[ 0 ] = x[ o[0] ];
86-
args[ 1 ] = y[ o[1] ];
87-
v = clbk.call( thisArg, args, i, o, a );
88-
if ( v !== void 0 ) {
89-
z[ o[2] ] = fcn( v[ 0 ], v[ 1 ] );
90-
}
91-
o[ 0 ] += strideX;
92-
o[ 1 ] += strideY;
93-
o[ 2 ] += strideZ;
94-
}
95-
return z;
64+
return ndarray( N, x, strideX, stride2offset( N, strideX ), y, strideY, stride2offset( N, strideY ), z, strideZ, stride2offset( N, strideZ ), fcn, clbk, thisArg ); // eslint-disable-line max-len
9665
}
9766

9867

0 commit comments

Comments
 (0)