All Versions
7
Latest Version
Avg Release Cycle
-
Latest Release
-
Changelog History
Changelog History
-
v0.3.0 Changes
➕ Added
- Single precision support for all methods.
- Exception interface:
Alea::NoConvergeError
Alea::UndefinedError
Alea::InfinityError
Alea::NaNError
- Spec interface with macros to simplify testing:
arg_test
sanity_test
param_test
dist_test
Alea::Random
:- all standard sampling methods now accepts any-typed values.
- Poisson distribution support.
Alea::XSR128
,Alea::XSR256
:UInt32
generation capabilities.new
now accepts initial states (32/64 bits) asStaticArray
.new
now 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::Core
to store internal implementations.Alea::Core::SpecFun
to store special functions implementations.Alea::Core::SpecFun::Gamma
for special gamma functions.
- Engines:
Alea::Core::SplitMix64(N)
struct for state64 initializations.Alea::Core::Mulberry32(N)
struct for state32 initializations.
🔄 Changed
Alea::Random
is now a struct.- Renamed all occurences of
chi_square
intochisq
. - Renamed all occurences of
exponential
intoexp
. - Renamed all occurences of
mean
intoloc
. - Renamed all occurences of
freedom
intodf
. - Renamed
initstate
into properseed
inAlea::Random.new
. Alea::CDF.chisq*
have no more defaultdf
.#next_u
,#next_f
are deprecated. Now they have bit-fixed names:#next_u32 : UInt32
#next_u64 : UInt64
#next_f32 : Float32
#next_f64 : Float64
#jump
inAlea::Random
is deprecated. Use jump method directly fromAlea::Random#prng
instead.- Unparsed sampling methods (e.g.:
#next_gamma
) now have specific types for arguments.
🛠 Fixed
- A bug causing splitmix to generate bad values.
-
v0.2.3 Changes
➕ Added
Alea::CDF
module for Cumulative Distribution Function support.- Supported distributions:
- Exponential
- Laplace
- Lognormal
- Normal
- Uniform
-
v0.2.2 Changes
➕ Added
- Uniform distribution support.
- New methods that take an upper limit or a range as optional arguments:
Alea::Random#uint : UInt64
Alea::Random#float : Float64
-
v0.2.1 Changes
➕ Added
- 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.
-
v0.2.0 Changes
🔄 Changed
- Deprecated C bindings due to the slowness of the calls to the static library.
- Deprecated
Random::PCG32
as the main PRNG ofAlea::Random
, now powered by theAlea::XSR128
engine by default. Alea::Random
no longer inherits the PRNG, instead it is passed to the constructor. This increases modularity and opens the doors to customizations.
➕ Added
Alea::XSR
abstract class, inherit this to build your own PRNG to pass toAlea::Random
.Alea::XSR128
class, PRNG loaded with a state of 128 bits.Alea::XSR256
class, PRNG loaded with a state of 256 bits.
-
v0.1.1 Changes
➕ Added
- C implementations of the xoshiro algorithms collection for
UInt64
andFloat64
sampling.
- C implementations of the xoshiro algorithms collection for
-
v0.1.0 Changes
- Initial release.
- Supported distributions:
- Normal
- Exponential
- Lognormal
- Beta
- Gamma
- Chi Square