Branch Coverage

ds_bitmask126.h
Criterion Covered Total %
branch 46 76 60.5


line true false branch
51 0 132797 if (n++ >= pop32) return 32;
54 66261 66536 if (n > temp) { n -= temp; rank += 16; }
56 66420 66377 if (n > temp) { n -= temp; rank += 8; }
58 66385 66412 if (n > temp) { n -= temp; rank += 4; }
60 66538 66259 if (n > temp) { n -= temp; rank += 2; }
62 66516 66281 if (n > temp) rank += 1;
92 0 3 Newz(0, bm->data, bm->nwords, uint32_t);
96 0 3 Newz(0, bm->sbsize, nblocks, uint16_t);
98 5 0 for (nlevels=0; nlevels < 12; nlevels++) {
100 3 2 if (nblocks < 3) break;
104 0 2 Newz(0, bm->tbsize[nlevels], nblocks, BMTYPE);
118 2 3 for (i = 0; i < bm->nilevels; i++)
143 199907 210597 ADDSIZE(bm, w, 1);
149 0 0 New(0, arr, bm->nelems, BMTYPE);
153 0 0 for (wi = 0; wi < nwords; wi++) {
155 0 0 for (bit = 0; bit < 32; bit++, w >>= 1)
156 0 0 if (w & 1)
159 0 0 if (nelem != bm->nelems) croak("bitmask126: bad number of elements in array");
166 0 2 New(0, arr, bm->nelems, uint32_t);
170 7614 2 for (wi = 0; wi < nwords; wi++) {
172 243648 7614 for (bit = 0; bit < 32; bit++, w >>= 1)
173 73001 170647 if (w & 1)
176 0 2 if (nelem != bm->nelems) croak("bitmask126: bad number of elements in array");
188 0 132797 if (i > bm->nelems) croak("index higher than number of elements");
191 126908 132797 for (lev = bm->nilevels-1; lev >= 0; lev--) {
193 199858 126908 for (j <<= TSHIFT; i >= tbsizei[j]; j++)
196 428279 132797 for (j <<= TSHIFT; i >= bm->sbsize[j]; j++) /* Skip superblocks */
198 989530 132797 for (j <<= SSHIFT; i >= bm->bsize[j]; j++) /* Skip 8w blocks */
200 465082 132797 for (j <<= 3; i >= bm->size[j]; j++) /* Skip words */
225 0 132793 if (bm->size[wi] == 1) { /* Only 1 value, zero the word. */
232 126906 132793 ADDSIZE(bm, wi, -1);
246 0 4 if (idx >= bm->nelems) croak("bitmask126: invalid iterator initial position\n");
259 401 7656 while (w == 0) { /* skip any empty words */
285 0 0 if (bit < 0) {
286 0 0 if (wi == 0) croak("bitmask126: iterator underflow");
290 0 0 for ( ; bit >= 0; bit--) { /* Find prev set bit */
291 0 0 if (w & 1U << bit)
294 0 0 } while (bit < 0);