[plt-scheme] Does SRFI-27 specify repeatable PRNGs?
Some clarifications on random numbers generated by different PLT Scheme
versions:
At Wed, 2 Jan 2008 10:54:13 -0700, "Doug Williams" wrote:
> Actually, SRFI 27 specifies repeatable random sources. You have to call
> random-source-randomize! to get different ones. And, there is a
> random-source-pseudo-randomize! procedure that gives you multiple,
> independent, repeatable random sources. There are also routines in the
> science collection to create vectors of independent random sources.
But see below regarding v372 versus other versions.
At Wed, 02 Jan 2008 10:21:14 -0700, Chongkai Zhu wrote:
> > How about the built-in generator of MzScheme, might it change in
> > future or is it part of the specs that it won't change under the hood?
> >
>
> Matthew just changed the built-in generator of MzScheme, as a result of
> a discussion here a few days ago.
But the changes only extend `random' to work with arguments that it
didn't accept before. For results that would have been generated
before, the result is still the same. We expect for no further changes.
> The SRFI 27 implementation in SVN
> (v399) is build on top of the built-in generator, and produces the same
> sequence as the reference implementation of SRFI 27.
To elaborate just a little:
SRFI-27 in v371 and earlier and v3.99.x produce exactly the same
result, and they are the same as the SRFI-27 reference implementation.
[I committed a repair to v3.99.x in SVN just now to put a new random
source in the same initial state as v371 and earlier. Otherwise, the
above wouldn't be true.]
SRFI-27 in v372 produces different results, because the seeding
function is different, and because a different initial state is used
for a random source.
Matthew