Memoized random number generation https://github.com/ion1/acme-memorandom
|Latest on Hackage:||0.0.3|
This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.
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
again from the same seed only took 2.06 seconds, a 5-fold speedup thanks to
Incidentally, generating the 100000
Ints with the non-memoized function took
0.12 seconds, but that of course lacks all the benefits of memoization.
- Rename System.Random.MemoRandom as System.Random.Memoized.
- Re-export System.Random from System.Random.Memoized.
- Add benchmarking results to the documentation.
Implement memoized randomRs', randoms', randomRIO', randomIO'.
- Initial release.