-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Generate Accelerate arrays filled with high quality pseudorandom numbers
--   
--   Generate <i>Accelerate</i> arrays filled with high-quality
--   pseudorandom numbers.
--   
--   Refer to the main <i>Accelerate</i> package for more information:
--   <a>http://hackage.haskell.org/package/accelerate</a>
@package mwc-random-accelerate
@version 0.1.0.0


-- | Random number generation backed by MWC.
module Data.Array.Accelerate.System.Random.MWC

-- | A PRNG from indices to variates
type sh :~> e = sh -> GenIO -> IO e

-- | Uniformly distributed random variates.
uniform :: (Shape sh, Elt e, Variate e) => sh :~> e

-- | Uniformly distributed random variates in a given range.
uniformR :: (Shape sh, Elt e, Variate e) => (e, e) -> sh :~> e

-- | Generate an array of random values. The generator for variates is
--   seeded from the system's fast source of pseudo-random numbers (see:
--   <a>createSystemRandom</a>)
randomArray :: (Shape sh, Elt e) => sh :~> e -> sh -> IO (Array sh e)

-- | Generate an array of random values using the supplied generator.
randomArrayWith :: (Shape sh, Elt e) => GenIO -> sh :~> e -> sh -> IO (Array sh e)
