Displaying 3 results from an estimated 3 matches for "mod_iterate1".
2018 Sep 24
3
Fwd: Bug report: cbind with numeric and raw gives incorrect result
Hi there,
using cbind with a numeric and raw argument produces an incorrect result.
I've posted some details below,
kind regards,
Mike.
e.g.
> cbind(0, as.raw(0))
[,1] [,2]
[1,] 0 6.950136e-310
A longer example shows that the result is not a rounding error, is not
consistent, and repeated applications get different results.
> cbind(0, as.raw(1:10))
2018 Sep 25
1
Fwd: Bug report: cbind with numeric and raw gives incorrect result
...longer observed the odd
> behavior reported by mikefc.
>
> Index: src/main/bind.c
> ===================================================================
> --- src/main/bind.c (revision 75340)
> +++ src/main/bind.c (working copy)
> @@ -1381,11 +1381,16 @@
> MOD_ITERATE1(idx, k, i, i1, {
> LOGICAL(result)[n++] = RAW(u)[i1] ? TRUE : FALSE;
> });
> - } else {
> + } else if (mode == INTSXP) {
> R_xlen_t i, i1;
> MOD_ITERATE1(idx, k, i, i1, {
> INTEGER(re...
2018 Sep 25
0
Fwd: Bug report: cbind with numeric and raw gives incorrect result
...ast build R with this patch and then no longer observed the odd behavior reported by mikefc.
Index: src/main/bind.c
===================================================================
--- src/main/bind.c?? ?(revision 75340)
+++ src/main/bind.c?? ?(working copy)
@@ -1381,11 +1381,16 @@
??? ??? ??? ?MOD_ITERATE1(idx, k, i, i1, {
??? ??? ??? ???? LOGICAL(result)[n++] = RAW(u)[i1] ? TRUE : FALSE;
??? ??? ??? ?});
-?? ??? ???? } else {
+?? ??? ???? } else if (mode == INTSXP) {
??? ??? ??? ?R_xlen_t i, i1;
??? ??? ??? ?MOD_ITERATE1(idx, k, i, i1, {
??? ??? ??? ???? INTEGER(result)[n++] = (unsigned char) RAW(u)...