-
Notifications
You must be signed in to change notification settings - Fork 28
Possibly not calculating s array in ksw_extd2_see() correctly #21
Description
In ksw_extd2_see() if valid elements of an antidiagonal have target indices in range [st0, en0] all elements in [st=st0/16*16, en=(en0+16)/16*16-1] are going to be processed, i.e. all elements within 16-element vectors that antidiagonal spans.
When calculating s array the loop starts from st0, skipping elements in [st, st0):
Line 158 in 4e0a1cc
| for (t = st0; t <= en0; t += 16) { |
With this approach elements in [st, st0) are actually processed with s-values from previous antidiagonals.
What is the reasoning behind this decision? Elements in [st, st0) are not part of the antidiagonal, but as off[r] = st, off_end[r] = en; they are considered valid elements during backtracking, whereas elements behind en whose s-values might also get calculated in this case are not.
Is this the intended behavior or should the loop on line 158 better read for (t = st; t <= en; t += 16)?