This is a tiny self-contained C++ implementation of the PCG32 random number based on code by Melissa O'Neill available at http://www.pcg-random.org.
I decided to put together my own version because the official small implementation lacks a C++ interface and various important features (e.g. rewind/difference support, shuffling, floating point sample generation), while while the official C++ version is extremely complex and seems to be intended for research on PRNGs involving the entire PCG family.
pcg32_8.h contains a vectorized implementation designed by myself
which runs eight PCG32 PRNGs in parallel. Expect to get a ~3-4x speedup when
generating single or double precision floats.
Wenzel Jakob June 2016
Table of Content