lemire / testingRNG

Testing common random-number generators (RNG)
Apache License 2.0
172 stars 22 forks source link

Add wyrand (upadted wyhash variant) #19

Closed palimondo closed 5 years ago

palimondo commented 5 years ago

Resolves issue #16.

As discussed in lemire/SwiftWyhash/issues/6

I hope this works 🤞, because I have just cloned every wyhash/wyhash64 occurrence into wyrand…

lemire commented 5 years ago

I'm taking it out for a spin.

lemire commented 5 years ago

Made a few fixes but it was fine.

flyingmutant commented 3 years ago

@lemire , are results of your wyrand testing publicly available?

lemire commented 3 years ago

@flyingmutant Folks should be able to run my tests.

The exact results depend on many factors, so I prefer to just offer code that people can run rather than constantly update the numbers for different platforms.

lemire commented 3 years ago

See our summary at https://github.com/lemire/testingRNG#visual-summary

flyingmutant commented 3 years ago

Thanks, I'll try to run the tests myself. I was asking because README only mentions wyhash, not wyrand.

lemire commented 3 years ago

I was asking because README only mentions wyhash, not wyrand.

It is the same function. The wyrand generator is derived from wyhash.

lemire commented 3 years ago

Please refer to the title of the issue: 'Add wyrand (updated wyhash variant)'

lemire commented 3 years ago

Specifically, they are variations.

There must be at least 7 different wyhash/wyrng variations out there... and about ~30 PCG variations and so forth. For the purpose of the README, we pick a representative of each.

Of course, pull requests are invited.

flyingmutant commented 3 years ago

I don't know if it is fair to refer to them as "variations" -- one is doing 2x more work (specifically, bit mixing) than the other, and it is reasonable to expect that this can affect statistical quality.

lemire commented 3 years ago

@flyingmutant Fair point but consider that wyhash and wyrng is not 'one thing' but a family of functions that far exceeds what is present here.