úÎfÇ_ñH      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG<Copyright (c) 2014, Christopher Chalmers <c.chalmers@me.com>BSD3(Christopher Chalmers <c.chalmers@me.com> experimentalCPPNone 36;=KM0Generate a uniformly distributed random vairate.$Use entire range for integral types.#Use (0,1] range for floating types.FGenerate a uniformly distributed random vairate in the given range.'Use inclusive range for integral types.#Use (a,b] range for floating types.,Get a random number from system source. If " /dev/urandom:" is not found return inferior random number from time.6 HIJKLMNOPQRSTUVWXYZ[\]^_`abcdef   2 HIJKLMNOPQRSTUVWXYZ[\]^_`abcdef<Copyright (c) 2014, Christopher Chalmers <c.chalmers@me.com>BSD3(Christopher Chalmers <c.chalmers@me.com> experimentalCPP, FFINone 246=>BK $State of the random number generatorSave the state of a  in a Seed. Restore a  from a Seed.!Generate a new seed using single g. initFrozen 0 FrozenGen 1Standard initial seed. Create a  from a fixed initial seed. %Initialize a generator a single word.initialize 0 >>= save FrozenGen 1!"Seed with system random number. (" /dev/urandom+" on Unix-like systems, time otherwise)."bSeed a PRNG with data from the system's fast source of pseudo-random numbers. All the caveats of ! apply here as well.#oAdvance 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 h or g 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 3725702568$IRetract 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]ijklm !"#$no  !"#$" !#$  ijklm !"#$no<Copyright (c) 2014, Christopher Chalmers <c.chalmers@me.com>BSD3(Christopher Chalmers <c.chalmers@me.com> experimentalCPP, FFINone6%$State of the random number generatorpStandard initial seed.& Create a % from a fixed initial seed.'WCreate a generator from two words. Note: this is not the same as the two words in a Seed.("Seed with system random number. (" /dev/urandom+" on Unix-like systems, time otherwise).)dSeed a PRNG with data from the system's fast source of pseudo-random numbers. All the caveats of ( apply here as well.*3Advance the given generator n steps in log(n) time.+IRetract the given generator n steps in log(2^64-n) time. This is just  advance (-n). %qrstp&'()*+u %&'()*+%&)'(*+   %qrstp&'()*+u<Copyright (c) 2014, Christopher Chalmers <c.chalmers@me.com>BSD3(Christopher Chalmers <c.chalmers@me.com> experimentalCPP, FFINone 246=>BK .$State of the random number generator0Save the state of a . in a Seed.1 Restore a . from a Seed.2!Generate a new seed using single g. initFrozen 0FrozenGen 18760110038084764663Standard initial seed.4 Create a . from a fixed initial seed.5%Initialize a generator a single word.initialize 0 >>= saveFrozenGen 18760110038084764666"Seed with system random number. (" /dev/urandom+" on Unix-like systems, time otherwise).7dSeed a PRNG with data from the system's fast source of pseudo-random numbers. All the caveats of 6 apply here as well.8oAdvance 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 h or g 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 7879920999IRetract 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],-.v/wxyz0123456789{| ,-./0123456789.-,475689/0132  ,-.v/wxyz0123456789{|<Copyright (c) 2014, Christopher Chalmers <c.chalmers@me.com>BSD3(Christopher Chalmers <c.chalmers@me.com> experimentalCPP, FFINone 246=>K:Type alias of < specialized to ST. (;Type alias of < specialized to }.<$State of the random number generator=%Immutable snapshot of the state of a <.>Save the state of a < in a =.? Restore a < from a =.@ Fixed seed.AGenerate a new seed using two gs.initFrozen 0 0FrozenGen 6364136223846793006 1B Create a < from a fixed initial @.C&Initialize a generator with two words.initialize 0 0 >>= saveFrozenGen 6364136223846793006 1D"Seed with system random number. (" /dev/urandom+" on Unix-like systems, time otherwise).EbSeed a PRNG with data from the system's fast source of pseudo-random numbers. All the caveats of D apply here as well.FoAdvance 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 h or g 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 3640764222GIRetract 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]:;<~=€‚>?@ABCDEFGƒ„… :;<=>?@ABCDEFG<;:BECDFG=>?@A  :;<~=€‚>?@ABCDEFGƒ„…†      !"#$%&'()*%&'()* !"#$%&'()* !"$#%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO PQRST$UVWX YZ[STMN\ ]^_ST`apcg-random-0.1.0.0System.Random.PCG.ClassSystem.Random.PCG.FastSystem.Random.PCG.UniqueSystem.Random.PCG.SingleSystem.Random.PCGUnsignedVariateuniformuniformR Generatoruniform1uniform2 uniformI8 uniformI16 uniformI32 uniformI64 uniformW8 uniformW16 uniformW32 uniformW64 uniformBooluniformFuniformD wordsTo64Bit wordToBool wordToFloat wordsToDouble sysRandomGenSTGenIOGen FrozenGensaverestore initFrozenseedcreate initializewithSystemRandomcreateSystemRandomadvanceretractsubadd devRandomacquireSeedTime uniformRangeTFCo:R:UnsignedWordTFCo:R:UnsignedIntTFCo:R:UnsignedWord64TFCo:R:UnsignedWord32TFCo:R:UnsignedWord16TFCo:R:UnsignedWord8TFCo:R:UnsignedInt64TFCo:R:UnsignedInt32TFCo:R:UnsignedInt16TFCo:R:UnsignedInt8$fVariate(,,,) $fVariate(,,) $fVariate(,) $fVariateInt $fVariateWord$fVariateDouble$fVariateFloat $fVariateBool$fVariateWord64$fVariateWord32$fVariateWord16$fVariateWord8$fVariateInt64$fVariateInt32$fVariateInt16 $fVariateInt8baseGHC.WordWord64ghc-prim GHC.TypesDoublepcg32f_advance_rpcg32f_random_rpcg32f_srandom_r$fRandomGenFrozenGen$fGeneratorGenmpcg32u_advance_rpcg32u_random_rpcg32u_srandom_r$fGeneratorGenIOpcg32s_advance_rpcg32s_random_rpcg32s_srandom_rIOpcg32_advance_rpcg32_random_rpcg32_srandom_r$fStorableFrozenGen