Skip to content

Releases: jenetics/prngine

v2.0.0

11 Nov 18:48
v2.0.0
7a37ee8
Compare
Choose a tag to compare

Improvements

Make the random engines compatible with the RandomGenerator API of Java 17.

All random generators can be created with new or via the RandomGenerator.of("<name>") or RandomGeneratorFactory.of("<name>") factory method.

final LCG64ShiftRandom random1 = new LCG64ShiftRandom();
final RandomGenerator random2 = RandomGenerator.of("LCG64ShiftRandom");
final RandomGenerator random3 = RandomGeneratorFactory.of("LCG64ShiftRandom").create();

The following PRNGs are implemented:

  • KISS32Random: Implementation of an simple PRNG as proposed in Good Practice in (Pseudo) Random Number Generation for Bioinformatics Applications (JKISS32, page 3) David Jones, UCL Bioinformatics Group.
  • KISS64Random: Implementation of an simple PRNG as proposed in Good Practice in (Pseudo) Random Number Generation for Bioinformatics Applications (JKISS64, page 10) David Jones, UCL Bioinformatics Group.
  • LCG64ShiftRandom: This class implements a linear congruential PRNG with additional bit-shift transition. It is a port of the trng::lcg64_shift PRNG class of the TRNG library created by Heiko Bauke.
  • MT19937_32Random: This is a 32-bit version of Mersenne Twister pseudorandom number generator.
  • MT19937_64Random: This is a 64-bit version of Mersenne Twister pseudorandom number generator.
  • XOR32ShiftRandom: This generator was discovered and characterized by George Marsaglia [Xorshift RNGs]. In just three XORs and three shifts (generally fast operations) it produces a full period of 232 - 1 on 32 bits. (The missing value is zero, which perpetuates itself and must be avoided.) High and low bits pass Diehard.
  • XOR64ShiftRandom: This generator was discovered and characterized by George Marsaglia [Xorshift RNGs]. In just three XORs and three shifts (generally fast operations) it produces a full period of 264 - 1 on 64 bits. (The missing value is zero, which perpetuates itself and must be avoided.) High and low bits pass Diehard.

v1.1.0

24 Nov 18:50
Compare
Choose a tag to compare

Improvements

  • #26: Convert Gradle build scripts from Groovy to Kotlin and prepare for Java 11.

v1.0.2

22 Jul 19:24
Compare
Choose a tag to compare

Improvements

  • #21: Update Gradle version and add CI build for Java 11.

Bugs

v1.0.1

21 Jul 15:14
Compare
Choose a tag to compare

Improvements

  • #3: Define stable module name. Set the Automatic-Module-Name to io.jenetics.prngine.

v1.0.0

06 Mar 18:30
Compare
Choose a tag to compare

Initial PRNGine version

PRNGine is a pseudo-random number generator library for sequential and parallel Monte Carlo simulations. It has been designed to work smoothly with the Jenetics GA library, but it has no dependency to it. All PRNG implementations of this library extends the Java Random class, which makes it easily usable in other projects. The PRNGs are not cryptographically strong RNGs.

The following PRNGs are currently implemented:

  • KISS32Random: Implementation of an simple PRNG as proposed in Good Practice in (Pseudo) Random Number Generation for Bioinformatics Applications (JKISS32, page 3) David Jones, UCL Bioinformatics Group.
  • KISS64Random: Implementation of an simple PRNG as proposed in Good Practice in (Pseudo) Random Number Generation for Bioinformatics Applications (JKISS64, page 10) David Jones, UCL Bioinformatics Group.
  • LCG64ShiftRandom: This class implements a linear congruential PRNG with additional bit-shift transition. It is a port of the trng::lcg64_shift PRNG class of the TRNG library created by Heiko Bauke.
  • MT19937_32Random: This is a 32-bit version of Mersenne Twister pseudorandom number generator.
  • MT19937_64Random: This is a 64-bit version of Mersenne Twister pseudorandom number generator.
  • XOR32ShiftRandom: This generator was discovered and characterized by George Marsaglia [Xorshift RNGs]. In just three XORs and three shifts (generally fast operations) it produces a full period of 232 - 1 on 32 bits. (The missing value is zero, which perpetuates itself and must be avoided.) High and low bits pass Diehard.
  • XOR64ShiftRandom: This generator was discovered and characterized by George Marsaglia [Xorshift RNGs]. In just three XORs and three shifts (generally fast operations) it produces a full period of 264 - 1 on 64 bits. (The missing value is zero, which perpetuates itself and must be avoided.) High and low bits pass Diehard.