Releases: ZorPastaman/Random-Generators
Releases · ZorPastaman/Random-Generators
Overtested Release
Added
- Distribution Tests
Extreme Release
Added
- Extreme Value distribution.
- Inclusive float and double generation methods to XorShift engines.
- LCG32 and LCG64 random engines and their distribution wrappers.
- Xoroshiro128+ random engine ana its distribution wrapper.
Removed
- Long, Ulong and Double generation methods from XorShift32 random engine.
Fallback editor fix
Fixed
- DiscreteGeneratorProviderEditor is not Fallback now. It caused issues with some Custom Editors.
Restructure & new distributions
Added
- XorShift128 random engine and wrappers for it.
- Geometric distribution.
- Distributions with setup data (Gamma, Binomial, Geometric, Negative Binomial, Poisson, Weighted)
got special methods and Setup structs that help to compute setup data once and reuse it. - UnityGeneratorStruct. It's the same thing as UnityGeneratorClass but it's a struct.
It's used in distributions to mimic IContinuousGenerator. - FuncGeneratorClass and FuncGeneratorStruct. They are wrappers over Func. They are used
to mimic IContinuousGenerator. The latter is used in distributions. - AddModificator for continuous and discrete generators.
- MultiplyModificator for continuous generators.
- Weibull distribution.
Changed
- Unity 2019.4 is now required.
- XorShift algorithms can now jump forward.
- Generators and filters are not serializable anymore.
- UnityGenerator is renamed to UnityGeneratorClass.
- All distributions now use the same method for UnityEngine.Random, Func and IContinuousGenerator
as iid sources. - Exponential, Gamma, Bernoulli, Binomial, Geometric, Negative Binomial distributions now require
iid sources in range [0, 1). All other distributions can work with iid sources in range [0, 1].
Removed
- UnityGeneratorSimple.
- All non-standard methods were removed from distributions. Those were methods that modified the result -
use AddModificator or MultiplyModificator to get such a functionality. It affected Bates, Exponential,
Gamma, Irwin-Hall, Binomial, Geometric, Negative Binomial and Poisson distributions. - Simple generators of mentioned above distributions were removed. Now non-simple generators do the same.
XorShift32(64)
Added
- Exponential distribution.
- XorShift32 random engine and wrappers for it.
- XorShift64 random engine and wrappers for it.
Changed
- Distributions now use normal epsilon because
some CPUs don't support standard C# denormal epsilon.
Fixed
- Binomial distribution became more correct.
Optimization, fixes & new distributions
Added
- DropSharedGenerator() and DropSharedFilter() methods. They allow to drop a current generator/filter and create a new one on a next call of sharedGenerator/sharedFilter property.
- Editable Weighted generator providers.
- Gamma distribution.
- Negative Binomial distribution.
- Weighted distribution editor.
Changed
- Marsaglia distribution is renamed to Normal distribution.
- Binomial distribution is rewritten and became much faster.
- Poisson distribution is rewritten to avoid infinite loops.
- Inlining of some methods is changed for performance reasons and more compact assemblies.
Removed
- Box-Muller distribution. If you use it, start to use Normal distribution.
Fixed
- NormalGenerator didn't use its parameters.
Long paths fix
Changed
- Project structure is changed to shorten paths to avoid long paths.
- AcceptanceRejection... names are renamed to Rejection... names.
- Namespace Zor.RandomGenerators.ContinuousDistributions.IndependentDistributions is shortened to Zor.RandomGenerators.ContinuousDistributions.
- Namespace Zor.RandomGenerators.ContinuousDistributions.NormalDistributions is shortened to Zor.RandomGenerators.ContinuousDistributions.
- Namespace Zor.RandomGenerators.ContinuousDistributions.UniformDistributions is shortened to namespace Zor.RandomGenerators.ContinuousDistributions.
First Release
Added
Distributions
- Random generators infrastructure.
- Random generator providers infrastructure.
- Acceptance-Rejection distribution.
- Bates distribution.
- Bernoulli distribution.
- Binomial distribution.
- Box-Muller distribution.
- Irwin-Hall distribution.
- Marsaglia distribution.
- Sharp random generator wrapper.
- Poisson distribution.
- Unity random generator wrapper.
- Weighted distribution.
Modificators
- Modificators infrastructure.
- Clamp modificator.
- Round modificator.
Filters
- Filters infrastructure.
- Ascendant Sequence filter.
- Close filter.
- Descendant Sequence filter.
- Greater filter.
- Frequent Value filter.
- In Range filter.
- Less filter.
- Little Difference filter.
- Not In Range filter.
- Opposite Pattern filter.
- Pair filter.
- Repeating Pattern filter.
- Same Pattern filter.
- Same Sequence filter.
Assets
- Default Bates generator provider.
- Default Bool Uniform generator provider.
- Default Float Uniform generator provider.
- Default Int Uniform generator provider.
- Default Marsaglia generator provider.