h$40      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Copyright (c) 2014-2015, Christopher Chalmers BSD3(Christopher Chalmers  experimentalCPPNone ?! pcg-random0Generate a uniformly distributed random vairate.$Use entire range for integral types.#Use (0,1] range for floating types. pcg-randomGenerate a uniformly distributed random vairate in the given range.'Use inclusive range for integral types.#Use (a,b] range for floating types. pcg-randomGenerate a uniformly distributed random vairate in the range [0,b). For integral types the bound must be less than the max bound of = (4294967295). Behaviour is undefined for negative bounds.. pcg-randomGenerate a random number using System.Entropy.%Use RDRAND if available and XOR with  /dev/urandom on Unix and CryptAPI on Windows. This entropy is considered cryptographically secure but not true entropy./  !"#$%&'()*+,-./  #$%& !"()'*+,-.Copyright (c) 2014-2015, Christopher Chalmers BSD3(Christopher Chalmers  experimentalCPP, FFINone38>? pcg-randomType alias of A specialized to .@ pcg-randomType alias of A specialized to .A pcg-random$State of the random number generatorB pcg-random%Immutable snapshot of the state of a A.C pcg-randomSave the state of a A in a B.D pcg-random Restore a A from a B.E pcg-random Fixed seed.F pcg-randomGenerate a new seed using two s.initFrozen 0 0FrozenGen 6364136223846793006 1G pcg-random Create a A from a fixed initial E.H pcg-random&Initialize a generator with two words.initialize 0 0 >>= saveFrozenGen 6364136223846793006 1I pcg-random!Seed with system random number. ( /dev/urandom2 on Unix-like systems and CryptAPI on Windows).J pcg-randomRun an action with a frozen generator, returning the result and the new frozen generator.K pcg-randomSeed a PRNG with data from the system's fast source of pseudo-random numbers. All the caveats of I apply here as well.L pcg-randomAdvance the given generator n steps in log(n) time. (Note that a "step" is a single random 32-bit (or less) . Data types such as  or  require two "steps".)create >>= \g -> replicateM_ 1000 (uniformW32 g) >> uniformW32 g 3640764222=create >>= \g -> replicateM_ 500 (uniformD g) >> uniformW32 g 3640764222/create >>= \g -> advance 1000 g >> uniformW32 g 3640764222M pcg-randomRetract the given generator n steps in log(2^64-n) time. This is just  advance (-n).,create >>= \g -> replicateM 3 (uniformW32 g)[355248013,41705475,3406281715];create >>= \g -> retract 1 g >> replicateM 3 (uniformW32 g)[19683962,355248013,41705475]4  !"#$%&'()?@ABCDEFGHIJKLM4A@?GKHIJLMBCDEF  #$%& !"()'Copyright (c) 2014-2015, Christopher Chalmers BSD3(Christopher Chalmers  experimentalCPP, FFINone38> Z pcg-random$State of the random number generator[ pcg-randomImmutable state of a random number generator. Suitable for storing for later use.\ pcg-randomSave the state of a Z in a Seed.] pcg-random Restore a Z from a Seed.^ pcg-random!Generate a new seed using single . initFrozen 0 FrozenGen 1_ pcg-randomStandard initial seed.` pcg-random Create a Z from a fixed initial seed.a pcg-random%Initialize a generator a single word.initialize 0 >>= save FrozenGen 1b pcg-random!Seed with system random number. ( /dev/urandom2 on Unix-like systems and CryptAPI on Windows).c pcg-randomRun an action with a frozen generator, returning the result and the new frozen generator.d pcg-randomSeed a PRNG with data from the system's fast source of pseudo-random numbers. All the caveats of b apply here as well.e pcg-randomAdvance the given generator n steps in log(n) time. (Note that a "step" is a single random 32-bit (or less) . Data types such as  or  require two "steps".)create >>= \g -> replicateM_ 1000 (uniformW32 g) >> uniformW32 g 3725702568=create >>= \g -> replicateM_ 500 (uniformD g) >> uniformW32 g 3725702568/create >>= \g -> advance 1000 g >> uniformW32 g 3725702568f pcg-randomRetract the given generator n steps in log(2^64-n) time. This is just  advance (-n).,create >>= \g -> replicateM 3 (uniformW32 g)![2951688802,2698927131,361549788];create >>= \g -> retract 1 g >> replicateM 3 (uniformW32 g)![954135925,2951688802,2698927131]4  !"#$%&'()XYZ[\]^_`abcdef4ZYX`dabcef[\]_^  #$%& !"()'BSD3(Christopher Chalmers  experimentalCPPNone./38>v s pcg-random%State of the random number generator.u pcg-randomSave the state of a s in a Seed.v pcg-random Restore a s from a Seed.w pcg-random!Generate a new seed using single .Fast.Pure.initFrozen 0F 1x pcg-randomStandard initial seed.y pcg-random Create a s from a fixed initial seed.z pcg-random%Initialize a generator a single word.)Fast.Pure.initialize 0 >>= Fast.Pure.saveF 1{ pcg-random"Seed with system random number. (" /dev/urandom+" on Unix-like systems, time otherwise).| pcg-randomSeed a PRNG with data from the system's fast source of pseudo-random numbers. All the caveats of { apply here as well.} pcg-randomAdvance the given generator n steps in log(n) time. (Note that a "step" is a single random 32-bit (or less) . Data types such as  or  require two "steps".)Fast.Pure.create >>= \g -> replicateM_ 1000 (uniformW32 g) >> uniformW32 g 3725702568Fast.Pure.create >>= \g -> replicateM_ 500 (uniformD g) >> uniformW32 g 3725702568Fast.Pure.create >>= \g -> Fast.Pure.advance 1000 g >> uniformW32 g 3725702568~ pcg-randomRetract the given generator n steps in log(2^64-n) time. This is just  advance (-n).6Fast.Pure.create >>= \g -> replicateM 3 (uniformW32 g)![2951688802,2698927131,361549788]Fast.Pure.create >>= \g -> Fast.Pure.retract 1 g >> replicateM 3 (uniformW32 g)![954135925,2951688802,2698927131]3  !"#$%&'()qrstuvwxyz{|}~3srqy|z{}~tuvxw  #$%& !"()'BSD3(Christopher Chalmers  experimentalCPPNone38>%  pcg-randomThe multiple sequence varient of the pcg random number generator. pcg-random$State of the random number generator pcg-random Fixed seed. pcg-randomPure version of . pcg-random Version of  that returns a . pcg-randomSave the state of a  in a Seed. pcg-random Restore a  from a Seed. pcg-random&Create a new generator from two words.Pure.initFrozen 0 0SetSeq 6364136223846793006 1 pcg-random Create a  from a fixed initial seed. pcg-random%Initialize a generator a single word.!Pure.initialize 0 0 >>= Pure.saveSetSeq 6364136223846793006 1 pcg-random!Seed with system random number. ( /dev/urandom2 on Unix-like systems and CryptAPI on Windows). pcg-random!Seed with system random number. ( /dev/urandom2 on Unix-like systems and CryptAPI on Windows). pcg-randomAdvance the given generator n steps in log(n) time. (Note that a "step" is a single random 32-bit (or less) . Data types such as  or  require two "steps".)Pure.create >>= \g -> replicateM_ 1000 (uniformW32 g) >> uniformW32 g 3640764222Pure.create >>= \g -> replicateM_ 500 (uniformD g) >> uniformW32 g 36407642229Pure.create >>= \g -> Pure.advance 1000 g >> uniformW32 g 3640764222 pcg-randomRetract the given generator n steps in log(2^64-n) time. This is just  advance (-n).1Pure.create >>= \g -> replicateM 3 (uniformW32 g)[355248013,41705475,3406281715]Pure.create >>= \g -> Pure.retract 1 g >> replicateM 3 (uniformW32 g)[19683962,355248013,41705475]6  !"#$%&'()6  #$%& !"()'Copyright (c) 2014-2015, Christopher Chalmers BSD3(Christopher Chalmers  experimentalCPP, FFINone38>,  pcg-random$State of the random number generator pcg-randomSave the state of a  in a Seed. pcg-random Restore a  from a Seed. pcg-random!Generate a new seed using single . initFrozen 0FrozenGen 1876011003808476466 pcg-randomStandard initial seed. pcg-random Create a  from a fixed initial seed. pcg-random%Initialize a generator a single word.initialize 0 >>= saveFrozenGen 1876011003808476466 pcg-random!Seed with system random number. ( /dev/urandom2 on Unix-like systems and CryptAPI on Windows). pcg-randomRun an action with a frozen generator, returning the result and the new frozen generator. pcg-randomSeed a PRNG with data from the system's fast source of pseudo-random numbers. All the caveats of  apply here as well. pcg-randomAdvance the given generator n steps in log(n) time. (Note that a "step" is a single random 32-bit (or less) . Data types such as  or  require two "steps".)create >>= \g -> replicateM_ 1000 (uniformW32 g) >> uniformW32 g 787992099=create >>= \g -> replicateM_ 500 (uniformD g) >> uniformW32 g 787992099/create >>= \g -> advance 1000 g >> uniformW32 g 787992099 pcg-randomRetract the given generator n steps in log(2^64-n) time. This is just  advance (-n).,create >>= \g -> replicateM 3 (uniformW32 g)"[1499251125,2252584727,2021901712];create >>= \g -> retract 1 g >> replicateM 3 (uniformW32 g)"[4031155981,1499251125,2252584727]4  !"#$%&'()4  #$%& !"()'Copyright (c) 2014-2015, Christopher Chalmers BSD3(Christopher Chalmers  experimentalCPP, FFINone0U pcg-random$State of the random number generator pcg-random Create a  from a fixed initial seed. pcg-randomCreate a generator from two words. Note: this is not the same as the two words in a Seed. pcg-random"Seed with system random number. (" /dev/urandom+" on Unix-like systems, time otherwise). pcg-randomSeed a PRNG with data from the system's fast source of pseudo-random numbers. All the caveats of  apply here as well. pcg-random3Advance the given generator n steps in log(n) time. pcg-randomRetract the given generator n steps in log(2^64-n) time. This is just  advance (-n).,  !"#$%&'(),  #$%& !"()'      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_GHIJKLNMOPQRSTUVXYZ[\]W^_GHIJKLNMOPQSTUVX`[\]a^_bJIGHMcdKLNOPQSTUefXghijkGHIJKLNMOPQRSTUVXYZ[\]W^_IOPQSTUlYZmnompqrstmnursvwxy)pcg-random-0.1.3.7-DaQwXu1Wgdb4qv3RWR9wAFSystem.Random.PCG.ClassSystem.Random.PCGSystem.Random.PCG.FastSystem.Random.PCG.Fast.PureSystem.Random.PCG.PureSystem.Random.PCG.SingleSystem.Random.PCG.UniqueUnsignedVariateuniformuniformRuniformB Generatoruniform1uniform2 uniform1B uniformI8 uniformI16 uniformI32 uniformI64 uniformW8 uniformW16 uniformW32 uniformW64 uniformBooluniformFuniformD uniformRI8 uniformRI16 uniformRI32 uniformRI64 uniformRW8 uniformRW16 uniformRW32 uniformRW64 uniformRBool uniformRF uniformRD uniformBI8 uniformBI16 uniformBI32 uniformBI64 uniformBW8 uniformBW16 uniformBW32 uniformBW64 uniformBBool uniformBF uniformBD wordsTo64Bit wordToBool wordToFloat wordsToDouble sysRandom$fVariate(,,,) $fVariate(,,) $fVariate(,) $fVariateInt $fVariateWord$fVariateDouble$fVariateFloat $fVariateBool$fVariateWord64$fVariateWord32$fVariateWord16$fVariateWord8$fVariateInt64$fVariateInt32$fVariateInt16 $fVariateInt8GenSTGenIOGen FrozenGensaverestoreseed initFrozencreate initializewithSystemRandom withFrozencreateSystemRandomadvanceretract$fRandomGenFrozenGen$fStorableFrozenGen$fGeneratorGenm$fEqGen$fOrdGen$fShowFrozenGen $fEqFrozenGen$fOrdFrozenGen$fDataFrozenGen$fGenericFrozenGen $fShowPair$fPrimFrozenGenSetSeq advanceSetSeqnext'$fStorableSetSeq$fRandomGenSetSeq $fShowSetSeq $fOrdSetSeq $fEqSetSeq $fDataSetSeq$fGenericSetSeq$fGeneratorGenIObaseGHC.WordWord32GHC.STSTghc-prim GHC.TypesIOWord64Double!random-1.1-IcUwfYF3CGOHS82o6ktbLi System.Randomnext