ross at biostat.ucsf.edu
2009-Aug-19 03:05 UTC
[Rd] ?Random.user slightly out of sync with code (PR#13895)
Full_Name: Ross Boylan
Version: 2.7.1
OS: linux
Submission from: (NULL) (38.99.193.74)
The help says
Optionally,
functions 'user_unif_nseed' and 'user_unif_seedloc' can be
supplied which are called with no arguments and should return
pointers to the number of seeds and to an integer array of seeds.
However, https://svn.r-project.org/R/trunk/src/main/RNG.c has
RNG_Table[kind].i_seed = (Int32 *) User_unif_seedloc();
so the precise type that should be returned is a pointer to Int32, not to
integer. While on most (all?) current platforms these are the same, why invite
future problems? Correspondingly, nseed is the number of Int32's, not
integers.
Suggested alternative:
Optionally, supply 'user_unif_seedloc', taking no arguments and
returning a
pointer to an Int32 array and 'user_unif_nseed', taking no arguments and
returning the size of that array.
It would also be helpful to clarify who is responsible for controlling the
memory user_unif_seedloc points to, and how long it is expected to last. Might
R write to this memory location?