Skip to content

Commit be4b5e9

Browse files
committed
Fix sparse offset indexing
1 parent 40ac1b5 commit be4b5e9

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

tensorforge/backend/symbol.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,7 @@ def encode_values(self, pos, runIdx, writer, context: Context, variable, index:
382382
writer(f'{variable} = {self.name}[{value}];')
383383
wrote = True
384384
else:
385+
offset = self.data_view.get_dim_offsets()[leadidx]
385386
strindex = index[leadidx].write(context)
386387
rngs = []
387388
rng = None
@@ -406,7 +407,7 @@ def encode_values(self, pos, runIdx, writer, context: Context, variable, index:
406407

407408
if len(rngs) > 0:
408409
idxvar = writer.varalloc()
409-
writer(f'const int32_t {idxvar} = {strindex};')
410+
writer(f'const int32_t {idxvar} = {strindex} - {offset};')
410411

411412
lead = index[leadidx]
412413
bndS = lead._nonlead * lead._block
@@ -424,7 +425,6 @@ def encode_values(self, pos, runIdx, writer, context: Context, variable, index:
424425
writer(f'{variable} = {self.name}[{value - rngS} + {idxvar}];')
425426
wrote = True
426427
else:
427-
offset = self.data_view.get_dim_offsets()[pos]
428428
if isinstance(index[pos], (int, np.int32, np.int64)):
429429
runIdx[pos] = index[pos]
430430
wrote |= self.encode_values(pos + 1, runIdx, writer, context, variable, index, nontemp, leadidx)

0 commit comments

Comments
 (0)