Changeset: f09ae975a152 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f09ae975a152 Modified Files: gdk/gdk_select.c Branch: Mar2018 Log Message:
Cosmetic: use bool and layout. diffs (truncated from 1028 to 300 lines): diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c --- a/gdk/gdk_select.c +++ b/gdk/gdk_select.c @@ -28,7 +28,7 @@ A = (oid *) Tloc((B), 0); \ } \ A[(I)] = (V); \ - } while (0) + } while (false) BAT * virtualize(BAT *bn) @@ -52,12 +52,12 @@ virtualize(BAT *bn) bn->tseqbase = 0; else bn->tseqbase = * (const oid *) Tloc(bn, 0); - bn->tdense = 1; + bn->tdense = true; HEAPfree(&bn->theap, 1); bn->theap.storage = bn->theap.newstorage = STORE_MEM; bn->theap.size = 0; bn->ttype = TYPE_void; - bn->tvarsized = 1; + bn->tvarsized = true; bn->twidth = 0; bn->tshift = 0; } @@ -86,11 +86,11 @@ doublerange(oid l1, oid h1, oid l2, oid *p++ = l1++; while (l2 < h2) *p++ = l2++; - bn->tkey = 1; - bn->tsorted = 1; + bn->tkey = true; + bn->tsorted = true; bn->trevsorted = BATcount(bn) <= 1; - bn->tnil = 0; - bn->tnonil = 1; + bn->tnil = false; + bn->tnonil = true; return bn; } @@ -120,11 +120,11 @@ doubleslice(BAT *b, BUN l1, BUN h1, BUN o = (const oid *) Tloc(b, l2); while (l2++ < h2) *p++ = *o++; - bn->tkey = 1; - bn->tsorted = 1; + bn->tkey = true; + bn->tsorted = true; bn->trevsorted = BATcount(bn) <= 1; - bn->tnil = 0; - bn->tnonil = 1; + bn->tnil = false; + bn->tnonil = true; return virtualize(bn); } @@ -222,7 +222,7 @@ BAT_hashselect(BAT *b, BAT *s, BAT *bn, } } BATsetcount(bn, cnt); - bn->tkey = 1; + bn->tkey = true; if (cnt > 1) { /* hash chains produce results in the order high to * low, so we just need to reverse */ @@ -232,7 +232,7 @@ BAT_hashselect(BAT *b, BAT *s, BAT *bn, dst[h] = o; } } - bn->tsorted = 1; + bn->tsorted = true; bn->tdense = bn->trevsorted = bn->batCount <= 1; if (bn->batCount == 1) bn->tseqbase = *dst; @@ -242,37 +242,37 @@ BAT_hashselect(BAT *b, BAT *s, BAT *bn, /* Imprints select code */ /* inner check */ -#define impscheck(CAND,TEST,ADD) \ -do { \ - e = (BUN) (i+limit-pr_off+off); \ - if (im[icnt] & mask) { \ - if ((im[icnt] & ~innermask) == 0) { \ - while (p < q && o < e) { \ - v = src[o-off]; \ - ADD; \ - cnt++; \ - p++; \ - if (p < q) \ - CAND; \ - } \ - } else { \ - while (p < q && o < e) { \ - v = src[o-off]; \ - ADD; \ - cnt += (TEST); \ - p++; \ - if (p < q) \ - CAND; \ - } \ - } \ - } else { \ - while (p < q && o < e) { \ - p++; \ - if (p < q) \ - CAND; \ - } \ - } \ -} while (0) +#define impscheck(CAND,TEST,ADD) \ + do { \ + e = (BUN) (i+limit-pr_off+off); \ + if (im[icnt] & mask) { \ + if ((im[icnt] & ~innermask) == 0) { \ + while (p < q && o < e) { \ + v = src[o-off]; \ + ADD; \ + cnt++; \ + p++; \ + if (p < q) \ + CAND; \ + } \ + } else { \ + while (p < q && o < e) { \ + v = src[o-off]; \ + ADD; \ + cnt += (TEST); \ + p++; \ + if (p < q) \ + CAND; \ + } \ + } \ + } else { \ + while (p < q && o < e) { \ + p++; \ + if (p < q) \ + CAND; \ + } \ + } \ + } while (false) /* main loop for imprints */ /* @@ -281,162 +281,163 @@ do { \ * i is the iterator for the values in imprints */ #define impsloop(CAND,TEST,ADD) \ -do { \ - BUN dcnt, icnt, limit, i, l, e; \ - cchdc_t *restrict d = (cchdc_t *) imprints->dict; \ - bte rpp = ATOMelmshift(IMPS_PAGE >> b->tshift); \ - CAND; \ - for (i = 0, dcnt = 0, icnt = 0; \ - dcnt < imprints->dictcnt && i + off < w + pr_off && p < q; \ - dcnt++) { \ - limit = ((BUN) d[dcnt].cnt) << rpp; \ - while (i + limit + off <= o + pr_off) { \ - i += limit; \ - icnt += d[dcnt].repeat ? 1 : d[dcnt].cnt; \ - dcnt++; \ + do { \ + BUN dcnt, icnt, limit, i, l, e; \ + cchdc_t *restrict d = (cchdc_t *) imprints->dict; \ + bte rpp = ATOMelmshift(IMPS_PAGE >> b->tshift); \ + CAND; \ + for (i = 0, dcnt = 0, icnt = 0; \ + dcnt < imprints->dictcnt && i + off < w + pr_off && p < q; \ + dcnt++) { \ limit = ((BUN) d[dcnt].cnt) << rpp; \ - } \ - if (!d[dcnt].repeat) { \ - limit = (BUN) 1 << rpp; \ - l = icnt + d[dcnt].cnt; \ while (i + limit + off <= o + pr_off) { \ - icnt++; \ i += limit; \ + icnt += d[dcnt].repeat ? 1 : d[dcnt].cnt; \ + dcnt++; \ + limit = ((BUN) d[dcnt].cnt) << rpp; \ } \ - for (; \ - icnt < l && i + off < w + pr_off; \ - icnt++) { \ + if (!d[dcnt].repeat) { \ + limit = (BUN) 1 << rpp; \ + l = icnt + d[dcnt].cnt; \ + while (i + limit + off <= o + pr_off) { \ + icnt++; \ + i += limit; \ + } \ + for (; \ + icnt < l && i + off < w + pr_off; \ + icnt++) { \ + impscheck(CAND,TEST,ADD); \ + i += limit; \ + } \ + } \ + else { \ impscheck(CAND,TEST,ADD); \ i += limit; \ + icnt++; \ } \ } \ - else { \ - impscheck(CAND,TEST,ADD); \ - i += limit; \ - icnt++; \ - } \ - } \ -} while (0) + } while (false) #define quickins(dst, cnt, o, bn) \ do { \ assert((cnt) < BATcapacity(bn)); \ dst[cnt] = (o); \ - } while (0) + } while (false) /* construct the mask */ #define impsmask(CAND,TEST,B) \ -do { \ - uint##B##_t *restrict im = (uint##B##_t *) imprints->imps; \ - uint##B##_t mask = 0, innermask; \ - int lbin, hbin; \ - int tpe = ATOMbasetype(b->ttype); \ - lbin = IMPSgetbin(tpe, imprints->bits, imprints->bins, tl); \ - hbin = IMPSgetbin(tpe, imprints->bits, imprints->bins, th); \ - /* note: (1<<n)-1 gives a sequence of n one bits */ \ - /* to set bits hbin..lbin inclusive, we would do: */ \ - /* mask = ((1 << (hbin + 1)) - 1) - ((1 << lbin) - 1); */ \ - /* except ((1 << (hbin + 1)) - 1) is not defined if */ \ - /* hbin == sizeof(uint##B##_t)*8 - 1 */ \ - /* the following does work, however */ \ - mask = (((((uint##B##_t) 1 << hbin) - 1) << 1) | 1) - (((uint##B##_t) 1 << lbin) - 1); \ - innermask = mask; \ - if (!b->tnonil || vl != minval) \ - innermask = IMPSunsetBit(B, innermask, lbin); \ - if (vh != maxval) \ - innermask = IMPSunsetBit(B, innermask, hbin); \ - if (anti) { \ - uint##B##_t tmp = mask; \ - mask = ~innermask; \ - innermask = ~tmp; \ - } \ + do { \ + uint##B##_t *restrict im = (uint##B##_t *) imprints->imps; \ + uint##B##_t mask = 0, innermask; \ + int lbin, hbin; \ + int tpe = ATOMbasetype(b->ttype); \ + lbin = IMPSgetbin(tpe, imprints->bits, imprints->bins, tl); \ + hbin = IMPSgetbin(tpe, imprints->bits, imprints->bins, th); \ + /* note: (1<<n)-1 gives a sequence of n one bits */ \ + /* to set bits hbin..lbin inclusive, we would do: */ \ + /* mask = ((1 << (hbin + 1)) - 1) - ((1 << lbin) - 1); */ \ + /* except ((1 << (hbin + 1)) - 1) is not defined if */ \ + /* hbin == sizeof(uint##B##_t)*8 - 1 */ \ + /* the following does work, however */ \ + mask = (((((uint##B##_t) 1 << hbin) - 1) << 1) | 1) - (((uint##B##_t) 1 << lbin) - 1); \ + innermask = mask; \ + if (!b->tnonil || vl != minval) \ + innermask = IMPSunsetBit(B, innermask, lbin); \ + if (vh != maxval) \ + innermask = IMPSunsetBit(B, innermask, hbin); \ + if (anti) { \ + uint##B##_t tmp = mask; \ + mask = ~innermask; \ + innermask = ~tmp; \ + } \ \ - if (BATcapacity(bn) < maximum) { \ - impsloop(CAND, TEST, \ - buninsfix(bn, dst, cnt, o, \ - (BUN) ((dbl) cnt / (dbl) (p == r ? 1 : p - r) \ - * (dbl) (q-p) * 1.1 + 1024), \ - BATcapacity(bn) + q - p, BUN_NONE)); \ - } else { \ - impsloop(CAND, TEST, quickins(dst, cnt, o, bn)); \ - } \ -} while (0) + if (BATcapacity(bn) < maximum) { \ + impsloop(CAND, TEST, \ + buninsfix(bn, dst, cnt, o, \ + (BUN) ((dbl) cnt / (dbl) (p == r ? 1 : p - r) \ + * (dbl) (q-p) * 1.1 + 1024), \ + BATcapacity(bn) + q - p, BUN_NONE)); \ + } else { \ + impsloop(CAND, TEST, quickins(dst, cnt, o, bn)); \ + } \ + } while (false) #define checkMINMAX(B, TYPE) \ -do { \ - int ii; \ - BUN *restrict imp_cnt = imprints->stats + 128; \ - imp_min = imp_max = nil; \ - for (ii = 0; ii < B; ii++) { \ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list