              Apache Commons RNG 1.1 RELEASE NOTES

The Apache Commons RNG team is pleased to announce the commons-rng-parent-1.1 release!

The Apache Commons RNG project provides pure-Java implementation of pseudo-random generators.

This is a minor release of Apache Commons RNG, containing a
few new features and performance improvements.

Apache Commons RNG 1.1 contains the following library modules:
  commons-rng-client-api (requires Java 6)
  commons-rng-core (requires Java 6)
  commons-rng-simple (requires Java 6)
  commons-rng-sampling (requires Java 6)

The code in module 'commons-rng-core' should not be accessed
directly by applications as future release might make use of
the JPMS modularization feature available from Java 9.

Additional code is provided in the following module:
  commons-rng-examples (requires Java 9)
It is however not part of the official API and no compatibility
should be expected in subsequent releases.

We would like to also note that commons-rng-sampling has mildly 'flaky' tests due to the
non-deterministic nature of random number generation. For this purpose, we have set
failing tests to be re-run in the maven-surefire-plugin. Our current guess is that
the build process could fail somewhere in the realm of 1 - 5 in 100 runs.

Changes in this version include:

New features:
o RNG-37:  Implementation of the "Ziggurat" algorithm for Gaussian sampling.
o RNG-47:  "DiscreteProbabilityCollectionSampler": Sampling from a collection of items
        with user-defined probabilities (feature ported from "Commons Math").
o RNG-43:  "LogNormalSampler" with user-defined underlying "NormalizedGaussianSampler".
o RNG-39:  "UnitSphereSampler": generate random vectors isotropically located
        on the surface of a sphere (feature ported from "Commons Math").
o RNG-36:  "MarsagliaNormalizedGaussianSampler": Faster variation of the
        Box-Muller algorithm.
        This version is used within "AhrensDieterMarsagliaTsangGammaSampler"
        "MarsagliaLogNormalSampler" and "PoissonSampler" (generated sequences
        will thus differ from those generated by version 1.0 of the library).
o RNG-35:  New generic "GaussianSampler" based on "NormalizedGaussianSampler"
        marker interface.
        Implementation of "BoxMullerNormalizedGaussianSampler" deprecates
        "BoxMullerGaussianSampler".


Changes:
o RNG-42:  Use "ZigguratNormalizedGaussianSampler" within the library.
o RNG-46:  Following RNG-43, "BoxMullerLogNormalSampler" has been deprecated.
        Furthermore, its base class has been removed; although it is a binary
        incompatibility, it cannot cause any problem that were not already
        present in code using v1.0 of the library: Calls to the base class
        would have raised a NPE.


For complete information on Apache Commons RNG, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons RNG website:

http://commons.apache.org/proper/commons-rng/

-----------------------------------------------------------------------------

              Apache Commons RNG 1.0 RELEASE NOTES

The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.0

The Apache Commons RNG project provides pure-Java implementation of pseudo-random generators.

This is the first release of Apache Commons RNG.
Apache Commons RNG 1.0 contains the following modules:
 commons-rng-client-api (requires Java 6)
 commons-rng-core (requires Java 6)
 commons-rng-simple (requires Java 6)
 commons-rng-sampling (requires Java 6)
 commons-rng-jmh (requires Java 6)
 commons-rng-examples (requires Java 7)

No changes defined in this version.

For complete information on Apache Commons RNG, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons RNG website:

http://commons.apache.org/proper/commons-rng/


Have fun!
-Apache Commons RNG team