| Copyright | © 2015 Johan Kiviniemi |
|---|---|
| License | MIT |
| Maintainer | Johan Kiviniemi <devel@johan.kiviniemi.name> |
| Stability | provisional |
| Portability | CPP, TypeFamilies, TypeOperators |
| Safe Haskell | None |
| Language | Haskell2010 |
System.Random.Memoized
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 Ints took 10.30
seconds and consumed 2.5 gigabytes of memory. Generating the 100000 Ints
again from the same seed only took 2.06 seconds, a 5-fold speedup thanks to
memoization!
Incidentally, generating the 100000 Ints with the non-memoized function
took 0.12 seconds, but that of course lacks all the benefits of memoization.
Documentation
module System.Random