You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.3 KiB
38 lines
1.3 KiB
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
|
<pkgmetadata>
|
|
<maintainer type="project">
|
|
<email>haskell@gentoo.org</email>
|
|
<name>Gentoo Haskell</name>
|
|
</maintainer>
|
|
<use>
|
|
<flag name="representable">Define Representable instance from adjunctions package</flag>
|
|
</use>
|
|
<longdescription>
|
|
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.
|
|
</longdescription>
|
|
</pkgmetadata>
|