Usage is very simple.
com.github.alexeyr.pcg.Pcg32 class has an interface very similar to
// creates the generator with a "random" seed; use Pcg32(long, long) to specify a seed instead. Pcg32 rnd = new Pcg32(); int n = rnd.nextInt(); // or nextInt(bound), or nextLong(), etc.
You can use
seed(long, long) methods to reseed the generator at any time.
One important difference from
Random is that
Pcg32 instances are not thread-safe. A thread-safe variant may be added later.
PCG-Java is available on JCenter, Sonatype OSS and Maven Central repositories. To use it in your projects, you should be able to just add the following to
pom.xml (or the equivalent for your build system):
<dependencies> ... <dependency> <groupId>com.github.alexeyr.pcg</groupId> <artifactId>pcg</artifactId> <version>0.9.1</version> <!-- latest version number is listed above --> </dependency> ... </dependencies>
Alternately, the code is simple enough that you can just include
Pcg32.java in your code and modify it as desired.
PCG-Java has no external dependencies, but if you want to run complete tests, your system needs to have
make and a C compiler available.
The library is available under the Apache 2.0 license, the same as PCG library.