INNER CODE UNIT · C
x0
lh3/miniprot · align.c:12
x0 = a[j-1]>>32, y0 = (int32_t)a[j-1];
x1 = a[j]>>32, y1 = (int32_t)a[j];
if ((x1 - x0) % 3 != 0 || x1 - x0 > max_aa_dist * 3 || y1 - y0 > max_aa_dist)
break;
}
if (j - i >= min_cnt) { // a tight chain block
int32_t k, t = (int32_t)a[j-1];
for (k = j - 2; k >= i; --k)
if (t - (int32_t)a[k] >= trim_back)
break;
t = (int32_t)a[i] + 1 - kmer2;
for (; i < k; ++i)
if ((int32_t)a[i] + 1 - t >= trim_back)
break;
for (; i <= k; ++i)
a[i] |= 1ULL<<31;
i = j - 1;
}