Skip to content

Commit 44d0970

Browse files
authored
chore: clean-up
Signed-off-by: Athan <kgryte@gmail.com>
1 parent f7b57ce commit 44d0970

File tree

1 file changed

+20
-14
lines changed
  • lib/node_modules/@stdlib/ndarray/base/tile/lib

1 file changed

+20
-14
lines changed

lib/node_modules/@stdlib/ndarray/base/tile/lib/main.js

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ var getOffset = require( '@stdlib/ndarray/base/offset' );
3232
var getOrder = require( '@stdlib/ndarray/base/order' );
3333
var getDType = require( '@stdlib/ndarray/base/dtype' );
3434
var getData = require( '@stdlib/ndarray/base/data-buffer' );
35-
var format = require( '@stdlib/string/format' );
3635
var zeros = require( '@stdlib/array/base/zeros' );
36+
var format = require( '@stdlib/string/format' );
3737

3838

3939
// MAIN //
@@ -68,20 +68,21 @@ function tile( x, reps ) {
6868
var shi;
6969
var sto;
7070
var buf;
71+
var len;
7172
var out;
7273
var Ds;
7374
var si;
7475
var sx;
7576
var v1;
7677
var v2;
77-
var L;
7878
var M;
7979
var N;
8080
var o;
8181
var s;
8282
var t;
8383
var i;
8484
var j;
85+
var k;
8586

8687
shx = getShape( x, false );
8788
sx = getStrides( x, false );
@@ -104,39 +105,44 @@ function tile( x, reps ) {
104105
} else {
105106
order = 'column-major';
106107
}
107-
// Compute an interleaved 2N-D shape and strides for broadcasting the input, along with the final N-D output shape. By inserting a repetition axis next to each original axis, a contiguous 2N-D buffer can be reinterpreted as the N-D tiled output without an additional copy...
108+
// Compute an interleaved 2N-D shape and strides for "broadcasting" the input, along with the final N-D output shape. By inserting a repetition axis next to each original axis, a contiguous 2N-D buffer can be reinterpreted as the N-D tiled output without an additional copy...
108109
shi = zeros( 2*N );
109110
si = zeros( 2*N );
110111
sho = zeros( N );
111112
for ( i = 0; i < N; i++ ) {
112113
j = i - Ds;
114+
k = 2 * i;
113115
s = ( j < 0 ) ? 1 : shx[ j ];
114116
t = ( j < 0 ) ? 0 : sx[ j ];
115117
sho[ i ] = reps[ i ] * s;
116118
if ( order === 'row-major' ) {
117-
shi[ 2*i ] = reps[ i ];
118-
shi[ (2*i)+1 ] = s;
119-
si[ (2*i)+1 ] = t;
120-
} else {
121-
shi[ 2*i ] = s;
122-
shi[ (2*i)+1 ] = reps[ i ];
123-
si[ 2*i ] = t;
119+
shi[ k ] = reps[ i ];
120+
shi[ k+1 ] = s;
121+
si[ k+1 ] = t;
122+
} else { // order === 'column-major'
123+
shi[ k ] = s;
124+
shi[ k+1 ] = reps[ i ];
125+
si[ k ] = t;
124126
}
125127
}
126128
if ( N > 0 ) {
127-
L = numel( sho );
129+
len = numel( sho );
128130
sto = shape2strides( sho, order );
129131
} else {
130-
L = 1;
132+
len = 1;
131133
sto = [ 0 ];
132134
}
133-
buf = buffer( dtype, L );
135+
// Allocate an output array:
136+
buf = buffer( dtype, len );
134137
out = new x.constructor( dtype, buf, sho, sto, 0, order );
135138

136-
// Assign the broadcasted input to a 2N-D view over the output data buffer...
139+
// Create a "broadcasted" input 2N-D view over the data buffers:
137140
v1 = ndarray( dtype, getData( x ), shi, si, getOffset( x ), order );
138141
v2 = ndarray( dtype, buf, shi, shape2strides( shi, order ), 0, order );
142+
143+
// Copy the elements to the output array:
139144
assign( [ v1, v2 ] );
145+
140146
return out;
141147
}
142148

0 commit comments

Comments
 (0)