-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Fast Splittable PRNG
--
-- Pure Haskell implementation of SplitMix described in
--
-- 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 '14). ACM, New York, NY, USA,
-- 453-472. DOI: https://doi.org/10.1145/2660193.2660195
@package splitmix
@version 0
-- | 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
module System.Random.SplitMix
-- | SplitMix generator state.
data SMGen
-- | Generate a Word64.
nextWord64 :: SMGen -> (Word64, SMGen)
-- | Generate an Int.
nextInt :: SMGen -> (Int, SMGen)
-- | Generate a Double in [0, 1) range.
nextDouble :: SMGen -> (Double, SMGen)
-- | Split a generator into a two uncorrelated generators.
splitSMGen :: SMGen -> (SMGen, SMGen)
-- | Preferred way to deterministically construct SMGen.
mkSMGen :: Word64 -> SMGen
-- | Initialize SMGen using system time.
initSMGen :: IO SMGen
-- | Derive a new generator instance from the global SMGen using
-- splitSMGen.
newSMGen :: IO SMGen
-- | Create SMGen using seed and gamma.
seedSMGen :: Word64 -> Word64 -> SMGen
-- | Like seedSMGen but takes a pair.
seedSMGen' :: (Word64, Word64) -> SMGen
-- | Extract current state of SMGen.
unseedSMGen :: SMGen -> (Word64, Word64)
instance GHC.Show.Show System.Random.SplitMix.SMGen
instance System.Random.RandomGen System.Random.SplitMix.SMGen