Changeset: 6747c61c59b8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6747c61c59b8
Modified Files:
        gdk/gdk_imprints.c
        gdk/gdk_select.c
Branch: Oct2020
Log Message:

Layout.


diffs (truncated from 318 to 300 lines):

diff --git a/gdk/gdk_imprints.c b/gdk/gdk_imprints.c
--- a/gdk/gdk_imprints.c
+++ b/gdk/gdk_imprints.c
@@ -21,89 +21,91 @@
 #define IMPRINTS_VERSION       2
 #define IMPRINTS_HEADER_SIZE   4 /* nr of size_t fields in header */
 
-#define BINSIZE(B, FUNC, T) do {               \
-       switch (B) {                            \
+#define BINSIZE(B, FUNC, T) \
+       do {                                    \
+               switch (B) {                    \
                case 8: FUNC(T,8); break;       \
                case 16: FUNC(T,16); break;     \
                case 32: FUNC(T,32); break;     \
                case 64: FUNC(T,64); break;     \
                default: assert(0); break;      \
-       }                                       \
-} while (0)
+               }                               \
+       } while (0)
 
 
 #define GETBIN(Z,X,B)                          \
-do {                                           \
-       int _i;                                 \
-       Z = 0;                                  \
-       for (_i = 1; _i < B; _i++)              \
-               Z += ((X) >= bins[_i]);         \
-} while (0)
+       do {                                    \
+               int _i;                         \
+               Z = 0;                          \
+               for (_i = 1; _i < B; _i++)      \
+                       Z += ((X) >= bins[_i]); \
+       } while (0)
 
 
 #define IMPS_CREATE(TYPE,B)                                            \
-do {                                                                   \
-       uint##B##_t mask, prvmask;                                      \
-       uint##B##_t *restrict im = (uint##B##_t *) imps;                \
-       const TYPE *restrict col = (TYPE *) Tloc(b, 0);                 \
-       const TYPE *restrict bins = (TYPE *) inbins;                    \
-       const BUN page = IMPS_PAGE / sizeof(TYPE);                      \
-       prvmask = 0;                                                    \
-       for (i = 0; i < b->batCount; ) {                                \
-               const BUN lim = MIN(i + page, b->batCount);             \
-               /* new mask */                                          \
-               mask = 0;                                               \
-               /* build mask for all BUNs in one PAGE */               \
-               for ( ; i < lim; i++) {                                 \
-                       register const TYPE val = col[i];               \
-                       GETBIN(bin,val,B);                              \
-                       mask = IMPSsetBit(B,mask,bin);                  \
-                       if (!is_##TYPE##_nil(val)) { /* do not count nils */ \
-                               if (!cnt_bins[bin]++) {                 \
-                                       min_bins[bin] = max_bins[bin] = i; \
+       do {                                                            \
+               uint##B##_t mask, prvmask;                              \
+               uint##B##_t *restrict im = (uint##B##_t *) imps;        \
+               const TYPE *restrict col = (TYPE *) Tloc(b, 0);         \
+               const TYPE *restrict bins = (TYPE *) inbins;            \
+               const BUN page = IMPS_PAGE / sizeof(TYPE);              \
+               prvmask = 0;                                            \
+               for (i = 0; i < b->batCount; ) {                        \
+                       const BUN lim = MIN(i + page, b->batCount);     \
+                       /* new mask */                                  \
+                       mask = 0;                                       \
+                       /* build mask for all BUNs in one PAGE */       \
+                       for ( ; i < lim; i++) {                         \
+                               const TYPE val = col[i];                \
+                               GETBIN(bin,val,B);                      \
+                               mask = IMPSsetBit(B,mask,bin);          \
+                               if (!is_##TYPE##_nil(val)) { /* do not count 
nils */ \
+                                       if (!cnt_bins[bin]++) {         \
+                                               /* first in the bin */  \
+                                               min_bins[bin] = max_bins[bin] = 
i; \
+                                       } else {                        \
+                                               if (val < col[min_bins[bin]]) \
+                                                       min_bins[bin] = i; \
+                                               if (val > col[max_bins[bin]]) \
+                                                       max_bins[bin] = i; \
+                                       }                               \
+                               }                                       \
+                       }                                               \
+                       /* same mask as previous and enough count to add */ \
+                       if ((prvmask == mask) && (dcnt > 0) &&          \
+                           (dict[dcnt-1].cnt < (IMPS_MAX_CNT-1))) {    \
+                               /* not a repeat header */               \
+                               if (!dict[dcnt-1].repeat) {             \
+                                       /* if compressed */             \
+                                       if (dict[dcnt-1].cnt > 1) {     \
+                                               /* uncompress last */   \
+                                               dict[dcnt-1].cnt--;     \
+                                               /* new header */        \
+                                               dict[dcnt].cnt = 1;     \
+                                               dict[dcnt].flags = 0;   \
+                                               dcnt++;                 \
+                                       }                               \
+                                       /* set repeat */                \
+                                       dict[dcnt-1].repeat = 1;        \
+                               }                                       \
+                               /* increase cnt */                      \
+                               dict[dcnt-1].cnt++;                     \
+                       } else { /* new mask (or run out of header count) */ \
+                               prvmask=mask;                           \
+                               im[icnt] = mask;                        \
+                               icnt++;                                 \
+                               if ((dcnt > 0) && !(dict[dcnt-1].repeat) && \
+                                   (dict[dcnt-1].cnt < (IMPS_MAX_CNT-1))) { \
+                                       dict[dcnt-1].cnt++;             \
                                } else {                                \
-                                       if (val < col[min_bins[bin]])   \
-                                               min_bins[bin] = i;      \
-                                       if (val > col[max_bins[bin]])   \
-                                               max_bins[bin] = i;      \
+                                       dict[dcnt].cnt = 1;             \
+                                       dict[dcnt].repeat = 0;          \
+                                       dict[dcnt].flags = 0;           \
+                                       dcnt++;                         \
                                }                                       \
                        }                                               \
                }                                                       \
-               /* same mask as previous and enough count to add */     \
-               if ((prvmask == mask) && (dcnt > 0) &&                  \
-                   (dict[dcnt-1].cnt < (IMPS_MAX_CNT-1))) {            \
-                       /* not a repeat header */                       \
-                       if (!dict[dcnt-1].repeat) {                     \
-                               /* if compressed */                     \
-                               if (dict[dcnt-1].cnt > 1) {             \
-                                       /* uncompress last */           \
-                                       dict[dcnt-1].cnt--;             \
-                                       /* new header */                \
-                                       dict[dcnt].cnt = 1;             \
-                                       dict[dcnt].flags = 0;           \
-                                       dcnt++;                         \
-                               }                                       \
-                               /* set repeat */                        \
-                               dict[dcnt-1].repeat = 1;                \
-                       }                                               \
-                       /* increase cnt */                              \
-                       dict[dcnt-1].cnt++;                             \
-               } else { /* new mask (or run out of header count) */    \
-                       prvmask=mask;                                   \
-                       im[icnt] = mask;                                \
-                       icnt++;                                         \
-                       if ((dcnt > 0) && !(dict[dcnt-1].repeat) &&     \
-                           (dict[dcnt-1].cnt < (IMPS_MAX_CNT-1))) {    \
-                               dict[dcnt-1].cnt++;                     \
-                       } else {                                        \
-                               dict[dcnt].cnt = 1;                     \
-                               dict[dcnt].repeat = 0;                  \
-                               dict[dcnt].flags = 0;                   \
-                               dcnt++;                                 \
-                       }                                               \
-               }                                                       \
-       }                                                               \
-} while (0)
+       } while (0)
 
 static void
 imprints_create(BAT *b, void *inbins, BUN *stats, bte bits,
@@ -162,25 +164,25 @@ imprints_create(BAT *b, void *inbins, BU
 #endif
 
 #define FILL_HISTOGRAM(TYPE)                                           \
-do {                                                                   \
-       BUN k;                                                          \
-       TYPE *restrict s = (TYPE *) Tloc(s4, 0);                        \
-       TYPE *restrict h = imprints->bins;                              \
-       if (cnt < 64-1) {                                               \
-               TYPE max = GDK_##TYPE##_max;                            \
-               for (k = 0; k < cnt; k++)                               \
-                       h[k] = s[k];                                    \
-               while (k < (BUN) imprints->bits)                        \
-                       h[k++] = max;                                   \
-               CLRMEM();                                               \
-       } else {                                                        \
-               double y, ystep = (double) cnt / (64 - 1);              \
-               for (k = 0, y = 0; (BUN) y < cnt; y += ystep, k++)      \
-                       h[k] = s[(BUN) y];                              \
-               if (k == 64 - 1) /* there is one left */                \
-                       h[k] = s[cnt - 1];                              \
-       }                                                               \
-} while (0)
+       do {                                                            \
+               BUN k;                                                  \
+               TYPE *restrict s = (TYPE *) Tloc(s4, 0);                \
+               TYPE *restrict h = imprints->bins;                      \
+               if (cnt < 64-1) {                                       \
+                       TYPE max = GDK_##TYPE##_max;                    \
+                       for (k = 0; k < cnt; k++)                       \
+                               h[k] = s[k];                            \
+                       while (k < (BUN) imprints->bits)                \
+                               h[k++] = max;                           \
+                       CLRMEM();                                       \
+               } else {                                                \
+                       double y, ystep = (double) cnt / (64 - 1);      \
+                       for (k = 0, y = 0; (BUN) y < cnt; y += ystep, k++) \
+                               h[k] = s[(BUN) y];                      \
+                       if (k == 64 - 1) /* there is one left */        \
+                               h[k] = s[cnt - 1];                      \
+               }                                                       \
+       } while (0)
 
 /* Check whether we have imprints on b (and return true if we do).  It
  * may be that the imprints were made persistent, but we hadn't seen
@@ -556,10 +558,10 @@ BATimprints(BAT *b)
 }
 
 #define getbin(TYPE,B)                         \
-do {                                           \
-       register const TYPE val = * (TYPE *) v; \
-       GETBIN(ret,val,B);                      \
-} while (0)
+       do {                                    \
+               const TYPE val = * (TYPE *) v;  \
+               GETBIN(ret,val,B);              \
+       } while (0)
 
 int
 IMPSgetbin(int tpe, bte bits, const char *restrict inbins, const void 
*restrict v)
@@ -567,50 +569,43 @@ IMPSgetbin(int tpe, bte bits, const char
        int ret = -1;
 
        switch (tpe) {
-       case TYPE_bte:
-       {
+       case TYPE_bte: {
                const bte *restrict bins = (bte *) inbins;
                BINSIZE(bits, getbin, bte);
+               break;
        }
-               break;
-       case TYPE_sht:
-       {
+       case TYPE_sht: {
                const sht *restrict bins = (sht *) inbins;
                BINSIZE(bits, getbin, sht);
+               break;
        }
-               break;
-       case TYPE_int:
-       {
+       case TYPE_int: {
                const int *restrict bins = (int *) inbins;
                BINSIZE(bits, getbin, int);
+               break;
        }
-               break;
-       case TYPE_lng:
-       {
+       case TYPE_lng: {
                const lng *restrict bins = (lng *) inbins;
                BINSIZE(bits, getbin, lng);
+               break;
        }
-               break;
 #ifdef HAVE_HGE
-       case TYPE_hge:
-       {
+       case TYPE_hge: {
                const hge *restrict bins = (hge *) inbins;
                BINSIZE(bits, getbin, hge);
+               break;
        }
-               break;
 #endif
-       case TYPE_flt:
-       {
+       case TYPE_flt: {
                const flt *restrict bins = (flt *) inbins;
                BINSIZE(bits, getbin, flt);
+               break;
        }
-               break;
-       case TYPE_dbl:
-       {
+       case TYPE_dbl: {
                const dbl *restrict bins = (dbl *) inbins;
                BINSIZE(bits, getbin, dbl);
+               break;
        }
-               break;
        default:
                assert(0);
                (void) inbins;
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -339,10 +339,22 @@ hashselect(BAT *b, struct canditer *rest
                assert(imprints);                                       \
                *algo = parent ? "parent imprints select " #TEST " 
(canditer_next" #ISDENSE ")" : "imprints select " #TEST " (canditer_next" 
#ISDENSE ")"; \
                switch (imprints->bits) {                               \
-               case 8:  checkMINMAX(8, TYPE); impsmask(ISDENSE,TEST,8); break; 
\
-               case 16: checkMINMAX(16, TYPE); impsmask(ISDENSE,TEST,16); 
break; \
-               case 32: checkMINMAX(32, TYPE); impsmask(ISDENSE,TEST,32); 
break; \
-               case 64: checkMINMAX(64, TYPE); impsmask(ISDENSE,TEST,64); 
break; \
+               case 8:                                                 \
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to