Changeset: cb412b1224d1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cb412b1224d1
Modified Files:
gdk/gdk_analytic_func.c
Branch: window-tunning
Log Message:
Cleanup
diffs (truncated from 371 to 300 lines):
diff --git a/gdk/gdk_analytic_func.c b/gdk/gdk_analytic_func.c
--- a/gdk/gdk_analytic_func.c
+++ b/gdk/gdk_analytic_func.c
@@ -1905,71 +1905,6 @@ GDKanalyticalsum(BAT *r, BAT *p, BAT *b,
} \
} while(0)
-#define ANALYTICAL_PROD_CALC_NUM_UNBOUNDED_TILL_CURRENT_ROW(TPE1, TPE2, TPE3) \
- do { \
- TPE2 curval = TPE2##_nil; \
- for (; k < i; k++) { \
- TPE1 v = bp[k]; \
- PROD_NUM(TPE1, TPE2, TPE3); \
- rb[k] = curval; \
- has_nils |= is_##TPE2##_nil(curval); \
- } \
- } while (0)
-
-#define ANALYTICAL_PROD_CALC_NUM_CURRENT_ROW_TILL_UNBOUNDED(TPE1, TPE2, TPE3) \
- do { \
- TPE2 curval = TPE2##_nil; \
- for (j = i - 1; j >= k; j--) { \
- TPE1 v = bp[j]; \
- PROD_NUM(TPE1, TPE2, TPE3); \
- rb[j] = curval; \
- has_nils |= is_##TPE2##_nil(curval); \
- } \
- k = i; \
- } while (0)
-
-#define ANALYTICAL_PROD_CALC_NUM_ALL_ROWS(TPE1, TPE2, TPE3) \
- do { \
- TPE2 curval = TPE2##_nil; \
- for (; j < i; j++) { \
- TPE1 v = bp[j]; \
- PROD_NUM(TPE1, TPE2, TPE3); \
- } \
- for (; k < i; k++) \
- rb[k] = curval; \
- has_nils |= is_##TPE2##_nil(curval); \
- } while (0)
-
-#define ANALYTICAL_PROD_CALC_NUM_CURRENT_ROW(TPE1, TPE2, TPE3) \
- do { \
- for (; k < i; k++) { \
- TPE1 v = bp[k]; \
- if (is_##TPE1##_nil(v)) { \
- rb[k] = TPE2##_nil; \
- has_nils = true; \
- } else { \
- rb[k] = (TPE2) v; \
- } \
- } \
- } while (0)
-
-#define ANALYTICAL_PROD_CALC_NUM_OTHERS(TPE1, TPE2, TPE3) \
- do { \
- TPE2 curval = TPE2##_nil; \
- for (; k < i; k++) { \
- TPE1 *bs = bp + start[k], *be = bp + end[k];
\
- for (; bs < be; bs++) { \
- TPE1 v = *bs; \
- PROD_NUM(TPE1, TPE2, TPE3); \
- } \
- rb[k] = curval; \
- if (is_##TPE2##_nil(curval)) \
- has_nils = true; \
- else \
- curval = TPE2##_nil; /* For the next
iteration */ \
- } \
- } while (0)
-
/* product on integers while checking for overflows on the output */
#define PROD_NUM_LIMIT(TPE1, TPE2, REAL_IMP) \
do { \
@@ -1981,73 +1916,8 @@ GDKanalyticalsum(BAT *r, BAT *p, BAT *b,
} \
} while(0)
-#define ANALYTICAL_PROD_CALC_NUM_LIMIT_UNBOUNDED_TILL_CURRENT_ROW(TPE1, TPE2,
REAL_IMP) \
- do { \
- TPE2 curval = TPE2##_nil; \
- for (; k < i; k++) { \
- TPE1 v = bp[k]; \
- PROD_NUM_LIMIT(TPE1, TPE2, REAL_IMP); \
- rb[k] = curval; \
- has_nils |= is_##TPE2##_nil(curval); \
- } \
- } while (0)
-
-#define ANALYTICAL_PROD_CALC_NUM_LIMIT_CURRENT_ROW_TILL_UNBOUNDED(TPE1, TPE2,
REAL_IMP) \
- do { \
- TPE2 curval = TPE2##_nil; \
- for (j = i - 1; j >= k; j--) { \
- TPE1 v = bp[j]; \
- PROD_NUM_LIMIT(TPE1, TPE2, REAL_IMP); \
- rb[j] = curval; \
- has_nils |= is_##TPE2##_nil(curval); \
- } \
- k = i; \
- } while (0)
-
-#define ANALYTICAL_PROD_CALC_NUM_LIMIT_ALL_ROWS(TPE1, TPE2, REAL_IMP) \
- do { \
- TPE2 curval = TPE2##_nil; \
- for (; j < i; j++) { \
- TPE1 v = bp[j]; \
- PROD_NUM_LIMIT(TPE1, TPE2, REAL_IMP); \
- } \
- for (; k < i; k++) \
- rb[k] = curval; \
- has_nils |= is_##TPE2##_nil(curval); \
- } while (0)
-
-#define ANALYTICAL_PROD_CALC_NUM_LIMIT_CURRENT_ROW(TPE1, TPE2, REAL_IMP)
\
- do { \
- for (; k < i; k++) { \
- TPE1 v = bp[k]; \
- if (is_##TPE1##_nil(v)) { \
- rb[k] = TPE2##_nil; \
- has_nils = true; \
- } else { \
- rb[k] = (TPE2) v; \
- } \
- } \
- } while (0)
-
-#define ANALYTICAL_PROD_CALC_NUM_LIMIT_OTHERS(TPE1, TPE2, REAL_IMP) \
- do { \
- TPE2 curval = TPE2##_nil; \
- for (; k < i; k++) { \
- TPE1 *bs = bp + start[k], *be = bp + end[k];
\
- for (; bs < be; bs++) { \
- TPE1 v = *bs; \
- PROD_NUM_LIMIT(TPE1, TPE2, REAL_IMP); \
- } \
- rb[k] = curval; \
- if (is_##TPE2##_nil(curval)) \
- has_nils = true; \
- else \
- curval = TPE2##_nil; /* For the next
iteration */ \
- } \
- } while (0)
-
/* product on floating-points */
-#define PROD_FP(TPE1, TPE2) \
+#define PROD_FP(TPE1, TPE2, ARG3) \
do { \
if (!is_##TPE1##_nil(v)) { \
if (is_##TPE2##_nil(curval)) { \
@@ -2063,42 +1933,42 @@ GDKanalyticalsum(BAT *r, BAT *p, BAT *b,
} \
} while(0)
-#define ANALYTICAL_PROD_CALC_FP_UNBOUNDED_TILL_CURRENT_ROW(TPE1, TPE2, ARG3)
/* ARG3 is ignored here */ \
+#define ANALYTICAL_PROD_CALC_NUM_UNBOUNDED_TILL_CURRENT_ROW(TPE1, TPE2,
REAL_IMP) \
do { \
TPE2 curval = TPE2##_nil; \
for (; k < i; k++) { \
TPE1 v = bp[k]; \
- PROD_FP(TPE1, TPE2); \
+ REAL_IMP; \
rb[k] = curval; \
has_nils |= is_##TPE2##_nil(curval); \
} \
} while (0)
-#define ANALYTICAL_PROD_CALC_FP_CURRENT_ROW_TILL_UNBOUNDED(TPE1, TPE2, ARG3)
/* ARG3 is ignored here */ \
+#define ANALYTICAL_PROD_CALC_NUM_CURRENT_ROW_TILL_UNBOUNDED(TPE1, TPE2,
REAL_IMP) \
do { \
TPE2 curval = TPE2##_nil; \
for (j = i - 1; j >= k; j--) { \
TPE1 v = bp[j]; \
- PROD_FP(TPE1, TPE2); \
+ REAL_IMP; \
rb[j] = curval; \
has_nils |= is_##TPE2##_nil(curval); \
} \
k = i; \
} while (0)
-#define ANALYTICAL_PROD_CALC_FP_ALL_ROWS(TPE1, TPE2, ARG3) /* ARG3 is
ignored here */ \
+#define ANALYTICAL_PROD_CALC_NUM_ALL_ROWS(TPE1, TPE2, REAL_IMP) \
do { \
TPE2 curval = TPE2##_nil; \
for (; j < i; j++) { \
TPE1 v = bp[j]; \
- PROD_FP(TPE1, TPE2); \
+ REAL_IMP; \
} \
for (; k < i; k++) \
rb[k] = curval; \
has_nils |= is_##TPE2##_nil(curval); \
} while (0)
-#define ANALYTICAL_PROD_CALC_FP_CURRENT_ROW(TPE1, TPE2, ARG3) /* ARG3 is
ignored here */ \
+#define ANALYTICAL_PROD_CALC_NUM_CURRENT_ROW(TPE1, TPE2, REAL_IMP) \
do { \
for (; k < i; k++) { \
TPE1 v = bp[k]; \
@@ -2111,14 +1981,14 @@ GDKanalyticalsum(BAT *r, BAT *p, BAT *b,
} \
} while (0)
-#define ANALYTICAL_PROD_CALC_FP_OTHERS(TPE1, TPE2, ARG3) /* ARG3 is
ignored here */ \
+#define ANALYTICAL_PROD_CALC_NUM_OTHERS(TPE1, TPE2, REAL_IMP) \
do { \
TPE2 curval = TPE2##_nil; \
for (; k < i; k++) { \
- TPE1 *bs = bp + start[i], *be = bp + end[i]; \
+ TPE1 *bs = bp + start[k], *be = bp + end[k];
\
for (; bs < be; bs++) { \
TPE1 v = *bs; \
- PROD_FP(TPE1, TPE2); \
+ REAL_IMP; \
} \
rb[k] = curval; \
if (is_##TPE2##_nil(curval)) \
@@ -2128,20 +1998,20 @@ GDKanalyticalsum(BAT *r, BAT *p, BAT *b,
} \
} while (0)
-#define ANALYTICAL_PROD_CALC_NUM_PARTITIONS(TPE1, TPE2, TPE3_OR_REAL_IMP, IMP)
\
+#define ANALYTICAL_PROD_CALC_NUM_PARTITIONS(TPE1, TPE2, IMP) \
do { \
TPE1 *bp = (TPE1*)Tloc(b, 0); \
TPE2 *restrict rb = (TPE2*)Tloc(r, 0); \
if (p) { \
for (; i < cnt; i++) { \
if (np[i]) \
- IMP(TPE1, TPE2, TPE3_OR_REAL_IMP);
\
+ IMP; \
} \
i = cnt; \
- IMP(TPE1, TPE2, TPE3_OR_REAL_IMP); \
+ IMP; \
} else { \
i = cnt; \
- IMP(TPE1, TPE2, TPE3_OR_REAL_IMP); \
+ IMP; \
} \
} while (0)
@@ -2150,16 +2020,16 @@ GDKanalyticalsum(BAT *r, BAT *p, BAT *b,
case TYPE_lng:{ \
switch (tp1) { \
case TYPE_bte: \
- ANALYTICAL_PROD_CALC_NUM_PARTITIONS(bte, lng, hge,
ANALYTICAL_PROD_CALC_NUM_##IMP); \
+ ANALYTICAL_PROD_CALC_NUM_PARTITIONS(bte, lng,
ANALYTICAL_PROD_CALC_NUM_##IMP(bte, lng, PROD_NUM(bte, lng, hge))); \
break; \
case TYPE_sht: \
- ANALYTICAL_PROD_CALC_NUM_PARTITIONS(sht, lng, hge,
ANALYTICAL_PROD_CALC_NUM_##IMP); \
+ ANALYTICAL_PROD_CALC_NUM_PARTITIONS(sht, lng,
ANALYTICAL_PROD_CALC_NUM_##IMP(sht, lng, PROD_NUM(sht, lng, hge))); \
break; \
case TYPE_int: \
- ANALYTICAL_PROD_CALC_NUM_PARTITIONS(int, lng, hge,
ANALYTICAL_PROD_CALC_NUM_##IMP); \
+ ANALYTICAL_PROD_CALC_NUM_PARTITIONS(int, lng,
ANALYTICAL_PROD_CALC_NUM_##IMP(int, lng, PROD_NUM(int, lng, hge))); \
break; \
case TYPE_lng: \
- ANALYTICAL_PROD_CALC_NUM_PARTITIONS(lng, lng, hge,
ANALYTICAL_PROD_CALC_NUM_##IMP); \
+ ANALYTICAL_PROD_CALC_NUM_PARTITIONS(lng, lng,
ANALYTICAL_PROD_CALC_NUM_##IMP(lng, lng, PROD_NUM(lng, lng, hge))); \
break; \
default: \
goto nosupport; \
@@ -2169,19 +2039,19 @@ GDKanalyticalsum(BAT *r, BAT *p, BAT *b,
case TYPE_hge:{ \
switch (tp1) { \
case TYPE_bte: \
- ANALYTICAL_PROD_CALC_NUM_PARTITIONS(bte, hge,
HGEMUL_CHECK, ANALYTICAL_PROD_CALC_NUM_LIMIT_##IMP); \
+ ANALYTICAL_PROD_CALC_NUM_PARTITIONS(bte, hge,
ANALYTICAL_PROD_CALC_NUM_##IMP(bte, hge, PROD_NUM_LIMIT(bte, hge,
HGEMUL_CHECK))); \
break; \
case TYPE_sht: \
- ANALYTICAL_PROD_CALC_NUM_PARTITIONS(sht, hge,
HGEMUL_CHECK, ANALYTICAL_PROD_CALC_NUM_LIMIT_##IMP); \
+ ANALYTICAL_PROD_CALC_NUM_PARTITIONS(sht, hge,
ANALYTICAL_PROD_CALC_NUM_##IMP(sht, hge, PROD_NUM_LIMIT(sht, hge,
HGEMUL_CHECK))); \
break; \
case TYPE_int: \
- ANALYTICAL_PROD_CALC_NUM_PARTITIONS(int, hge,
HGEMUL_CHECK, ANALYTICAL_PROD_CALC_NUM_LIMIT_##IMP); \
+ ANALYTICAL_PROD_CALC_NUM_PARTITIONS(int, hge,
ANALYTICAL_PROD_CALC_NUM_##IMP(int, hge, PROD_NUM_LIMIT(int, hge,
HGEMUL_CHECK))); \
break; \
case TYPE_lng: \
- ANALYTICAL_PROD_CALC_NUM_PARTITIONS(lng, hge,
HGEMUL_CHECK, ANALYTICAL_PROD_CALC_NUM_LIMIT_##IMP); \
+ ANALYTICAL_PROD_CALC_NUM_PARTITIONS(lng, hge,
ANALYTICAL_PROD_CALC_NUM_##IMP(lng, hge, PROD_NUM_LIMIT(lng, hge,
HGEMUL_CHECK))); \
break; \
case TYPE_hge: \
- ANALYTICAL_PROD_CALC_NUM_PARTITIONS(hge, hge,
HGEMUL_CHECK, ANALYTICAL_PROD_CALC_NUM_LIMIT_##IMP); \
+ ANALYTICAL_PROD_CALC_NUM_PARTITIONS(bte, hge,
ANALYTICAL_PROD_CALC_NUM_##IMP(bte, hge, PROD_NUM_LIMIT(hge, hge,
HGEMUL_CHECK))); \
break; \
default: \
goto nosupport; \
@@ -2193,16 +2063,16 @@ GDKanalyticalsum(BAT *r, BAT *p, BAT *b,
case TYPE_lng:{ \
switch (tp1) { \
case TYPE_bte: \
- ANALYTICAL_PROD_CALC_NUM_PARTITIONS(bte, lng,
LNGMUL_CHECK, ANALYTICAL_PROD_CALC_NUM_LIMIT_##IMP); \
+ ANALYTICAL_PROD_CALC_NUM_PARTITIONS(bte, lng,
ANALYTICAL_PROD_CALC_NUM_##IMP(bte, lng, PROD_NUM(bte, lng, LNGMUL_CHECK)));
\
break; \
case TYPE_sht: \
- ANALYTICAL_PROD_CALC_NUM_PARTITIONS(sht, lng,
LNGMUL_CHECK, ANALYTICAL_PROD_CALC_NUM_LIMIT_##IMP); \
+ ANALYTICAL_PROD_CALC_NUM_PARTITIONS(sht, lng,
ANALYTICAL_PROD_CALC_NUM_##IMP(sht, lng, PROD_NUM(sht, lng, LNGMUL_CHECK)));
\
break; \
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list