mcsp-algorithms-0.1.0: Algorithms for Minimum Common String Partition (MCSP) in Haskell.
Safe HaskellSafe-Inferred
LanguageGHC2021

MCSP.System.Random.Generate

Description

Apply generators to the Random monad.

Synopsis

Default Generator

generate :: Random a -> IO a Source #

Generate value using a random seed with the Standard PCG Generator.

>>> import MCSP.System.Random.Monad (liftRandom)
>>> import Data.Function (id)
>>> import System.Random.PCG.Class (uniform1)
>>> generate (liftRandom (uniform1 id))
...

generateWith :: Seed -> Random a -> a Source #

Use given seed to generate value using the Standard PCG generator.

>>> import MCSP.System.Random.Monad (liftRandom)
>>> import Data.Function (id)
>>> import System.Random.PCG.Class (uniform1)
>>> generateWith (100,200) (liftRandom (uniform1 id))
717541362

Faster Generator

generateFast :: Random a -> IO a Source #

Generate value using a random seed with the Fast PCG Generator.

>>> import MCSP.System.Random.Monad (liftRandom)
>>> import Data.Function (id)
>>> import System.Random.PCG.Class (uniform1)
>>> generateFast (liftRandom (uniform1 id))
...

generateFastWith :: Seed -> Random a -> a Source #

Use given seed to generate value using the Fast PCG generator.

>>> import MCSP.System.Random.Monad (liftRandom)
>>> import Data.Function (id)
>>> import System.Random.PCG.Class (uniform1)
>>> generateFastWith (100,200) (liftRandom (uniform1 id))
77824

Standard Seed

type Seed = Pair Word64 Source #

Values used to seed a random number generator.

randomSeed :: IO Seed Source #

Generate a new random seed.

>>> randomSeed
...

showSeedS :: Seed -> ShowS Source #

ShowS implementation for hexadecimal seed.

showSeed :: Seed -> String Source #

String representing the RNG seed in hexadecimal.

Inverse of readSeed.

>>> showSeed (0, 1)
"0 1"

readSeedP :: ReadP Seed Source #

Parser combinator for reading seeds.

readSeed :: String -> Seed Source #

Read a seed in hexadecimal format.

Inverse of showSeed.

>>> readSeed "0 1"
(0,1)
>>> readSeed (showSeed (5, 10))
(5,10)
>>> readSeed " 75f9fea579c63117 8a3a15e4c0a7029f "
(8501105758304612631,9960297598112170655)