-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possibly not calculating s array in ksw_extd2_see() correctly #21
Comments
You are probably right. Have you tried that? One thing I haven't thought through is whether this would lead to out-of-bound access to |
I went into more details on this. On L99 memory buffer is allocated with On L120 Query values are loaded on L161 in blocks of 16 starting from On the other side, the last element to be read by the current implementaion is going to be Does this make sense? If you want we can have a more detailed chat about it. |
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 fromst0
, skipping elements in[st, st0)
:ksw2/ksw2_extd2_sse.c
Line 158 in 4e0a1cc
With this approach elements in
[st, st0)
are actually processed withs
-values from previous antidiagonals.What is the reasoning behind this decision? Elements in
[st, st0)
are not part of the antidiagonal, but asoff[r] = st, off_end[r] = en;
they are considered valid elements during backtracking, whereas elements behinden
whoses
-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)
?The text was updated successfully, but these errors were encountered: