dev-haskell/chimera (haskell)

Search

Package Information

Description:
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.
Homepage:
https://github.com/Bodigrim/chimera#readme
License:
BSD

Versions

Version EAPI Keywords Slot
0.3.4.0 8 ~amd64 0/0.3.4.0

Metadata

Description

Maintainers

Upstream

Raw Metadata XML
<pkgmetadata>
	<maintainer type="project">
		<email>haskell@gentoo.org</email>
		<name>Gentoo Haskell</name>
	</maintainer>
	<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 &#39;Chimera&#39; 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>
	<use>
		<flag name="representable">Define Representable instance from adjunctions package</flag>
	</use>
	<upstream>
		<remote-id type="hackage">chimera</remote-id>
		<remote-id type="github">Bodigrim/chimera</remote-id>
	</upstream>
</pkgmetadata>

Lint Warnings

USE Flags

Flag Description 0.3.4.0
representable Define Representable instance from adjunctions package

Manifest

Type File Size Versions
Unmatched Entries
Type File Size
DIST chimera-0.3.4.0.tar.gz 19671 bytes