PCG random number generator

Just want to ask if there is a Fortran implementation of PCG random number generator.

Maybe, Attempt of porting the PCG random number generator by Melissa O'Neill to Fortran. The code is not tested. Signed integers are used for the state. · GitHub

That gist by @ivanpribec apparently. Maybe they have a newer version? :slight_smile:

That PCG generator gist is linked to this thread from stdlib: Proposal for statistical distributions · Issue #234 · fortran-lang/stdlib · GitHub

There is also a Fortran wrapper from Daan Van Vugt: GitHub - DaanVanVugt/pcg32-fortran: A wrapper module for the pcg-random family of prng's

Also take a look at the NumPy documentation: Upgrading PCG64 with PCG64DXSM — NumPy v1.23 Manual. Apparently the simpler PCG64 generator has some deficiencies. Both Daan and I ported the PCG32 generator, which likely suffers from the same (if not worse) problems.

I encourage you to test any RNG implementation you find with, either

but preferably both. Daniel Lemire wrote a blog post on Testing non-cryptographic random number generators and also provides a GitHub repository with the instructions needed: GitHub - lemire/testingRNG: Testing common random-number generators (RNG)

@mecej4 referred to these tests recently, in a separate Discourse thread.