acme-memorandom: Memoized random number generation

[ acme, library, mit ] [ Propose Tags ] [ Report a vulnerability ]

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.


[Skip to Readme]

Modules

[Index]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.0.1, 0.0.2, 0.0.3
Change log ChangeLog.md
Dependencies base (>=4 && <5), MemoTrie (>=0.6 && <0.7), random (>=1 && <2) [details]
Tested with ghc ==7.10.1
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:34Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 2575 total (14 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2015-05-18 [all 1 reports]

Readme for acme-memorandom-0.0.3

[back to package description]

acme-memorandom

Hackage

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.