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.

[maintain] [Publish]

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]

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]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


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.