acme-memorandom: Memoized random number generation
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
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.
[Skip to Readme]
Properties
Versions | 0.0.1, 0.0.2, 0.0.3, 0.0.3 |
---|---|
Change log | ChangeLog.md |
Dependencies | base (>=4 && <5), MemoTrie (>=0.6 && <0.7), random (>=1 && <2) [details] |
License | MIT |
Copyright | Copyright © 2015 Johan Kiviniemi |
Author | Johan Kiviniemi <devel@johan.kiviniemi.name> |
Maintainer | Johan Kiviniemi <devel@johan.kiviniemi.name> |
Category | ACME |
Home page | https://github.com/ion1/acme-memorandom |
Bug tracker | https://github.com/ion1/acme-memorandom/issues |
Source repo | head: git clone https://github.com/ion1/acme-memorandom.git |
Uploaded | by ion at 2015-05-15T23:38:19Z |
Modules
[Index]
- System
- Random
Downloads
- acme-memorandom-0.0.3.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees