| <?xml version="1.0"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <!-- |
| This file is used by the maven-changes-plugin to generate the release notes. |
| Useful ways of finding items to add to this file are: |
| |
| 1. Add items when you fix a bug or add a feature (this makes the |
| release process easy :-). |
| |
| 2. Do a JIRA search for tickets closed since the previous release. |
| |
| 3. Use the report generated by the maven-changelog-plugin to see all |
| SVN commits. |
| |
| To generate the file RELEASE-NOTES.txt from this file: |
| |
| mvn changes:announcement-generate -Prelease-notes [-Dchanges.version] |
| |
| The <action> type attribute can be add,update,fix,remove. |
| --> |
| |
| <!-- NOTE: |
| The description attribute entries below are specially formatted |
| so as to improve the layout of the generated text release notes. |
| |
| The parsing process removes all line feeds, replacing them with a single space. |
| The Velocity template in src/changes/release-notes.vm has been enhanced to replace pairs of adjacent spaces |
| with a new-line in the release notes. (These spaces are ignored when displaying HTML). |
| If the output is not quite correct, check for invisible trailing spaces! |
| --> |
| |
| <document xmlns="http://maven.apache.org/changes/1.0.0" |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/xsd/changes-1.0.0.xsd"> |
| <properties> |
| <title>Apache Commons RNG Release Notes</title> |
| </properties> |
| <body> |
| |
| <release version="1.5" date="TBD" description=" |
| This is a minor release of Apache Commons RNG, containing a |
| few new features and performance improvements. |
| Apache Commons RNG 1.4 contains the following library modules: |
| commons-rng-client-api (requires Java 8) |
| commons-rng-core (requires Java 8) |
| commons-rng-simple (requires Java 8) |
| commons-rng-sampling (requires Java 8) |
| 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 11+. |
| |
| Additional code is provided in the following modules: |
| commons-rng-examples-quadrature (requires Java 8) |
| commons-rng-examples-jmh (requires Java 8) |
| commons-rng-examples-sampling (requires Java 8) |
| commons-rng-examples-stress (requires Java 8) |
| commons-rng-examples-jpms (requires Java 11) |
| It is however not part of the official API and no compatibility |
| should be expected in subsequent releases. |
| |
| It must be noted that, due to the nature of random number |
| generation, some unit tests are bound to fail with some |
| probability. The 'maven-surefire-plugin' is configured to |
| re-run tests that fail, and pass the build if they succeed |
| within the allotted number of reruns (the test will be marked |
| as 'flaky' in the report). |
| |
| The source output type (int/long) of a RNG must maintain |
| behavioural compatibility between releases; derived types |
| may break behavioural compatibility. Any functional changes |
| will be recorded in the release notes. |
| "> |
| <action dev="aherbert" type="add" issue="177"> |
| "sampling": Add samples() method to the API to generate Java 8 streams of sample values. |
| </action> |
| <action dev="aherbert" type="add" issue="168"> |
| New LXM family of random generators. Added implementations of the LXM generators |
| included in JDK 17. |
| </action> |
| <action dev="aherbert" type="add" issue="174"> |
| "RandomSource": Improve support for non-zero seeds. Seeding has been changed to specify |
| a sub-range of the seed that must not be all zero. Introduces a functional change where |
| byte[] seeds generated by RandomSource with a fixed UniformRandomProvider may be different. |
| Seeds are now reproducible across calls using an input random source in an identical state. |
| </action> |
| <action dev="aherbert" type="fix" issue="175"> |
| "RandomSource.MSWS": createSeed(UniformRandomProvider) to handle a bad RNG. |
| This fixes an infinite loop when the RNG output is not suitably random to create a seed. |
| </action> |
| <action dev="aherbert" type="add" issue="173"> |
| "BaseProvider": Add a static method to extend input int[] and long[] seeds to a |
| minimum length. |
| </action> |
| <action dev="aherbert" type="update" issue="171"> |
| Reduce the memory footprint of the cached boolean and int source for the IntProvider |
| and LongProvider. This change has a performance improvement on some JDKs. |
| Note: This introduces a functional compatibility change to the output from the |
| nextInt method of any LongProvider; the output is now little-endian as |
| each long is returned as the low 32-bits then the high 32-bits. |
| The bit output from nextBoolean is unchanged (little-endian order). |
| </action> |
| <action dev="aherbert" type="update" issue="172"> |
| "UniformLongSampler": Precompute rejection threshold for a non-power of 2 range. |
| </action> |
| <action dev="aherbert" type="update" issue="169"> |
| "RandomSource.create": Update array seed conversion to use optimum seed length. |
| Avoid duplication of input bytes and conversion of bytes that will be discarded. |
| This introduces a behavioural change for int[], long[], and int seed conversions. |
| Any fixed seeds from previous versions in byte[], long or the native seed type |
| will create the same RNG state. All array-to-array seed conversions now use little |
| endian format, matching the byte[] conversion behaviour since 1.0. All seed |
| conversions that expand the seed size using the same generation method to provide |
| additional bytes. Conversion of int[] to long avoids loss of bits |
| changing the possible output seeds from 2^32 to 2^64. |
| </action> |
| <action dev="aherbert" type="fix" issue="170"> |
| Update implementations of "UniformRandomProvider.nextBytes" with a range |
| [start, start + length) to be consistent with the exception conditions of the |
| JDK array range checks. |
| </action> |
| <action dev="aherbert" type="add" issue="167"> |
| New "TSampler" class to sample from Student's t-distribution. |
| </action> |
| <action dev="aherbert" type="fix" issue="166"> |
| Update "LogNormalSampler" and "BoxMullerLogNormalSampler" to allow a negative mean for |
| the natural logarithm of the distribution values. |
| </action> |
| <action dev="aherbert" type="fix" issue="165"> |
| "RejectionInversionZipfSampler": Allow a zero exponent in the Zipf sampler. |
| </action> |
| <action dev="aherbert" type="update" issue="160"> |
| "ZigguratSampler": Performance improvement using ternary operator to sort values. |
| </action> |
| </release> |
| |
| <release version="1.4" date="2021-09-13" description=" |
| This is a minor release of Apache Commons RNG, containing a |
| few new features and performance improvements. |
| Apache Commons RNG 1.4 contains the following library modules: |
| commons-rng-client-api (requires Java 8) |
| commons-rng-core (requires Java 8) |
| commons-rng-simple (requires Java 8) |
| commons-rng-sampling (requires Java 8) |
| 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 11+. |
| |
| Additional code is provided in the following modules: |
| commons-rng-examples-quadrature (requires Java 8) |
| commons-rng-examples-jmh (requires Java 8) |
| commons-rng-examples-sampling (requires Java 8) |
| commons-rng-examples-stress (requires Java 8) |
| commons-rng-examples-jpms (requires Java 11) |
| It is however not part of the official API and no compatibility |
| should be expected in subsequent releases. |
| |
| It must be noted that, due to the nature of random number |
| generation, some unit tests are bound to fail with some |
| probability. The 'maven-surefire-plugin' is configured to |
| re-run tests that fail, and pass the build if they succeed |
| within the allotted number of reruns (the test will be marked |
| as 'flaky' in the report). |
| "> |
| <action dev="aherbert" type="update" issue="163"> |
| Update test suite to JUnit 5. |
| </action> |
| <action dev="aherbert" due-to="Arturo Bernal" type="update"> |
| Simplify assertions with simpler equivalent. |
| </action> |
| <action dev="aherbert" type="update" issue="162"> |
| Update the minimum Java version to 1.8. |
| </action> |
| <action dev="aherbert" type="update" issue="160"> |
| "ZigguratSampler.NormalizedGaussian": Performance improvement by extracting ziggurat |
| edge sampling to a separate method. |
| </action> |
| <action dev="aherbert" type="fix" issue="159"> |
| "ZigguratSampler.NormalizedGaussian": Corrected biased sampling within convex regions |
| at the edge of the ziggurat. |
| </action> |
| <action dev="aherbert" type="add" issue="156"> |
| New "DirichletSampler" class to sample from a Dirichlet distribution. |
| </action> |
| <action dev="aherbert" type="update" issue="157"> |
| "UnitSphereSampler": Deprecate public constructor. Use the factory constructor to create |
| an optimal sampler. |
| </action> |
| <action dev="aherbert" type="add" issue="137"> |
| New "StableSampler" class to sample from a stable distribution. |
| </action> |
| <action dev="aherbert" type="add" issue="138"> |
| New "CompositeSamplers" class to sample from a weighted combination of samplers. |
| </action> |
| <action dev="aherbert" type="add" issue="140"> |
| New "LongSampler" interface for sampling a long. New "UniformLongSampler" to sample |
| from a range. |
| </action> |
| <action dev="aherbert" type="update" issue="155"> |
| "ZigguratNormalizedGaussianSampler": Update to a table size of 256. |
| </action> |
| <action dev="aherbert" type="update" issue="152"> |
| Update samplers to use ZigguratSampler.NormalizedGaussian for Gaussian deviates. |
| </action> |
| <action dev="aherbert" type="fix" issue="146"> |
| "GaussianSampler": Prevent infinite mean and standard deviation. |
| </action> |
| <action dev="aherbert" type="update" issue="154"> |
| Update Gaussian samplers to avoid infinity in the tails of the distribution. Applies |
| to: ZigguratNormalisedGaussianSampler; BoxMullerNormalizedGaussianSampler; and |
| BoxMullerGaussianSampler. |
| </action> |
| <action dev="aherbert" type="update" issue="153"> |
| "UnitBallSampler": Update to use the ZigguratSampler for an exponential deviate for |
| ball point picking. |
| </action> |
| <action dev="aherbert" type="update" issue="150"> |
| Update "LargeMeanPoissonSampler" and "GeometricSampler" to use the ZigguratSampler for |
| exponential deviates. |
| </action> |
| <action dev="aherbert" type="add" issue="151"> |
| New "ZigguratSampler" implementation of the modified "Ziggurat" algorithm for |
| Gaussian and exponential sampling. |
| </action> |
| <action dev="aherbert" type="add" issue="147"> |
| New "LevySampler" to sample from a Levy distribution. |
| </action> |
| <action dev="aherbert" type="add" issue="145"> |
| "ContinuousUniformSampler": Add optional support for an open interval: (lower, upper). |
| </action> |
| <action dev="aherbert" type="fix" issue="144"> |
| "AhrensDieterExponentialSampler": Avoid possible infinite loop during sampling if the |
| underlying UniformRandomProvider creates a zero for the uniform deviate. |
| </action> |
| <action dev="aherbert" type="add" issue="143"> |
| "RandomSource": Add an instance create method. Deprecate the static create method. |
| </action> |
| <action dev="aherbert" type="add" issue="136"> |
| New "ObjectSampler<T>" and "SharedStateObjectSampler<T>" interfaces. |
| These interfaces are implemented by samplers returning an object. |
| This changes the functional compatibility of existing samplers that implement |
| SharedStatedSampler<R>: CollectionSampler<T>; CombinationSampler; |
| DiscreteProbabilityCollectionSampler<T>; PermutationSampler; and UnitSphereSampler. |
| The method signature of the SharedStateSampler<R> interface remains |
| 'public R withUniformRandomProvider(UniformRandomProvider)'. The result can still be |
| assigned to an instance of the same class R; it can no longer be assigned to an instance of |
| SharedStatedSampler<R>. It can now be assigned to SharedStateObjectSampler<T> |
| which can be used to generate samples of type <T>. |
| Code that assigned to SharedStatedSampler<R> should be updated. |
| </action> |
| <action dev="aherbert" type="add" issue="135"> |
| New "TetrahedronSampler" to sample uniformly from a tetrahedron. |
| </action> |
| <action dev="aherbert" type="add" issue="134"> |
| New "BoxSampler" to sample uniformly from a box (or hyperrectangle). |
| </action> |
| <action dev="aherbert" type="add" issue="133"> |
| New "LineSampler" to sample uniformly on a line segment. |
| </action> |
| <action dev="aherbert" type="add" issue="131"> |
| New "TriangleSampler" to sample uniformly from a triangle. |
| </action> |
| <action dev="aherbert" type="add" issue="132"> |
| New "o.a.c.rng.sampling.shape" package for sampling coordinates from shapes. |
| </action> |
| <action dev="aherbert" type="fix" issue="130"> |
| "UnitSphereSampler": Fix 1 dimension sampling to only return vectors containing 1 or -1. |
| </action> |
| <action dev="aherbert" type="update" issue="129"> |
| "UnitSphereSampler": Improve performance with specialisations for low order dimensions. |
| Added a factory constructor to create the sampler. |
| </action> |
| <action dev="aherbert" type="add" issue="128"> |
| New "UnitBallSampler" to generate coordinates uniformly within an n-unit ball. |
| </action> |
| <action dev="aherbert" type="add" issue="126"> |
| "PoissonSamplerCache": Method to return a SharedStateDiscreteSampler. |
| </action> |
| <action dev="aherbert" type="add" issue="124"> |
| Add fixed increment versions of the PCG generators. |
| </action> |
| </release> |
| |
| <release version="1.3" date="2019-11-08" description=" |
| This is a minor release of Apache Commons RNG, containing a |
| few new features and performance improvements. |
| Apache Commons RNG 1.3 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. |
| |
| It must be noted that, due to the nature of random number |
| generation, some of unit tests are bound to fail with some |
| probability. The 'maven-surefire-plugin' is configured to |
| re-run tests that fail, and pass the build if they succeed |
| within the allotted number of reruns (the test will be marked |
| as 'flaky' in the report). |
| "> |
| <action dev="aherbert" type="update" issue="RNG-122"> |
| "SeedFactory": Use XoRoShiRo1024PlusPlus as the default source of randomness. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-121"> |
| "ChengBetaSampler": Algorithms for different distribution parameters have |
| been delegated to specialised classes. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-120"> |
| Update security of serialization code for java.util.Random instances. Implement |
| look-ahead deserialization or remove the use of ObjectInputStream.readObject(). |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-76"> |
| "SplitMix64": Added primitive long constructor. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-117"> |
| Additional "XorShiRo" family generators. This adds 4 PlusPlus general purpose variants |
| of existing generators and 3 variants of a large state (1024-bit) generator. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-119"> |
| Add LongJumpable support to XoShiRo generators previously only supporting Jumpable. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-117"> |
| "RandomSource": Support creating a byte[] seed suitable for the implementing |
| generator class. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-116"> |
| "RandomSource": Expose interfaces supported by the implementing generator class |
| with methods isJumpable() and isLongJumpable(). |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-111"> |
| New "JenkinsSmallFast32" and "JenkinsSmallFast64" generators. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-114"> |
| "ListSampler": Select the shuffle algorithm based on the list type. This improves |
| performance for non-RandomAccess lists such as LinkedList. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-19"> |
| "JDKRandomWrapper": Wraps an instance of java.util.Random for use as a |
| UniformRandomProvider. Can wrap a SecureRandom to use functionality |
| provided by the JDK for cryptographic random numbers and platform dependent |
| features such as reading /dev/urandom on Linux. |
| </action> |
| <action dev="aherbert" type="fix" issue="RNG-115"> |
| "JDKRandom": Fixed the restore state method to function when the instance has not |
| previously been used to save state. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-112"> |
| New "DotyHumphreySmallFastCounting32" and "DotyHumphreySmallFastCounting64" generators. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-109"> |
| "DiscreteProbabilityCollectionSampler": Use a faster enumerated probability |
| distribution sampler to replace the binary search algorithm. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-85"> |
| New "MiddleSquareWeylSequence" generator. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-90"> |
| "BaseProvider": Updated to use faster algorithm for nextInt(int). |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-95"> |
| "DiscreteUniformSampler": Updated to use faster algorithms for generation of ranges. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-110"> |
| Factory methods for Discrete and Continuous distribution samplers. The factory method |
| can choose the optimal implementation for the distribution parameters. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-84" due-to="Abhishek Singh Dhadwal"> |
| New Permuted Congruential Generators (PCG) from the PCG family. |
| Added the LCG and MCG 32 bit output versions of the XSH-RS and XSH-RR operations, |
| along with the 64 bit RXS-M-XS edition. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-102"> |
| New "SharedStateSampler" interface to allow a sampler to create a new instance with |
| a new source of randomness. Any pre-computed state can be shared between the samplers. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-108"> |
| Update "SeedFactory" to improve performance. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-99"> |
| New "AliasMethodDiscreteSampler" that can sample from any discrete distribution defined |
| by an array of probabilities. Set-up is O(n) time and sampling is O(1) time. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-100"> |
| New "GuideTableDiscreteSampler" that can sample from any discrete distribution defined |
| by an array of probabilities. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-106"> |
| Ensure SeedFactory produces non-zero seed arrays. This avoids invalid seeding of |
| generators that cannot recover from a seed of zeros. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-98"> |
| New "LongJumpableUniformRandomProvider" interface extends JumpableUniformRandomProvider |
| with a long jump method. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-97"> |
| New "JumpableUniformRandomProvider" interface provides a jump method that advances |
| the generator a large number of steps of the output sequence in a single operation. A |
| copy is returned allowing repeat invocations to create a series of generators |
| for use in parallel computations. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-103"> |
| "LargeMeanPoissonSampler: Switch from SmallMeanPoissonSampler to use |
| KempSmallMeanPoissonSampler for the fractional mean sample. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-75"> |
| "RandomSource.create(...)": Refactor internal components to allow custom seeding routines |
| per random source. Improvements were made to the speed of creating generators with small |
| seeds. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-77"> |
| "NumberFactory": Improve performance of int and long array to/from byte array |
| conversions. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-101"> |
| New "MarsagliaTsangWangDiscreteSampler" that provides samples from a discrete |
| distribution stored as a look-up table using a single random integer deviate. Computes |
| tables for the Poisson or Binomial distributions, and generically any provided discrete |
| probability distribution. |
| </action> |
| <action dev="aherbert" type="fix" issue="RNG-96"> |
| "AhrensDieterMarsagliaTsangGammaSampler": Fix parameter interpretation so that alpha |
| is a 'shape' parameter and theta is a 'scale' parameter. This reverses the functionality |
| of the constructor parameters from previous versions. Dependent code should be checked |
| and parameters reversed to ensure existing functionality is maintained. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-91"> |
| New "KempSmallMeanPoissonSampler" that provides Poisson samples using only 1 random |
| deviate per sample. This algorithm outperforms the SmallMeanPoissonSampler |
| when the generator is slow. |
| </action> |
| <action dev="aherbert" type="fix" issue="RNG-93"> |
| "SmallMeanPoissonSampler": Requires the Poisson probability for p(x=0) to be positive |
| setting an upper bound on the mean of approximately 744.44. |
| </action> |
| <action dev="aherbert" type="fix" issue="RNG-92"> |
| "LargeMeanPoissonSampler": Requires mean >= 1. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-70"> |
| New "XorShiRo" family of generators. This adds 6 new general purpose generators with |
| different periods and 4 related generators with improved performance for floating-point |
| generation. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-88"> |
| Update the generation performance JMH benchmarks to have a reference baseline. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-87"> |
| "MultiplyWithCarry256": Performance improvement by advancing state one step per sample. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-82"> |
| New "XorShift1024StarPhi" generator. This is a modified implementation of |
| XorShift1024Star that improves randomness of the output sequence. The XOR_SHIFT_1024_S |
| enum has been marked deprecated as a note to users to switch to the new |
| XOR_SHIFT_1024_S_PHI version. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-78"> |
| New "ThreadLocalRandomSource" class provides thread safe access to random generators. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-81"> |
| "NumberFactory": Evenly sample all dyadic rationals between 0 and 1. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-79"> |
| Benchmark methods for producing nextDouble and nextFloat. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-73"> |
| Add the methods used from UniformRandomProvider to each sampler in the sampling module. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-74"> |
| "DiscreteUniformSampler": Algorithms for small and large integer ranges have |
| been delegated to specialised classes. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-72"> |
| Add new JMH benchmark ConstructionPerformance. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-71"> |
| Validate parameters for the distribution samplers. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-68"> |
| "AhrensDieterMarsagliaTsangGammaSampler": Algorithms for small and large theta have |
| been delegated to specialised classes. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-67"> |
| Instructions for how to build and run the examples-stress code. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-69"> |
| New "GeometricSampler" class. |
| </action> |
| </release> |
| |
| <release version="1.2" date="2018-12-12" description=" |
| 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. |
| |
| It must be noted that, due to the nature of random number |
| generation, some of unit tests are bound to fail with some |
| probability. The 'maven-surefire-plugin' is configured to |
| re-run tests that fail, and pass the build if they succeed |
| within the allotted number of reruns (the test will be marked |
| as 'flaky' in the report). |
| "> |
| <action dev="erans" type="update" issue="RNG-63"> |
| "NumberFactory": Some methods have become obsolete following RNG-57. |
| </action> |
| <action dev="erans" type="update" issue="RNG-64" due-to="Alex D. Herbert"> |
| "PermutationSampler" and "CombinationSampler" shared code moved to a utility class. |
| </action> |
| <action dev="erans" type="add" issue="RNG-62" due-to="Alex D. Herbert"> |
| New "CombinationSampler" class. |
| </action> |
| <action dev="erans" type="update" issue="RNG-61" due-to="Alex D. Herbert"> |
| "PermutationSampler": Performance improvement. |
| </action> |
| <action dev="erans" type="update" issue="RNG-57" due-to="Alex D. Herbert"> |
| Cache for using up all the bits provided by the underlying source of randomness. |
| </action> |
| <action dev="erans" type="update" issue="RNG-60"> |
| Use random seeds for unit testing. |
| </action> |
| <action dev="erans" type="update" issue="RNG-52"> |
| Set conservative upper bound in "LargePoissonSampler" to avoid truncation. |
| </action> |
| <action dev="erans" type="fix" issue="RNG-59"> |
| Use JDK's "SecureRandom" to seed the "SeedFactory". |
| </action> |
| <action dev="erans" type="update" issue="RNG-58"> |
| Allow part of RNG state to be contained in base classes, e.g. to enable |
| caching in common code (see RNG-57). |
| </action> |
| <action dev="erans" type="update" issue="RNG-51" due-to="Alex D. Herbert"> |
| "PoissonSampler": Performance improvement. |
| </action> |
| <action dev="erans" type="fix" issue="RNG-56"> |
| "ZigguratNormalizedGaussianSampler": Missing statements in least used branch. |
| </action> |
| <action dev="erans" type="fix" issue="RNG-55" due-to="Alex D. Herbert"> |
| "UnitSphereSampler": Prevent returning NaN components and forbid |
| negative dimension. |
| </action> |
| </release> |
| |
| <release version="1.1" date="2018-08-14" description=" |
| 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). |
| "> |
| <action dev="erans" type="fix" issue="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. |
| </action> |
| <action dev="erans" type="update" issue="RNG-50" due-to="Alex D. Herbert"> |
| "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. |
| </action> |
| <action dev="erans" type="add" issue="RNG-37"> |
| Implementation of the "Ziggurat" algorithm for Gaussian sampling. |
| </action> |
| <action dev="erans" type="update" issue="RNG-42"> |
| Use "ZigguratNormalizedGaussianSampler" within the library. |
| </action> |
| <action dev="erans" type="add" issue="RNG-47"> |
| "DiscreteProbabilityCollectionSampler": Sampling from a collection of items |
| with user-defined probabilities (feature ported from "Commons Math"). |
| </action> |
| <action dev="erans" type="add" issue="RNG-43"> |
| "LogNormalSampler" with user-defined underlying "NormalizedGaussianSampler". |
| </action> |
| <action dev="erans" type="update" issue="RNG-46"> |
| Following RNG-43, "BoxMullerLogNormalSampler" has been deprecated. |
| </action> |
| <action dev="erans" type="add" issue="RNG-39"> |
| "UnitSphereSampler": generate random vectors isotropically located |
| on the surface of a sphere (feature ported from "Commons Math"). |
| </action> |
| <action dev="erans" type="add" issue="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). |
| </action> |
| <action dev="erans" type="add" issue="RNG-35"> |
| New generic "GaussianSampler" based on "NormalizedGaussianSampler" |
| marker interface. |
| Implementation of "BoxMullerNormalizedGaussianSampler" deprecates |
| "BoxMullerGaussianSampler". |
| </action> |
| </release> |
| |
| <release version="1.0" date="2016-12-13" description=" |
| 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) |
| "> |
| </release> |
| |
| |
| </body> |
| </document> |