This modernized fork of pcg-cpp by Total-Random integrates several critical fixes and improvements from the community. Below is a list of changes and their original sources.
- Origin: imneme/pcg-cpp PR #82
- Author: LRFLEW
- Description: Implements a more efficient inverse xorshift operation.
- Origin: imneme/pcg-cpp PR #66
- Author: melak47
- Description: Enables
__declspec(empty_bases)on MSVC to optimize the memory footprint of RNG objects.
- Origin: imneme/pcg-cpp PR #83
- Author: timo-eichhorn
- Description: Makes
result_typepublic to comply with the C++SeedSequenceconcept.
- Origin: SupercriticalSynthesizers/pcg-cpp PR fix-gcc-warnings
- Author: Timo Alho
- Description: Resolves various GCC warnings (clz/ctz truncation) when building with
-Wall.
- Origin: imneme/pcg-cpp PR #99
- Author: Demonese
- Description: Added native support for ARM64 on MSVC using
__umulhfor efficient 128-bit multiplication.
- Origin: imneme/pcg-cpp commit be22608
- Author: brt-v
- Description: Simplified header includes in sample programs and added
basic_usage.cppsample.
- Origin: imneme/pcg-cpp PR #92
- Author: rstub
- Description: Fixes compilation issues where
__uint128isn't available by ensuring consistent type usage.
- Suggestion: david-fong
- Description: Replaced C-style casting and
std::roundwithstd::lroundincppref-sample.cpp.
- Origin: imneme/pcg-cpp PR #87
- Author: rnvannatta
- Description: Fixed rotation functions to rely on compiler idiom recognition instead of undefined behavior for 0-shift.
- Author: Total-Random
- Description: Comprehensive CMake integration with
find_packagesupport and automated testing viactest.
- Author: Total-Random
- Description: Resolved several MSVC-specific issues:
C2678(ambiguous operator) inset_streamandoperator>>.C4458(declaration of 'is_mcg' hides class member).C1090(PDB API call failed) during parallel builds.C4127(conditional expression is constant) in template code.
Special thanks to Melissa O'Neill for creating the original PCG library and to all the community members who have proposed fixes over the years.
We are especially grateful to:
- Ben Haller (bhaller) for his early support, encouragement, and understanding during the initial phases of this fork.
- david-fong (david-fong) for valuable feedback on the CMake build system.