[Rd] [External] Re: rpois(9, 1e10)

Ben Bolker bbo|ker @end|ng |rom gm@||@com
Mon Jan 20 18:54:52 CET 2020


 Ugh, sounds like competing priorities.

  * maintain type consistency
  * minimize storage (= current version, since 3.0.0)
  * maximize utility for large lambda (= proposed change)
  * keep user interface, and code, simple (e.g., it would be easy enough
to add a switch that provided user control of int vs double return value)
  * backward compatibility



On 2020-01-20 12:33 p.m., Martin Maechler wrote:
>>>>>> Benjamin Tyner 
>>>>>>     on Mon, 20 Jan 2020 08:10:49 -0500 writes:
> 
>     > On 1/20/20 4:26 AM, Martin Maechler wrote:
>     >> Coming late here -- after enjoying a proper weekend ;-) --
>     >> I have been agreeing (with Spencer, IIUC) on this for a long
>     >> time (~ 3 yrs, or more?), namely that I've come to see it as a
>     >> "design bug" that  rpois() {and similar} must return return typeof() "integer".
>     >> 
>     >> More strongly, I'm actually pretty convinced they should return
>     >> (integer-valued) double instead of NA_integer_   and for that
>     >> reason should always return double:
>     >> Even if we have (hopefully) a native 64bit integer in R,
>     >> 2^64 is still teeny tiny compared .Machine$double.max
>     >> 
>     >> (and then maybe we'd have .Machine$longdouble.max  which would
>     >> be considerably larger than double.max unless on Windows, where
>     >> the wise men at Microsoft decided to keep their workload simple
>     >> by defining "long double := double" - as 'long double'
>     >> unfortunately is not well defined by C standards)
>     >> 
>     >> Martin
>     >> 
>     > Martin if you are in favor, then certainly no objection from me! ;-)
> 
>     > So now what about other discrete distributions e.g. could a similar 
>     > enhancement apply here?
> 
> 
>     >> rgeom(10L, 1e-10)
>     >  [1]         NA 1503061294         NA         NA 1122447583         NA
>     >  [7]         NA         NA         NA         NA
>     > Warning message:
>     > In rgeom(10L, 1e-10) : NAs produced
> 
> yes, of course there are several such distributions.
> 
> It's really something that should be discussed (possibly not
> here, .. but then I've started it here ...).
> 
> The  NEWS  for R 3.0.0 contain (in NEW FEATURES) :
> 
>     * Functions rbinom(), rgeom(), rhyper(), rpois(), rnbinom(),
>       rsignrank() and rwilcox() now return integer (not double)
>       vectors.  This halves the storage requirements for large
>       simulations.
> 
> and what I've been suggesting is to revert this change
> (svn rev r60225-6) which was purposefully and diligently done by
> a fellow R core member, so indeed must be debatable. 
> 
> Martin
> 
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



More information about the R-devel mailing list