mirror of
https://github.com/lh3/minimap2.git
synced 2026-10-08 11:08:12 +08:00
r200: reduce long gaps in chaining
Every seed can initiate a chain.
This commit is contained in:
@@ -26,7 +26,7 @@ int mm_chain_dp(int max_dist, int bw, int max_skip, int min_cnt, int min_sc, int
|
|||||||
for (i = 0; i < n; ++i) {
|
for (i = 0; i < n; ++i) {
|
||||||
uint64_t ri = a[i].x;
|
uint64_t ri = a[i].x;
|
||||||
int32_t qi = (int32_t)a[i].y, q_span = a[i].y>>32&0xff; // NB: only 8 bits of span is used!!!
|
int32_t qi = (int32_t)a[i].y, q_span = a[i].y>>32&0xff; // NB: only 8 bits of span is used!!!
|
||||||
int32_t max_f = -INT32_MAX, max_j = -1, n_skip = 0, min_d;
|
int32_t max_f = q_span, max_j = -1, n_skip = 0, min_d;
|
||||||
while (st < i && ri - a[st].x > max_dist) ++st;
|
while (st < i && ri - a[st].x > max_dist) ++st;
|
||||||
for (j = i - 1; j >= st; --j) {
|
for (j = i - 1; j >= st; --j) {
|
||||||
int64_t dr = ri - a[j].x;
|
int64_t dr = ri - a[j].x;
|
||||||
@@ -47,8 +47,7 @@ int mm_chain_dp(int max_dist, int bw, int max_skip, int min_cnt, int min_sc, int
|
|||||||
}
|
}
|
||||||
if (p[j] >= 0) t[p[j]] = i;
|
if (p[j] >= 0) t[p[j]] = i;
|
||||||
}
|
}
|
||||||
if (max_j >= 0) f[i] = max_f, p[i] = max_j;
|
f[i] = max_f, p[i] = max_j;
|
||||||
else f[i] = q_span, p[i] = -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// find the ending positions of chains
|
// find the ending positions of chains
|
||||||
|
|||||||
Reference in New Issue
Block a user