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

Reply via email to