úÎ1+/v   portable experimentalbos@serpentine.com(An immutable snapshot of the state of a . -State of the pseudo-random number generator. 7The class of types for which we can generate uniformly  distributed random variates. The uniform PRNG uses Marsaglia'!s MWC256 (also known as MWC8222) A multiply-with-carry generator, which has a period of 2^8222 and @ fares well in tests of randomness. It is also extremely fast, 9 between 2 and 3 times faster than the Mersenne Twister. Note : Marsaglia',s PRNG is not known to be cryptographically @ secure, so you should not use it for cryptographic operations. =Generate a single uniformly distributed random variate. The * range of values produced varies by type: ) For fixed-width integral types, the type's entire range is  used. + For floating point numbers, the range (0,1] is used. Zero is 8 explicitly excluded, to allow variates to be used in 9 statistical calculations that require non-zero values  (e.g. uses of the   function).  The range of random  variates is the same as for  . To generate a ) variate with a range of [0,1), subtract  2**(-33). To do the same with  variates, subtract  2**(-53). 4Create a generator for variates using a fixed seed. BCreate a generator for variates using the given seed, of which up < to 256 elements will be used. For arrays of less than 256 ; elements, part of the default seed will be used to finish  initializing the generator' s state.  Examples:   initialize (singletonU 42)  ) initialize (toU [4, 8, 15, 16, 23, 42]) =If a seed contains fewer than 256 elements, it is first used ! verbatim, then its elements are ed against elements of the . default seed until 256 elements are reached. Save the state of a , for later use by .  Create a new # that mirrors the state of a saved . @Using the current time as a seed, perform an action that uses a D random variate generator. This is a horrible fallback for Windows  systems. %Seed a PRNG with data from the system's fast source of  pseudo-random numbers ("/dev/urandom" on Unix-like systems),  then run the given action. Note4: on Windows, this code does not yet use the native E Cryptographic API as a source of random numbers (it uses the system D clock instead). As a result, the sequences it generates may not be  highly independent. Unchecked 64-bit left shift. Unchecked 64-bit right shift. <Compute the next index into the state pool. This is simply  addition modulo 256.  :Generate an array of pseudo-random variates. This is not " necessarily faster than invoking  repeatedly in a loop, : but it may be more convenient to use in some situations. 0Generate a normally distributed random variate. The implementation uses Doornik's modified ziggurat algorithm. B Compared to the ziggurat algorithm usually used, this is slower, C but generates more independent variates that pass stringent tests  of randomness.     !       !"#$%&'(mwc-random-0.4.1System.Random.MWCSeedGenVariateuniformcreate initializesaverestorewithSystemRandom uniformArraynormalbase GHC.Floatlog integer-gmpGHC.Integer.TypeIntegerghc-prim GHC.TypesIntFloatDouble wordsTo64Bit wordToBool wordToFloat wordsToDoubleioffcoff Data.BitsxorwithTimeshiftLshiftR nextIndex uniformWord32uniform1uniform2 defaultSeed