----- Messaggio originale -----
> Da: Rob Weir
>
>
> But would the earlier implementation also pass that same test?
>
> Two test suites specifically for pseudo random number generators are:
>
> Dieharder: http://www.phy.duke.edu/~rgb/General/dieharder.php
>
> and
>
> this test from NIST: http://csrc.nist.gov/groups/ST/toolkit/rng/index.html
>
>> The algorithm is known to pass some very strict statistical tests though.
>>
Indeed I was referring to those two tests. Our new implementation
should pass them.
My simple understanding of the testing is that you usually don't embed the
test in a speadsheet: most testers will generate a sequence of, let's say
1 million numbers and pass them through the tests.
>
> And that is an important thing, that we are starting with an algorithm
> that is already well known. But any given implementation, due to
> subtleties of the implementation details, might not do as well as
> theory. We see that with crypto all the time.
One thing that must be clear is that we don't generate crypto-grade
random numbers, that's far more complex than what I intended to
do. I was rather more concerned on the "Portable" part of PRNG:
it is critical that the RAND() function in Calc doesn't depend on
libc's rand() and it's a shame on whomever design the original
implementation. The algorithm we are using is not really very fast
or has a longest period it just solves a bug ;).
> So it might be worth
> encouraging some more rigorous testing here. In fact, maybe your blog
> post can help recruit some volunteers? Say that we take our numeric
> algorithms very seriously, we're looking for the best. This shows in
> our use of COIN-MP solver code, but also in our new PRNG. We
> encourage anyone who wants to help to put our code through rigorous
> tests and help us find any problems, etc.
>
That is certainly welcome. I hope Andrea is taking notes.
We probably should implement Mersenne twister but with some tweaks
for the seeding, I just haven't seen the need to spend time on it. :)
cheers,
Pedro.