5 ms·
This is great, but everything so far is overly positive. Can we get some negative criticism as well. Anyone qualified?
by vtsrh 11y ago
This is great, but everything so far is overly positive. Can we get some negative criticism as well. Anyone qualified?
- yoklov 11y agoI'm not really qualified to speak as to its statistical properties, but I've used this generator a couple times. The biggest downside I ran into is that it requires 64 bit numbers even for the 32 bit RNG, which means its very simple code becomes more complex on a platform with only 32 bit numbers, or in a scripting language. Also, it's not a CSPRNG, if this matters to you. This is minor though, and I would use it again. It's flexibility for seeding and easy serialization outweigh this IMO (and it's still simple compared to e.g. mtrand)
- dhekir 11y agoI must have done something wrong, but I tried the basic C implementation (https://github.com/imneme/pcg-c-basic https://github.com/imneme/pcg-c-basic) on a quick Diehard-like test and it failed. I'm still trying to understand why. Probably not its fault, just that the code is not as forgiving and ready-to-consume as I had expected.
- vtsrh 11y agoIt passed for me. Where did you get the diehard test? If you compiled it directly from http://www.stat.fsu.edu/pub/diehard/ http://www.stat.fsu.edu/pub/diehard/ then it is because that source is broken.
- panax 11y agoTry using Dieharder. It incorporates most of the Diehard tests, as well as other tests and is much more rigorous. sudo apt-get install dieharder http://www.phy.duke.edu/~rgb/General/dieharder.php http://www.phy.duke.edu/~rgb/General/dieharder.php If you make a GSL interface for the RNG it will make using dieharder much easier
- deleted 11y ago[deleted]
- vtsrh 11y agoHow do you build dieharder on windows? I guess you just don't...
- dhekir 11y agoI actually tried a modified OCaml implementation of a very simple test. The issue is probably due to bad seeding/initialization: if I use the given static seed, it passes, but if I try to provide any other seed, it fails on at least one test. I'll try to find a more complete/better tested port, or try to do it myself.