Skip to content

Possibly not calculating s array in ksw_extd2_see() correctly #21

@mimaric

Description

@mimaric

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):

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)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions