packages feed

random-variates-0.1.1.0: tests/vis.hs

import Stochastic.Generator
import Stochastic.Distribution.Continuous
import Stochastic.Distributions
import Stochastic.Distributions.Continuous
import System.Directory
import System.IO

dumpSamples :: (String, [Double]) -> IO ()
dumpSamples  (gen_name, samples) = do
  _ <- createDirectoryIfMissing True "dist/samples"
  _ <- withFile
       ("dist/samples/" ++ gen_name ++ ".dat")
       WriteMode
       (\handle -> mapM_
                   (hPrint handle)
                   samples
       )
  return ()

cds seed sample_size = [
  ("uniform",          fst $ rands sample_size $ mkUniform (stdBase seed)    )
  ,("exponential",     fst $ rands sample_size $ mkExp     (stdBase seed)   1)
  ,("normal",          fst $ rands sample_size $ mkNormal  (stdBase seed) 0 1)
  ]

main :: IO ()
main =
  let gens = cds 42 100000 in
  mapM_ (dumpSamples) gens