Changeset: cdbb0fe115de for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cdbb0fe115de
Modified Files:
gdk/gdk_analytic_func.c
Branch: Jun2020
Log Message:
Removed unnecessary overflow checks on standard deviation analytical function
diffs (41 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
@@ -1711,12 +1711,9 @@ GDKanalyticalavg(BAT *r, BAT *b, BAT *s,
if (is_##TPE##_nil(v)) \
continue; \
n++; \
- SUBF_WITH_CHECK((dbl) v, mean, dbl, delta,
GDK_dbl_max, goto calc_overflow); \
- dn = delta / n; \
- ADDF_WITH_CHECK(dn, mean, dbl, mean,
GDK_dbl_max, goto calc_overflow); \
- SUBF_WITH_CHECK((dbl) v, mean, dbl, dn,
GDK_dbl_max, goto calc_overflow); \
- MULF4_WITH_CHECK(delta, dn, dbl, dn2,
GDK_dbl_max, dbl, goto calc_overflow); \
- ADDF_WITH_CHECK(m2, dn2, dbl, m2, GDK_dbl_max,
goto calc_overflow); \
+ delta = (dbl) v - mean; \
+ mean += delta / n; \
+ m2 += delta * ((dbl) v - mean); \
} \
if (n > SAMPLE) { \
*rb = OP; \
@@ -1743,10 +1740,9 @@ GDKanalyticalavg(BAT *r, BAT *b, BAT *s,
gdk_return \
GDKanalytical_##NAME(BAT *r, BAT *b, BAT *s, BAT *e, int tpe) \
{ \
- bool abort_on_error = true; \
BUN i = 0, cnt = BATcount(b), n = 0, nils = 0; \
lng *restrict start, *restrict end; \
- dbl *restrict rb = (dbl *) Tloc(r, 0), mean = 0, m2 = 0, delta, dn,
dn2; \
+ dbl *restrict rb = (dbl *) Tloc(r, 0), mean = 0, m2 = 0, delta; \
\
assert(s && e); \
start = (lng *) Tloc(s, 0); \
@@ -1780,9 +1776,6 @@ GDKanalytical_##NAME(BAT *r, BAT *b, BAT
r->tnonil = nils == 0; \
r->tnil = nils > 0; \
return GDK_SUCCEED; \
-calc_overflow: \
- GDKerror("22003!overflow in calculation.\n"); \
- return GDK_FAIL; \
}
GDK_ANALYTICAL_STDEV_VARIANCE(stddev_samp, 1, sqrt(m2 / (n - 1)), "standard
deviation")
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list