void nodeset_delete_rank (nodeset_t *n, uint32_t r) { assert (n->magic == NS_MAGIC); if (r <= ABS_MAX_RANK) vebdel (n->T, r); n->s_valid = false; }
Veb fill(uint M) { Veb T = vebnew(M,1); for (int i = 0; i < 0xff; ++i) { uint x = rand()%M; vebdel(T,x); test(vebpred(T,x) != x); } return T; }
void nodeset_delete_range (nodeset_t *n, uint32_t a, uint32_t b) { assert (n->magic == NS_MAGIC); uint32_t r; uint32_t lo = MIN(a,b); uint32_t hi = MAX(a,b); for (r = lo; r <= hi; r++) if (r <= ABS_MAX_RANK) vebdel (n->T, r); n->s_valid = false; }
int main(void) { srand(438749); uint M = rand()%(1<<16); Veb T = fill(M); uint i = i = vebpred(T,M-1); while (i < M) { vebdel(T,i); uint j = vebpred(T,i); test(i != j); i = j; } free(T.D); return 0; }