-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | High-quality splittable pseudorandom number generator -- -- This package contains an implementation of a high-quality splittable -- pseudorandom number generator. The generator is based on a -- cryptographic hash function built on top of the ThreeFish block -- cipher. See the paper Splittable Pseudorandom Number Generators -- Using Cryptographic Hashing by Claessen, Pałka for details and the -- rationale of the design. -- -- The package provides the following: -- --
-- f :: RandomGen g => g -> [g] -- f r = map (splitn r 4) [0..9] --splitn :: RandomGen g => g -> Int -> Word32 -> g -- | level is a 'hint' operation that may cause an iteration of work -- of the generator be performed prematurely in order to prevent the -- subsequent operations from being expensive. It is meant to be called -- before a splitn operation, which is expected to be evaluated a -- very large number indices. Calling level in such case might -- decrease the total amount of work performed. level :: RandomGen g => g -> g -- | Create a generator from a random seed. seedTFGen :: (Word64, Word64, Word64, Word64) -> TFGen instance GHC.Read.Read System.Random.TF.Gen.TFGenR instance GHC.Show.Show System.Random.TF.Gen.TFGenR instance System.Random.TF.Gen.RandomGen System.Random.TF.Gen.TFGen instance GHC.Show.Show System.Random.TF.Gen.Hex instance GHC.Read.Read System.Random.TF.Gen.Hex instance GHC.Show.Show System.Random.TF.Gen.TFGen instance GHC.Read.Read System.Random.TF.Gen.TFGen instance System.Random.RandomGen System.Random.TF.Gen.TFGen module System.Random.TF.Init -- | 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. newTFGen :: IO TFGen -- | Quick and dirty way of creating a deterministically seeded generator. mkTFGen :: Int -> TFGen -- | Use system time create the random seed. This method of seeding may not -- be relible. mkSeedTime :: IO (Word64, Word64, Word64, Word64) -- | Use the UNIX special file /dev/urandom to create the seed. -- Inspired by random-mwc. mkSeedUnix :: IO (Word64, Word64, Word64, Word64) -- | Create a seed and used it to seed an instance of TFGen. Uses -- mkSeedUnix on UNIX, and mkSeedTime otherwise. initTFGen :: IO TFGen -- | 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. module System.Random.TF -- | The generator type data TFGen -- | Create a generator from a random seed. seedTFGen :: (Word64, Word64, Word64, Word64) -> TFGen -- | Use system time create the random seed. This method of seeding may not -- be relible. mkSeedTime :: IO (Word64, Word64, Word64, Word64) -- | Use the UNIX special file /dev/urandom to create the seed. -- Inspired by random-mwc. mkSeedUnix :: IO (Word64, Word64, Word64, Word64) -- | 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. newTFGen :: IO TFGen -- | Quick and dirty way of creating a deterministically seeded generator. mkTFGen :: Int -> TFGen -- | This module defines alternative Random instances for common -- integral types, which make use of the RandomGen class from -- System.Random.TF.Gen. module System.Random.TF.Instances class Random a randomR :: (Random a, RandomGen g) => (a, a) -> g -> (a, g) random :: (Random a, RandomGen g) => g -> (a, g) randomRs :: (Random a, RandomGen g) => (a, a) -> g -> [a] randoms :: (Random a, RandomGen g) => g -> [a] randomEnum :: (Enum a, RandomGen g) => (a, a) -> g -> (a, g) instance System.Random.TF.Instances.Random GHC.Types.Int instance System.Random.TF.Instances.Random GHC.Types.Char instance System.Random.TF.Instances.Random GHC.Types.Bool instance System.Random.TF.Instances.Random GHC.Integer.Type.Integer instance System.Random.TF.Instances.Random GHC.Word.Word32 instance System.Random.TF.Instances.Random GHC.Word.Word64 instance System.Random.TF.Instances.Random GHC.Int.Int32 instance System.Random.TF.Instances.Random GHC.Int.Int64 instance System.Random.TF.Instances.Random GHC.Word.Word8 instance System.Random.TF.Instances.Random GHC.Int.Int8 instance System.Random.TF.Instances.Random GHC.Word.Word16 instance System.Random.TF.Instances.Random GHC.Int.Int16