splitmix-0: Fast Splittable PRNG

Safe HaskellTrustworthy
LanguageHaskell2010

System.Random.SplitMix

Contents

Description

SplitMix is a splittable pseudorandom number generator (PRNG) that is quite fast.

Guy L. Steele, Jr., Doug Lea, and Christine H. Flood. 2014. Fast splittable pseudorandom number generators. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications (OOPSLA '13). ACM, New York, NY, USA, 453-472. DOI: https://doi.org/10.1145/2660193.2660195

Synopsis

Documentation

data SMGen Source #

SplitMix generator state.

Instances

nextWord64 :: SMGen -> (Word64, SMGen) Source #

Generate a Word64.

nextInt :: SMGen -> (Int, SMGen) Source #

Generate an Int.

nextDouble :: SMGen -> (Double, SMGen) Source #

Generate a Double in [0, 1) range.

splitSMGen :: SMGen -> (SMGen, SMGen) Source #

Split a generator into a two uncorrelated generators.

Initialisation

mkSMGen :: Word64 -> SMGen Source #

Preferred way to deterministically construct SMGen.

initSMGen :: IO SMGen Source #

Initialize SMGen using system time.

newSMGen :: IO SMGen Source #

Derive a new generator instance from the global SMGen using splitSMGen.

seedSMGen Source #

Arguments

:: Word64

seed

-> Word64

gamma

-> SMGen 

Create SMGen using seed and gamma.

seedSMGen' :: (Word64, Word64) -> SMGen Source #

Like seedSMGen but takes a pair.

unseedSMGen :: SMGen -> (Word64, Word64) Source #

Extract current state of SMGen.