- Single precision support for all methods.
- Exception interface:
Alea::NoConvergeErrorAlea::UndefinedErrorAlea::InfinityErrorAlea::NaNError
- Spec interface with macros to simplify testing:
arg_testsanity_testparam_testdist_test
Alea::Random:- all standard sampling methods now accepts any-typed values.
- Poisson distribution support.
Alea::XSR128,Alea::XSR256:UInt32generation capabilities.newnow accepts initial states (32/64 bits) asStaticArray.newnow accepts initial seeds (32/64 bits) asInt.#jump_*methods to advance states.
Alea::CDF:- all cdf methods now accepts any-typed values.
- Poisson distribution support.
- ChiSquare distribution support.
- Gamma distribution support.
- Modules:
Alea::Coreto store internal implementations.Alea::Core::SpecFunto store special functions implementations.Alea::Core::SpecFun::Gammafor special gamma functions.
- Engines:
Alea::Core::SplitMix64(N)struct for state64 initializations.Alea::Core::Mulberry32(N)struct for state32 initializations.
Alea::Randomis now a struct.- Renamed all occurences of
chi_squareintochisq. - Renamed all occurences of
exponentialintoexp. - Renamed all occurences of
meanintoloc. - Renamed all occurences of
freedomintodf. - Renamed
initstateinto properseedinAlea::Random.new. Alea::CDF.chisq*have no more defaultdf.#next_u,#next_fare deprecated. Now they have bit-fixed names:#next_u32 : UInt32#next_u64 : UInt64#next_f32 : Float32#next_f64 : Float64
#jumpinAlea::Randomis deprecated. Use jump method directly fromAlea::Random#prnginstead.- Unparsed sampling methods (e.g.:
#next_gamma) now have specific types for arguments.
- A bug causing splitmix to generate bad values.
Alea::CDFmodule for Cumulative Distribution Function support.- Supported distributions:
- Exponential
- Laplace
- Lognormal
- Normal
- Uniform
- Uniform distribution support.
- New methods that take an upper limit or a range as optional arguments:
Alea::Random#uint : UInt64Alea::Random#float : Float64
- Laplace distribution support.
- Safe methods: now each sampling method has an alias for secure argument checks.
The alias are obtained by omitting
next_from the regular ones.
- Deprecated C bindings due to the slowness of the calls to the static library.
- Deprecated
Random::PCG32as the main PRNG ofAlea::Random, now powered by theAlea::XSR128engine by default. Alea::Randomno longer inherits the PRNG, instead it is passed to the constructor. This increases modularity and opens the doors to customizations.
Alea::XSRabstract class, inherit this to build your own PRNG to pass toAlea::Random.Alea::XSR128class, PRNG loaded with a state of 128 bits.Alea::XSR256class, PRNG loaded with a state of 256 bits.
- C implementations of the xoshiro algorithms collection for
UInt64andFloat64sampling.
- Initial release.
- Supported distributions:
- Normal
- Exponential
- Lognormal
- Beta
- Gamma
- Chi Square