
              Apache Commons RNG 1.2 RELEASE NOTES

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

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.2 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 a future release might make use of
the JPMS modularization feature available in 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 unit tests in module 'commons-rng-sampling'
are bound to fail with some probability; this is expected due to the nature
of random number generation.  The 'maven-surefire-plugin' can be configured
to re-run tests that fail and pass the build if they succeed (the test will
be marked as 'flaky' in the report).

Changes in this version include:

New features:
o RNG-62:  New "CombinationSampler" class. Thanks to Alex D. Herbert.

Fixed Bugs:
o RNG-59:  Use JDK's "SecureRandom" to seed the "SeedFactory".
o RNG-56:  "ZigguratNormalizedGaussianSampler": Missing statements in least used branch.
o RNG-55:  "UnitSphereSampler": Prevent returning NaN components and forbid
        negative dimension. Thanks to Alex D. Herbert.

Changes:
o RNG-63:  "NumberFactory": Some methods have become obsolete following RNG-57.
o RNG-64:  "PermutationSampler" and "CombinationSampler" shared code moved to a utility class.
        Thanks to Alex D. Herbert.
o RNG-61:  "PermutationSampler": Performance improvement. Thanks to Alex D. Herbert.
o RNG-57:  Cache for using up all the bits provided by the underlying source of randomness.
        Thanks to Alex D. Herbert.
o RNG-60:  Use random seeds for unit testing.
o RNG-52:  Set conservative upper bound in "LargePoissonSampler" to avoid truncation.
o RNG-58:  Allow part of RNG state to be contained in base classes, e.g. to enable
        caching in common code (see RNG-57).
o RNG-51:  "PoissonSampler": Performance improvement. Thanks to Alex D. Herbert.


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:

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

=============================================================================

              Apache Commons RNG 1.1 RELEASE NOTES

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

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 a future release might make use of
the JPMS modularization feature available in 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 unit tests in module 'commons-rng-sampling'
are bound to fail with some probability; this is expected due to the nature
of random number generation.  The 'maven-surefire-plugin' can be configured
to re-run tests that fail and pass the build if they succeed (the test will
be marked as 'flaky' in the report).

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".

Fixed Bugs:
o RNG-53:  Class "SamplerBase" has been deprecated.  It was meant for internal use
        only but, through inheritance, it allows incorrect usage of the sampler
        classes.

Changes:
o RNG-50: "PoissonSampler": Algorithms for small mean and large mean have
        been separated into dedicated classes.  Cache precomputation has
        been disabled as it is only marginally used and is a performance
        hit for small sampling sets.Thanks to Alex D. Herbert.
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:

https://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:

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