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 HaskellNone
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
Read TFGen # 
Instance details

Defined in System.Random.TF.Gen

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) #

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.

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.

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.