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 #

SplitMix generator state.

Instances

Show SMGen # 

Methods

showsPrec :: Int -> SMGen -> ShowS #

show :: SMGen -> String #

showList :: [SMGen] -> ShowS #

RandomGen SMGen # 

Methods

next :: SMGen -> (Int, SMGen) #

genRange :: SMGen -> (Int, Int) #

split :: SMGen -> (SMGen, SMGen) #

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

Generate a Word64.

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

Generate an Int.

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

Generate a Double in [0, 1) range.

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

Split a generator into a two uncorrelated generators.

Initialisation

mkSMGen :: Word64 -> SMGen #

Preferred way to deterministically construct SMGen.

initSMGen :: IO SMGen #

Initialize SMGen using system time.

newSMGen :: IO SMGen #

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

seedSMGen #

Arguments

:: Word64

seed

-> Word64

gamma

-> SMGen 

Create SMGen using seed and gamma.

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

Like seedSMGen but takes a pair.

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

Extract current state of SMGen.