name: acme-memorandom
category: ACME
version: 0.0.3
license: MIT
license-file: LICENSE
author: Johan Kiviniemi <devel@johan.kiviniemi.name>
maintainer: Johan Kiviniemi <devel@johan.kiviniemi.name>
stability: provisional
homepage: https://github.com/ion1/acme-memorandom
bug-reports: https://github.com/ion1/acme-memorandom/issues
copyright: Copyright © 2015 Johan Kiviniemi
synopsis: Memoized random number generation
description:
  A library for generating random numbers in a memoized manner. Implemented as
  a lazy table indexed by serialized 'StdGen'. Monomorphism is used to
  facilitate memoization, users should adapt their design to work with random
  'Int' values only.
  .
  In a benchmark, the initial generation of 100000 random 'Int's took 10.30
  seconds and consumed 2.5 gigabytes of memory. Generating the 100000 'Int's
  again from the same seed only took 2.06 seconds, a 5-fold speedup thanks to
  memoization!
  .
  Incidentally, generating the 100000 'Int's with the non-memoized function
  took 0.12 seconds, but that of course lacks all the benefits of memoization.
tested-with: GHC == 7.10.1

build-type: Simple
cabal-version: >=1.10
extra-source-files:
  .gitignore
  ChangeLog.md
  README.md

source-repository head
  type: git
  location: https://github.com/ion1/acme-memorandom.git

library
  exposed-modules: System.Random.Memoized
  hs-source-dirs: src
  other-extensions: CPP, TypeFamilies, TypeOperators
  build-depends: base == 4.*
               , MemoTrie == 0.6.*
               , random == 1.*
  default-language: Haskell2010