Skip to content

Commit 3656b32

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

File tree

1 file changed

+16
-73
lines changed
  • lib/node_modules/@stdlib/strided/base/quinary/lib

1 file changed

+16
-73
lines changed

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

Lines changed: 16 additions & 73 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
/**
@@ -49,82 +55,19 @@
4955
* // => <Float64Array>[ 5.0, 10.0, 15.0, 20.0, 25.0 ]
5056
*/
5157
function quinary( arrays, shape, strides, fcn ) {
52-
var sx;
53-
var sy;
54-
var sz;
55-
var sw;
56-
var su;
57-
var sv;
58-
var ix;
59-
var iy;
60-
var iz;
61-
var iw;
62-
var iu;
63-
var iv;
64-
var x;
65-
var y;
66-
var z;
67-
var w;
68-
var u;
69-
var v;
58+
var offsets;
7059
var N;
71-
var i;
7260

7361
N = shape[ 0 ];
74-
if ( N <= 0 ) {
75-
return;
76-
}
77-
sx = strides[ 0 ];
78-
sy = strides[ 1 ];
79-
sz = strides[ 2 ];
80-
sw = strides[ 3 ];
81-
su = strides[ 4 ];
82-
sv = strides[ 5 ];
83-
if ( sx < 0 ) {
84-
ix = (1-N) * sx;
85-
} else {
86-
ix = 0;
87-
}
88-
if ( sy < 0 ) {
89-
iy = (1-N) * sy;
90-
} else {
91-
iy = 0;
92-
}
93-
if ( sz < 0 ) {
94-
iz = (1-N) * sz;
95-
} else {
96-
iz = 0;
97-
}
98-
if ( sw < 0 ) {
99-
iw = (1-N) * sw;
100-
} else {
101-
iw = 0;
102-
}
103-
if ( su < 0 ) {
104-
iu = (1-N) * su;
105-
} else {
106-
iu = 0;
107-
}
108-
if ( sv < 0 ) {
109-
iv = (1-N) * sv;
110-
} else {
111-
iv = 0;
112-
}
113-
x = arrays[ 0 ];
114-
y = arrays[ 1 ];
115-
z = arrays[ 2 ];
116-
w = arrays[ 3 ];
117-
u = arrays[ 4 ];
118-
v = arrays[ 5 ];
119-
for ( i = 0; i < N; i++ ) {
120-
v[ iv ] = fcn( x[ ix ], y[ iy ], z[ iz ], w[ iw ], u[ iu ] );
121-
ix += sx;
122-
iy += sy;
123-
iz += sz;
124-
iw += sw;
125-
iu += su;
126-
iv += sv;
127-
}
62+
offsets = [
63+
stride2offset( N, strides[ 0 ] ),
64+
stride2offset( N, strides[ 1 ] ),
65+
stride2offset( N, strides[ 2 ] ),
66+
stride2offset( N, strides[ 3 ] ),
67+
stride2offset( N, strides[ 4 ] ),
68+
stride2offset( N, strides[ 5 ] )
69+
];
70+
return ndarray( arrays, shape, strides, offsets, fcn );
12871
}
12972

13073

0 commit comments

Comments
 (0)