[Rcpp-devel] sugar: x+y and y+x gives different results when there are NA's in y

Romain Francois romain at r-enthusiasts.com
Sat Nov 22 14:36:22 CET 2014


You get UB if the first is bigger than the second. 

Envoyé de mon iPhone

> Le 22 nov. 2014 à 14:30, Søren Højsgaard <sorenh at math.aau.dk> a écrit :
> 
> OK; thanks! Shall I read this such as "the behaviour is undefined"?
> Søren
> 
> |-----Original Message-----
> |From: Romain Francois [mailto:romain at r-enthusiasts.com]
> |Sent: 22. november 2014 13:25
> |To: Søren Højsgaard
> |Cc: rcpp-devel at lists.r-forge.r-project.org
> |Subject: Re: [Rcpp-devel] sugar: x+y and y+x gives different results when
> |there are NA's in y
> |
> |This has nothing to do with NA. It's just about the size difference.
> |sugar does not make attempt at recycling. Your responsibility.
> |
> |Romain
> |
> |> Le 22 nov. 2014 à 11:48, Søren Højsgaard <sorenh at math.aau.dk> a écrit :
> |>
> |> Dear all,
> |> Came across this:
> |>
> |> #include <Rcpp.h>
> |> using namespace Rcpp;
> |>
> |> //[[Rcpp::export]]
> |> List  sumxy(NumericVector x, NumericVector y){  NumericVector xy =
> |> x+y;  NumericVector yx = y+x;  return List::create(xy, yx); }
> |>
> |> /*** R
> |> x <- c(1,3,5,7)
> |> y <- c(NA,2,4,6,8)
> |> x+y
> |> y+x
> |> sumxy(x, y)
> |> */
> |>
> |>> x <- c(1,3,5,7)
> |>> y <- c(NA,2,4,6,8)
> |>> x+y
> |> [1] NA  5  9 13  9
> |>> y+x
> |> [1] NA  5  9 13  9
> |>> sumxy(x, y)
> |> [[1]]
> |> [1] NA  5  9 13
> |> [[2]]
> |> [1] NA  5  9 13  8
> |>
> |> Is this intentional? Apologies if this has been documented anywhere;
> |was unable to find it.
> |>
> |> Regards
> |> Søren
> |>
> |>
> |> _______________________________________________
> |> Rcpp-devel mailing list
> |> Rcpp-devel at lists.r-forge.r-project.org
> |> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-deve
> |> l
> 


More information about the Rcpp-devel mailing list