Skip to content

Commit bb1d8a0

Browse files
committed
refactor: reduce code duplication
1 parent cfcce81 commit bb1d8a0

File tree

1 file changed

+15
-62
lines changed
  • lib/node_modules/@stdlib/strided/base/quaternary/lib

1 file changed

+15
-62
lines changed

lib/node_modules/@stdlib/strided/base/quaternary/lib/main.js

Lines changed: 15 additions & 62 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( './ndarray.js' );
25+
26+
2127
// MAIN //
2228

2329
/**
@@ -48,71 +54,18 @@
4854
* // => <Float64Array>[ 4.0, 8.0, 12.0, 16.0, 20.0 ]
4955
*/
5056
function quaternary( arrays, shape, strides, fcn ) {
51-
var sx;
52-
var sy;
53-
var sz;
54-
var sw;
55-
var su;
56-
var ix;
57-
var iy;
58-
var iz;
59-
var iw;
60-
var iu;
61-
var x;
62-
var y;
63-
var z;
64-
var w;
65-
var u;
57+
var offsets;
6658
var N;
67-
var i;
6859

6960
N = shape[ 0 ];
70-
if ( N <= 0 ) {
71-
return;
72-
}
73-
sx = strides[ 0 ];
74-
sy = strides[ 1 ];
75-
sz = strides[ 2 ];
76-
sw = strides[ 3 ];
77-
su = strides[ 4 ];
78-
if ( sx < 0 ) {
79-
ix = (1-N) * sx;
80-
} else {
81-
ix = 0;
82-
}
83-
if ( sy < 0 ) {
84-
iy = (1-N) * sy;
85-
} else {
86-
iy = 0;
87-
}
88-
if ( sz < 0 ) {
89-
iz = (1-N) * sz;
90-
} else {
91-
iz = 0;
92-
}
93-
if ( sw < 0 ) {
94-
iw = (1-N) * sw;
95-
} else {
96-
iw = 0;
97-
}
98-
if ( su < 0 ) {
99-
iu = (1-N) * su;
100-
} else {
101-
iu = 0;
102-
}
103-
x = arrays[ 0 ];
104-
y = arrays[ 1 ];
105-
z = arrays[ 2 ];
106-
w = arrays[ 3 ];
107-
u = arrays[ 4 ];
108-
for ( i = 0; i < N; i++ ) {
109-
u[ iu ] = fcn( x[ ix ], y[ iy ], z[ iz ], w[ iw ] );
110-
ix += sx;
111-
iy += sy;
112-
iz += sz;
113-
iw += sw;
114-
iu += su;
115-
}
61+
offsets = [
62+
stride2offset( N, strides[ 0 ] ),
63+
stride2offset( N, strides[ 1 ] ),
64+
stride2offset( N, strides[ 2 ] ),
65+
stride2offset( N, strides[ 3 ] ),
66+
stride2offset( N, strides[ 4 ] )
67+
];
68+
return ndarray( arrays, shape, strides, offsets, fcn );
11669
}
11770

11871

0 commit comments

Comments
 (0)