| <?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.6" date="TBD" description=" |
| New features, updates and bug fixes (requires Java 8). |
| "> |
| <action dev="aherbert" type="add" issue="RNG-184"> |
| New "ArraySampler" to support shuffling primitive and generic arrays with |
| sub-range support. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-183"> |
| "InverseTransformParetoSampler": Modified to concentrate samples at the distribution |
| lower/upper bounds for extreme shape parameters. Eliminates generation of outlier |
| infinite samples and NaN samples under certain conditions. Changes sampling to use |
| the RNG nextLong() method in-place of nextDouble(). |
| </action> |
| </release> |
| |
| <release version="1.5" date="2022-09-10" description=" |
| New features, updates and bug fixes. Adds a commons-rng-bom module. Requires Java 8. |
| "> |
| <action dev="aherbert" type="add" issue="RNG-182"> |
| Add a Bill of Materials (BOM) to aid in dependency management when referencing multiple |
| Apache Commons RNG artifacts. The BOM should be used to ensure all imported artifacts are |
| compatible. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-181"> |
| LXM family to support SplittableUniformRandomProvider. This allows creating a parallel |
| stream of generators which will avoid sequence correlations between instances. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-180"> |
| New "SplittableUniformRandomProvider" interface to allow splitting a RNG into two |
| objects, each of which implements the same interface (and can be recursively split |
| indefinitely). Add default methods to support parallel stream implementations |
| of the UniformRandomProvider stream methods. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-179"> |
| "FastLoadedDiceRollerDiscreteSampler": Distribution sampler that uses the |
| Fast Loaded Dice Roller (FLDR) algorithm for exact sampling from a discrete |
| probability distribution. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-178"> |
| "JumpableUniformRandomProvider": Add support to generate Java 8 streams of new |
| random generator instances using the jump method. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-176"> |
| "UniformRandomProvider": Enhance the interface with default methods. Add range sample |
| methods with a lower and upper bound. Add support to generate Java 8 streams of sample |
| values. Note: This moves some method implementations from the core module to the |
| client-api module. Binary compatibility is supported if the versions of these modules are |
| matched. Users of the simple module should ensure the client-api and core modules are |
| resolved as matched versions and not mismatched by transitive dependency resolution. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-177"> |
| "sampling": Add samples() method to the API to generate Java 8 streams of sample values. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-168"> |
| New LXM family of random generators. Added implementations of the LXM generators |
| included in JDK 17. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-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="RNG-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="RNG-173"> |
| "BaseProvider": Add a static method to extend input int[] and long[] seeds to a |
| minimum length. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-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="RNG-172"> |
| "UniformLongSampler": Precompute rejection threshold for a non-power of 2 range. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-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 used in 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 use 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="RNG-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="RNG-167"> |
| New "TSampler" class to sample from Student's t-distribution. |
| </action> |
| <action dev="aherbert" type="fix" issue="RNG-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="RNG-165"> |
| "RejectionInversionZipfSampler": Allow a zero exponent in the Zipf sampler. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-160"> |
| "ZigguratSampler": Performance improvement using ternary operator to sort values. |
| </action> |
| </release> |
| |
| <release version="1.4" date="2021-09-13" description=" |
| New features, updates and bug fixes. Updates the minimum Java version to 8. |
| "> |
| <action dev="aherbert" type="update" issue="RNG-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="RNG-162"> |
| Update the minimum Java version to 1.8. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-160"> |
| "ZigguratSampler.NormalizedGaussian": Performance improvement by extracting ziggurat |
| edge sampling to a separate method. |
| </action> |
| <action dev="aherbert" type="fix" issue="RNG-159"> |
| "ZigguratSampler.NormalizedGaussian": Corrected biased sampling within convex regions |
| at the edge of the ziggurat. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-156"> |
| New "DirichletSampler" class to sample from a Dirichlet distribution. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-157"> |
| "UnitSphereSampler": Deprecate public constructor. Use the factory constructor to create |
| an optimal sampler. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-137"> |
| New "StableSampler" class to sample from a stable distribution. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-138"> |
| New "CompositeSamplers" class to sample from a weighted combination of samplers. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-140"> |
| New "LongSampler" interface for sampling a long. New "UniformLongSampler" to sample |
| from a range. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-155"> |
| "ZigguratNormalizedGaussianSampler": Update to a table size of 256. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-152"> |
| Update samplers to use ZigguratSampler.NormalizedGaussian for Gaussian deviates. |
| </action> |
| <action dev="aherbert" type="fix" issue="RNG-146"> |
| "GaussianSampler": Prevent infinite mean and standard deviation. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-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="RNG-153"> |
| "UnitBallSampler": Update to use the ZigguratSampler for an exponential deviate for |
| ball point picking. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-150"> |
| Update "LargeMeanPoissonSampler" and "GeometricSampler" to use the ZigguratSampler for |
| exponential deviates. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-151"> |
| New "ZigguratSampler" implementation of the modified "Ziggurat" algorithm for |
| Gaussian and exponential sampling. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-147"> |
| New "LevySampler" to sample from a Levy distribution. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-145"> |
| "ContinuousUniformSampler": Add optional support for an open interval: (lower, upper). |
| </action> |
| <action dev="aherbert" type="fix" issue="RNG-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="RNG-143"> |
| "RandomSource": Add an instance create method. Deprecate the static create method. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-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="RNG-135"> |
| New "TetrahedronSampler" to sample uniformly from a tetrahedron. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-134"> |
| New "BoxSampler" to sample uniformly from a box (or hyperrectangle). |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-133"> |
| New "LineSampler" to sample uniformly on a line segment. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-131"> |
| New "TriangleSampler" to sample uniformly from a triangle. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-132"> |
| New "o.a.c.rng.sampling.shape" package for sampling coordinates from shapes. |
| </action> |
| <action dev="aherbert" type="fix" issue="RNG-130"> |
| "UnitSphereSampler": Fix 1 dimension sampling to only return vectors containing 1 or -1. |
| </action> |
| <action dev="aherbert" type="update" issue="RNG-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="RNG-128"> |
| New "UnitBallSampler" to generate coordinates uniformly within an n-unit ball. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-126"> |
| "PoissonSamplerCache": Method to return a SharedStateDiscreteSampler. |
| </action> |
| <action dev="aherbert" type="add" issue="RNG-124"> |
| Add fixed increment versions of the PCG generators. |
| </action> |
| </release> |
| |
| <release version="1.3" date="2019-11-08" description=" |
| New features, updates and bug fixes (requires Java 6). |
| "> |
| <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=" |
| New features, updates and bug fixes (requires Java 6). |
| "> |
| <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=" |
| New features, updates and bug fixes (requires Java 6). |
| "> |
| <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. |
| |
| Contains the following modules: |
| commons-rng-client-api; |
| commons-rng-core; |
| commons-rng-simple; |
| commons-rng-sampling. |
| |
| Requires Java 6. |
| "> |
| </release> |
| |
| |
| </body> |
| </document> |