Skip to content

Releases: nin93/alea

v0.3.0-alpha

17 Jun 16:56
Compare
Choose a tag to compare
v0.3.0-alpha Pre-release
Pre-release

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) as StaticArray.
    • new now accepts initial seeds (32/64 bits) as Int.
    • #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 into chisq.
  • Renamed all occurences of exponential into exp.
  • Renamed all occurences of mean into loc.
  • Renamed all occurences of freedom into df.
  • Renamed initstate into proper seed in Alea::Random.new.
  • Alea::CDF.chisq* have no more default df.
  • #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 in Alea::Random is deprecated. Use jump method directly
    from Alea::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.