Lines Matching refs:inv

76 	Vcsfxint_t	*idx = sfx->idx, *inv = sfx->inv;
92 { endi = inv[idx[i]]; /**/DEBUG_ASSERT(endi >= i);
94 /**/DEBUG_ASSERT(inv[idx[k]] == endi);
113 { Vcsfxint_t *i, *inv = sfx->inv, *idx = sfx->idx;
118 DEBUG_ASSERT(inv[*i] == i-idx);
142 Vcsfxint_t *idx = sfx->idx, *inv = sfx->inv;
152 { inv[sfx->nstr-1] = n;
159 inv[n++] = grp[v]-1; /* rank is highest position of group */
198 Vcsfxint_t *inv = sfx->inv, *idx = sfx->idx;
205 { le = inv + (pi+hdr); re = inv + (*r+hdr); /**/DEBUG_ASSERT(le != re);
215 inv[*l] = l-idx; /* update rank */
221 pi = inv[*max]; /* looking for periodic subsequences */
224 { ln = inv[min[RAND()%sz]+hdr];
225 mn = inv[min[RAND()%sz]+hdr];
226 rn = inv[min[RAND()%sz]+hdr];
234 { if((k = inv[*l + hdr] - pi) > 0)
240 { if((k = inv[*r + hdr] - pi) < 0)
259 inv[*min] = min-idx;
268 inv[*le] = le-idx;
276 else if((pi = re-idx) != inv[*le]) /* reset ranks */
278 inv[*l] = pi;
283 inv[*max] = max-idx;
296 if(inv[k = *l-hdr] == pi)
297 { *le = k; inv[k] = le-idx; le += 1; }
299 if(inv[k = *r-hdr] == pi)
300 { *re = k; inv[k] = re-idx; re -= 1; }
322 Vcsfxint_t *inv = sfx->inv, *idx = sfx->idx;
332 if(l < r && l < (r = inv[idx[l]]) )
348 { *xy += 1; idx[i] = k; inv[k] = i; }
351 { *xy -= 1; idx[i] = k; inv[k] = i; }
370 Vcsfxint_t nstr = sfx->nstr, *inv = sfx->inv, *idx = sfx->idx;
381 if((r = inv[idx[l]]-l+1) <= 1)
412 l = grp[(x<<8) + TYPECAST(Vcsfxint_t,nd->label)]; r = inv[idx[l]];
435 Vcsfxint_t *idx, *inv; /* index and rank */
445 sfx->inv = inv = idx+nstr+1;
448 idx[sfx->nstr] = inv[sfx->nstr] = sfx->nstr; /* the infinite eos byte */
450 { idx[0] = inv[0] = 0;