Changeset: 277fb7519a09 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=277fb7519a09 Modified Files: gdk/gdk_analytic.h gdk/gdk_analytic_bounds.c gdk/gdk_analytic_func.c Branch: Apr2019 Log Message:
Layout. diffs (truncated from 4427 to 300 lines): diff --git a/gdk/gdk_analytic.h b/gdk/gdk_analytic.h --- a/gdk/gdk_analytic.h +++ b/gdk/gdk_analytic.h @@ -18,19 +18,21 @@ gdk_export gdk_return GDKanalyticaldiff(BAT *r, BAT *b, BAT *p, int tpe); -gdk_export gdk_return GDKanalyticalntile(BAT *r, BAT *b, BAT *p, int tpe, const void* restrict ntile); -gdk_export gdk_return GDKanalyticallag(BAT *r, BAT *b, BAT *p, BUN lag, const void* restrict default_value, int tpe); -gdk_export gdk_return GDKanalyticallead(BAT *r, BAT *b, BAT *p, BUN lead, const void* restrict default_value, int tpe); +gdk_export gdk_return GDKanalyticalntile(BAT *r, BAT *b, BAT *p, int tpe, const void *restrict ntile); +gdk_export gdk_return GDKanalyticallag(BAT *r, BAT *b, BAT *p, BUN lag, const void *restrict default_value, int tpe); +gdk_export gdk_return GDKanalyticallead(BAT *r, BAT *b, BAT *p, BUN lead, const void *restrict default_value, int tpe); -gdk_export gdk_return GDKanalyticalwindowbounds(BAT *r, BAT *b, BAT *p, BAT *l, const void* restrict bound, - int tp1, int tp2, int unit, bool preceding, lng first_half); +gdk_export gdk_return GDKanalyticalwindowbounds(BAT *r, BAT *b, BAT *p, BAT *l, + const void *restrict bound, + int tp1, int tp2, int unit, + bool preceding, lng first_half); gdk_export gdk_return GDKanalyticalfirst(BAT *r, BAT *b, BAT *s, BAT *e, int tpe); gdk_export gdk_return GDKanalyticallast(BAT *r, BAT *b, BAT *s, BAT *e, int tpe); -gdk_export gdk_return GDKanalyticalnthvalue(BAT *r, BAT *b, BAT *s, BAT *e, BAT *l, const void* restrict bound, int tp1, int tp2); +gdk_export gdk_return GDKanalyticalnthvalue(BAT *r, BAT *b, BAT *s, BAT *e, BAT *l, const void *restrict bound, int tp1, int tp2); gdk_export gdk_return GDKanalyticalmin(BAT *r, BAT *b, BAT *s, BAT *e, int tpe); gdk_export gdk_return GDKanalyticalmax(BAT *r, BAT *b, BAT *s, BAT *e, int tpe); -gdk_export gdk_return GDKanalyticalcount(BAT *r, BAT *b, BAT *s, BAT *e, const bit* restrict ignore_nils, int tpe); +gdk_export gdk_return GDKanalyticalcount(BAT *r, BAT *b, BAT *s, BAT *e, const bit *restrict ignore_nils, int tpe); gdk_export gdk_return GDKanalyticalsum(BAT *r, BAT *b, BAT *s, BAT *e, int tp1, int tp2); gdk_export gdk_return GDKanalyticalprod(BAT *r, BAT *b, BAT *s, BAT *e, int tp1, int tp2); gdk_export gdk_return GDKanalyticalavg(BAT *r, BAT *b, BAT *s, BAT *e, int tpe); diff --git a/gdk/gdk_analytic_bounds.c b/gdk/gdk_analytic_bounds.c --- a/gdk/gdk_analytic_bounds.c +++ b/gdk/gdk_analytic_bounds.c @@ -11,460 +11,462 @@ #include "gdk_analytic.h" #include "gdk_calc_private.h" -#define ANALYTICAL_WINDOW_BOUNDS_ROWS_PRECEDING(LIMIT) \ - do { \ - lng calc1, calc2; \ - j = k; \ - for(; k<i; k++, rb++) { \ - lng rlimit = (lng) LIMIT; \ +#define ANALYTICAL_WINDOW_BOUNDS_ROWS_PRECEDING(LIMIT) \ + do { \ + lng calc1, calc2; \ + j = k; \ + for (; k < i; k++, rb++) { \ + lng rlimit = (lng) LIMIT; \ SUB_WITH_CHECK(k, rlimit, lng, calc1, GDK_lng_max, goto calc_overflow); \ ADD_WITH_CHECK(calc1, !first_half, lng, calc2, GDK_lng_max, goto calc_overflow); \ - *rb = MAX(calc2, j); \ - } \ - } while(0) + *rb = MAX(calc2, j); \ + } \ + } while (0) -#define ANALYTICAL_WINDOW_BOUNDS_ROWS_FOLLOWING(LIMIT) \ - do { \ - lng calc1, calc2; \ - for(; k<i; k++, rb++) { \ - lng rlimit = (lng) LIMIT; \ +#define ANALYTICAL_WINDOW_BOUNDS_ROWS_FOLLOWING(LIMIT) \ + do { \ + lng calc1, calc2; \ + for (; k < i; k++, rb++) { \ + lng rlimit = (lng) LIMIT; \ ADD_WITH_CHECK(rlimit, k, lng, calc1, GDK_lng_max, goto calc_overflow); \ ADD_WITH_CHECK(calc1, !first_half, lng, calc2, GDK_lng_max, goto calc_overflow); \ - *rb = MIN(calc2, i); \ - } \ - } while(0) + *rb = MIN(calc2, i); \ + } \ + } while (0) #define ANALYTICAL_WINDOW_BOUNDS_FIXED_RANGE_PRECEDING(TPE1, LIMIT, TPE2) \ - do { \ - lng m = k - 1; \ - TPE1 v, calc; \ - TPE2 rlimit; \ - for(; k<i; k++, rb++) { \ - rlimit = (TPE2) LIMIT; \ - v = bp[k]; \ - if(is_##TPE1##_nil(v)) { \ - for(j=k; ; j--) { \ - if(j == m) \ - break; \ - if(!is_##TPE1##_nil(bp[j])) \ - break; \ - } \ - } else { \ - for(j=k; ; j--) { \ - if(j == m) \ - break; \ - if(is_##TPE1##_nil(bp[j])) \ - break; \ + do { \ + lng m = k - 1; \ + TPE1 v, calc; \ + TPE2 rlimit; \ + for (; k < i; k++, rb++) { \ + rlimit = (TPE2) LIMIT; \ + v = bp[k]; \ + if (is_##TPE1##_nil(v)) { \ + for (j = k; ; j--) { \ + if (j == m) \ + break; \ + if (!is_##TPE1##_nil(bp[j])) \ + break; \ + } \ + } else { \ + for (j = k; ; j--) { \ + if (j == m) \ + break; \ + if (is_##TPE1##_nil(bp[j])) \ + break; \ SUB_WITH_CHECK(v, bp[j], TPE1, calc, GDK_##TPE1##_max, goto calc_overflow); \ if ((TPE2)(ABSOLUTE(calc)) > rlimit) \ - break; \ - } \ - } \ - j++; \ - *rb = j; \ - } \ - } while(0) + break; \ + } \ + } \ + j++; \ + *rb = j; \ + } \ + } while (0) #define ANALYTICAL_WINDOW_BOUNDS_FIXED_RANGE_FOLLOWING(TPE1, LIMIT, TPE2) \ - do { \ - TPE1 v, calc; \ - TPE2 rlimit; \ - for(; k<i; k++, rb++) { \ - rlimit = (TPE2) LIMIT; \ - v = bp[k]; \ - if(is_##TPE1##_nil(v)) { \ - for(j=k+1; j<i; j++) { \ - if(!is_##TPE1##_nil(bp[j])) \ - break; \ - } \ - } else { \ - for(j=k+1; j<i; j++) { \ - if(is_##TPE1##_nil(bp[j])) \ - break; \ + do { \ + TPE1 v, calc; \ + TPE2 rlimit; \ + for (; k < i; k++, rb++) { \ + rlimit = (TPE2) LIMIT; \ + v = bp[k]; \ + if (is_##TPE1##_nil(v)) { \ + for (j =k + 1; j < i; j++) { \ + if (!is_##TPE1##_nil(bp[j])) \ + break; \ + } \ + } else { \ + for (j = k + 1; j < i; j++) { \ + if (is_##TPE1##_nil(bp[j])) \ + break; \ SUB_WITH_CHECK(v, bp[j], TPE1, calc, GDK_##TPE1##_max, goto calc_overflow); \ if ((TPE2)(ABSOLUTE(calc)) > rlimit) \ - break; \ - } \ - } \ - *rb = j; \ - } \ - } while(0) + break; \ + } \ + } \ + *rb = j; \ + } \ + } while (0) #define ANALYTICAL_WINDOW_BOUNDS_FIXED_GROUPS_PRECEDING(TPE1, LIMIT, TPE2) \ - do { \ - lng m = k - 1; \ - for(; k<i; k++, rb++) { \ - TPE2 rlimit = (TPE2) LIMIT; \ - TPE1 v = bp[k]; \ - if(is_##TPE1##_nil(v)) { \ - for(j=k; ; j--) { \ - if(j == m) \ - break; \ - if(!is_##TPE1##_nil(bp[j])) \ - break; \ - } \ - } else { \ - for(j=k; ; j--) { \ - if(j == m) \ - break; \ - if(is_##TPE1##_nil(bp[j])) \ - break; \ - if(v != bp[j]) { \ - if(rlimit == 0) \ - break; \ - rlimit--; \ - v = bp[j]; \ - } \ - } \ - } \ - j++; \ - *rb = j; \ - } \ - } while(0) + do { \ + lng m = k - 1; \ + for (; k < i; k++, rb++) { \ + TPE2 rlimit = (TPE2) LIMIT; \ + TPE1 v = bp[k]; \ + if (is_##TPE1##_nil(v)) { \ + for (j = k; ; j--) { \ + if (j == m) \ + break; \ + if (!is_##TPE1##_nil(bp[j])) \ + break; \ + } \ + } else { \ + for (j = k; ; j--) { \ + if (j == m) \ + break; \ + if (is_##TPE1##_nil(bp[j])) \ + break; \ + if (v != bp[j]) { \ + if (rlimit == 0) \ + break; \ + rlimit--; \ + v = bp[j]; \ + } \ + } \ + } \ + j++; \ + *rb = j; \ + } \ + } while (0) #define ANALYTICAL_WINDOW_BOUNDS_FIXED_GROUPS_FOLLOWING(TPE1, LIMIT, TPE2) \ - do { \ - for(; k<i; k++, rb++) { \ - TPE2 rlimit = (TPE2) LIMIT; \ - TPE1 v = bp[k]; \ - if(is_##TPE1##_nil(v)) { \ - for(j=k+1; j<i; j++) { \ - if(!is_##TPE1##_nil(bp[j])) \ - break; \ - } \ - } else { \ - for(j=k+1; j<i; j++) { \ - if(is_##TPE1##_nil(bp[j])) \ - break; \ - if(v != bp[j]) { \ - if(rlimit == 0) \ - break; \ - rlimit--; \ - v = bp[j]; \ - } \ - } \ - } \ - *rb = j; \ - } \ - } while(0) + do { \ + for (; k < i; k++, rb++) { \ + TPE2 rlimit = (TPE2) LIMIT; \ + TPE1 v = bp[k]; \ + if (is_##TPE1##_nil(v)) { \ + for (j = k + 1; j < i; j++) { \ + if (!is_##TPE1##_nil(bp[j])) \ + break; \ + } \ + } else { \ + for (j = k + 1; j < i; j++) { \ + if (is_##TPE1##_nil(bp[j])) \ + break; \ + if (v != bp[j]) { \ + if (rlimit == 0) \ + break; \ + rlimit--; \ + v = bp[j]; \ + } \ + } \ + } \ + *rb = j; \ + } \ + } while (0) -#define ANALYTICAL_WINDOW_BOUNDS_CALC_FIXED(TPE1, IMP, LIMIT, TPE2) \ - do { \ - TPE1 *restrict bp = (TPE1*)Tloc(b, 0); \ - if(np) { \ - nend += cnt; \ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list