tf-random-0.5: High-quality splittable pseudorandom number generator
Copyright(c) 2012-2013 Michał Pałka
LicenseBSD3
Maintainermichal.palka@chalmers.se
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell98

System.Random.TF

Description

This module exports System.Random.TF.Gen and System.Random.TF.Init modules without exporting the alternative RandomGen class from System.Random.TF.Gen. To use this class and the Random instances written for it, please import System.Random.TF.Gen and System.Random.TF.Instances directly.

Synopsis

Documentation

data TFGen #

The generator type

Instances

Instances details
Read TFGen # 
Instance details

Defined in System.Random.TF.Gen

Methods

readsPrec :: Int -> ReadS TFGen

readList :: ReadS [TFGen]

readPrec :: ReadPrec TFGen

readListPrec :: ReadPrec [TFGen]

Show TFGen # 
Instance details

Defined in System.Random.TF.Gen

Methods

showsPrec :: Int -> TFGen -> ShowS

show :: TFGen -> String

showList :: [TFGen] -> ShowS

RandomGen TFGen # 
Instance details

Defined in System.Random.TF.Gen

Methods

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

genWord8 :: TFGen -> (Word8, TFGen) #

genWord16 :: TFGen -> (Word16, TFGen) #

genWord32 :: TFGen -> (Word32, TFGen) #

genWord64 :: TFGen -> (Word64, TFGen) #

genWord32R :: Word32 -> TFGen -> (Word32, TFGen) #

genWord64R :: Word64 -> TFGen -> (Word64, TFGen) #

genShortByteString :: Int -> TFGen -> (ShortByteString, TFGen) #

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

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

RandomGen TFGen # 
Instance details

Defined in System.Random.TF.Gen

Methods

next :: TFGen -> (Word32, TFGen) #

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

splitn :: TFGen -> Int -> Word32 -> TFGen #

level :: TFGen -> TFGen #

seedTFGen :: (Word64, Word64, Word64, Word64) -> TFGen #

Create a generator from a random seed.

newTFGen :: IO TFGen #

Derive a new generator instance from the global RNG using split. This is the default way of obtaining a new RNG instance. Initial generator is seeded using mkSeedUnix on UNIX, and mkSeedTime otherwise. This should be eventually replaced with proper seeding.

mkTFGen :: Int -> TFGen #

Quick and dirty way of creating a deterministically seeded generator.

mkSeedTime :: IO (Word64, Word64, Word64, Word64) #

Use system time create the random seed. This method of seeding may not be relible.

mkSeedUnix :: IO (Word64, Word64, Word64, Word64) #

Use the UNIX special file /dev/urandom to create the seed. Inspired by random-mwc.