Thanks all for the details, I appreciate the helpful answers! -Christian On Sat, Apr 25, 2015 at 12:46 PM, William Dunlap <wdun...@tibco.com> wrote:
> Note that the R function rpois() always returns an integer vector and > thus > commonly runs into problems when lambda is near or above 2^31 (the > smallest positive integral double that cannot represented as a 32-bit > signed > integer). > > > set.seed(1) > > rpois(10, 2^31) > [1] 2147454617 NA NA NA 2147412285 NA > NA > [8] NA 2147469496 2147446621 > Warning message: > In rpois(10, 2^31) : NAs produced > > storage.mode(.Last.value) > [1] "integer" > > > > Bill Dunlap > TIBCO Software > wdunlap tibco.com > > On Sat, Apr 25, 2015 at 9:33 AM, Michael Weylandt < > michael.weyla...@gmail.com> wrote: > >> >> On Apr 24, 2015, at 23:58, Christian Gunning <x...@unm.edu> wrote: >> >> Quick question, mainly out of curiousity. I get that Rcpp uses the R >> api on the backend, and in the R api, R::rpois returns a double (and >> Rcpp::rpois returns NumericVector). The R C code doesn't offer much in the >> way of explanation of why double is returned, but always returns a floor() ( >> https://svn.r-project.org/R/trunk/src/nmath/rpois.c). >> >> It seems to me that, in this case, upstream could (should?) cast to >> int. Since it doesn't, downstream users like Rcpp and me must choose >> whether to follow upstream convention or to cast. In this case, is the >> "best practice" to cast-to-int right away, or to follow along and just use >> doubles for everything? >> >> I've run into this recently with other RNG code that returns doubles >> for everything, and I'm wondering if there's an obvious tradeoff that I'm >> missing, like speed versus type-correctness? If anyone has any insights, >> I'd love to hear them. >> >> >> The set of integers exactly representable by a double is a superset of >> those which can represented by a 32bit int. >> >> >> http://stackoverflow.com/questions/759201/representing-integers-in-doubles >> >> _______________________________________________ >> Rcpp-devel mailing list >> Rcpp-devel@lists.r-forge.r-project.org >> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel >> > > -- A man, a plan, a cat, a ham, a yak, a yam, a hat, a canal – Panama!
_______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel