adaptive-containers: Self optimizing container types
Self optimizing polymorphic container types.
Adaptive containers are polymorphic container types that use class associated data types to specialize particular element types to a more efficient container representation. The resulting structures tend to be both more time and space efficient.
A self-optimizing pair, for example, will unpack the constructors, yielding a representation for (Int,Char) requiring 8 bytes, instead of 24.
This difference can be visualized. Consider the expression:
[ (x,y) | x <- [1..3], y <- [x..3] ]
[(Int,Int)]: A regular list of pairs http://code.haskell.org/~dons/images/vacuum/tuple-list.png
[Pair Int Int]: An adaptive list of pairs http://code.haskell.org/~dons/images/vacuum/pair-list.png
List (Pair Int Int): An adaptive list of adaptive pairs http://code.haskell.org/~dons/images/vacuum/list-pair.png
Currently supported adaptive containers: pairs, lists, maybes
Most unboxed element types are supported.
Downloads
- adaptive-containers-0.3.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.1, 0.2, 0.2.1, 0.3 |
---|---|
Dependencies | base [details] |
License | BSD-3-Clause |
Author | Don Stewart |
Maintainer | Don Stewart (dons@galois.com) |
Category | Data |
Home page | http://code.haskell.org/~dons/code/adaptive-containers |
Uploaded | by DonaldStewart at 2009-04-11T23:07:53Z |
Distributions | |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Downloads | 3883 total (0 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |