chimera: Lazy infinite streams with O(1) indexing
There are plenty of memoizing libraries on Hackage, but they usually fall into two categories:
Store cache as a flat array, enabling us to obtain cached values in O(1) time, which is nice. The drawback is that one must specify the size of the array beforehand, limiting an interval of inputs, and actually allocate it at once.
Store cache as a lazy binary tree. Thanks to laziness, one can freely use the full range of inputs. The drawback is that obtaining values from a tree takes logarithmic time and is unfriendly to CPU cache, which kinda defeats the purpose.
This package intends to tackle both issues,
providing a data type Chimera
for
lazy infinite compact streams with cache-friendly O(1) indexing.
Additional features include:
memoization of recursive functions and recurrent sequences,
memoization of functions of several, possibly signed arguments,
efficient memoization of boolean predicates.
[Skip to Readme]
Downloads
- chimera-0.3.0.0.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.2.0.0, 0.3.0.0, 0.3.1.0, 0.3.2.0, 0.3.3.0, 0.3.4.0, 0.4.0.0, 0.4.1.0 |
---|---|
Dependencies | base (>=4.9 && <4.16), vector [details] |
Tested with | ghc ==8.8.1, ghc ==8.6.5, ghc ==8.4.4, ghc ==8.2.2, ghc ==8.0.2 |
License | BSD-3-Clause |
Copyright | 2017-2019 Bodigrim |
Author | Bodigrim |
Maintainer | andrew.lelechenko@gmail.com |
Revised | Revision 1 made by Bodigrim at 2022-06-18T15:48:44Z |
Category | Data |
Home page | https://github.com/Bodigrim/chimera#readme |
Source repo | head: git clone https://github.com/Bodigrim/chimera |
Uploaded | by Bodigrim at 2019-12-31T01:20:01Z |
Distributions | Arch:0.4.1.0, LTSHaskell:0.4.1.0, NixOS:0.3.4.0, Stackage:0.4.1.0 |
Reverse Dependencies | 2 direct, 7948 indirect [details] |
Downloads | 5099 total (102 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2019-12-31 [all 1 reports] |