Changeset: dfe3bc75fbae for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/dfe3bc75fbae Modified Files: gdk/gdk_calc.c gdk/gdk_calc_convert.c gdk/gdk_calc_muldiv.c gdk/gdk_calc_private.h Branch: default Log Message:
Merge with Jan2022 branch.
diffs (78 lines):
diff --git a/gdk/gdk_calc_convert.c b/gdk/gdk_calc_convert.c
--- a/gdk/gdk_calc_convert.c
+++ b/gdk/gdk_calc_convert.c
@@ -443,7 +443,8 @@ convert_##TYPE1##_##TYPE2(const TYPE1 *s
dst[i] = TYPE2##_nil; \
nils++; \
} else { \
- dst[i] = (TYPE2) round##TYPE1(v * mul); \
+ long double m = (long double) v * mul; \
+ dst[i] = (TYPE2) rounddbl(m); \
if ((is_##TYPE2##_nil(dst[i]) || \
(precision && \
(dst[i] >= prec || \
@@ -466,7 +467,8 @@ convert_##TYPE1##_##TYPE2(const TYPE1 *s
dst[i] = TYPE2##_nil; \
nils++; \
} else { \
- dst[i] = (TYPE2) round##TYPE1(v * mul); \
+ long double m = (long double) v * mul; \
+ dst[i] = (TYPE2) rounddbl(m); \
if ((is_##TYPE2##_nil(dst[i]) || \
(precision && \
(dst[i] >= prec || \
diff --git a/gdk/gdk_calc_muldiv.c b/gdk/gdk_calc_muldiv.c
--- a/gdk/gdk_calc_muldiv.c
+++ b/gdk/gdk_calc_muldiv.c
@@ -360,7 +360,7 @@ mul_##TYPE1##_##TYPE2##_##TYPE3(
\
dst[k] = TYPE3##_nil; \
nils++; \
} else { \
- double m = lft[i] * rgt[j]; \
+ long double m = lft[i] * (long double) rgt[j]; \
dst[k] = (TYPE3) rounddbl(m); \
} \
} \
@@ -382,7 +382,7 @@ mul_##TYPE1##_##TYPE2##_##TYPE3(
\
dst[k] = TYPE3##_nil; \
nils++; \
} else { \
- double m = lft[i] * rgt[j]; \
+ long double m = lft[i] * (long double) rgt[j]; \
dst[k] = (TYPE3) rounddbl(m); \
} \
} \
@@ -2674,8 +2674,7 @@ div_##TYPE1##_##TYPE2##_##TYPE3(
\
dst[k] = TYPE3##_nil; \
nils++; \
} else { \
- m = lft[i] / rgt[j]; \
- dst[k] = (TYPE3) rounddbl(m); \
+ dst[k] = (TYPE3) rounddbl(lft[i] /
(long double) rgt[j]); \
} \
} \
} \
@@ -2705,8 +2704,7 @@ div_##TYPE1##_##TYPE2##_##TYPE3(
\
dst[k] = TYPE3##_nil; \
nils++; \
} else { \
- m = lft[i] / rgt[j]; \
- dst[k] = (TYPE3) rounddbl(m); \
+ dst[k] = (TYPE3) rounddbl(lft[i] /
(long double) rgt[j]); \
} \
} \
} \
diff --git a/gdk/gdk_calc_private.h b/gdk/gdk_calc_private.h
--- a/gdk/gdk_calc_private.h
+++ b/gdk/gdk_calc_private.h
@@ -652,9 +652,7 @@ BUN dofsum(const void *restrict values,
} while (0)
#ifdef TRUNCATE_NUMBERS
-#define roundflt(x) (x)
#define rounddbl(x) (x)
#else
-#define roundflt(x) roundf(x)
-#define rounddbl(x) round(x)
+#define rounddbl(x) roundl(x)
#endif
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]
