ADPfusion: Efficient, high-level dynamic programming.
ADPfusion combines stream-fusion (using the stream interface provided by the vector library) and type-level programming to provide highly efficient dynamic programming combinators.
ADPfusion allows writing dynamic programs for single- and multi-tape problems. Inputs can be sequences, or sets. And new input types can be defined, without having to rewrite this library thanks to the open-world assumption of ADPfusion.
The library provides the machinery for Outside and Ensemble algorithms as well. Ensemble algorithms combine Inside and Outside calculations.
The homepage provides a number of tutorial-style examples, with linear and context-free grammars over sequence and set inputs.
Ideas implemented here are described in a couple of papers:
Christian Hoener zu Siederdissen Sneaking Around ConcatMap: Efficient Combinators for Dynamic Programming 2012. Proceedings of the 17th ACM SIGPLAN international conference on Functional programming http://doi.acm.org/10.1145/2364527.2364559 preprint: http://www.tbi.univie.ac.at/newpapers/pdfs/TBI-p-2012-2.pdf
Andrew Farmer, Christian Höner zu Siederdissen, and Andy Gill. The HERMIT in the stream: fusing stream fusion’s concatMap. 2014. Proceedings of the ACM SIGPLAN 2014 workshop on Partial evaluation and program manipulation. http://dl.acm.org/citation.cfm?doid=2543728.2543736
Christian Höner zu Siederdissen, Ivo L. Hofacker, and Peter F. Stadler. Product Grammars for Alignment and Folding. 2014. IEEE/ACM Transactions on Computational Biology and Bioinformatics. 99. http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6819790
Christian Höner zu Siederdissen, Sonja J. Prohaska, and Peter F. Stadler. Algebraic Dynamic Programming over General Data Structures. 2015. submitted.
[Skip to Readme]
Modules
[Index]
- ADP
- ADP.Fusion
- ADP.Fusion.Apply
- ADP.Fusion.Base
- QuickCheck
- ADP.Fusion.SynVar
- ADP.Fusion.TH
- ADP.Fusion.Term
- ADP.Fusion
Flags
Manual Flags
Name | Description | Default |
---|---|---|
examples | build the examples | Disabled |
llvm | build using LLVM | Disabled |
debug | dump intermediate Core files | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- ADPfusion-0.4.0.1.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.0.1.0, 0.0.1.1, 0.0.1.2, 0.1.0.0, 0.2.0.0, 0.2.0.1, 0.2.0.2, 0.2.0.3, 0.2.0.4, 0.2.1.0, 0.4.0.0, 0.4.0.1, 0.4.0.2, 0.4.1.0, 0.4.1.1, 0.5.0.0, 0.5.1.0, 0.5.2.0, 0.5.2.2, 0.6.0.0 (info) |
---|---|
Change log | changelog.md |
Dependencies | base (>=4.7 && <4.9), bits (>=0.4 && <0.5), mmorph (>=1.0 && <1.1), monad-primitive (==0.1), mtl (>=2 && <3), OrderedBits (>=0.0.0 && <0.0.1), primitive (>=0.5.4 && <0.7), PrimitiveArray (>=0.6.0 && <0.6.1), QuickCheck (>=2.7 && <2.9), strict (>=0.3 && <0.4), template-haskell (>=2 && <3), transformers (>=0.3 && <0.5), tuple (>=0.3 && <0.4), vector (>=0.10 && <0.11) [details] |
Tested with | ghc ==7.8.4, ghc ==7.10.1 |
License | BSD-3-Clause |
Copyright | Christian Hoener zu Siederdissen, 2011-2015 |
Author | Christian Hoener zu Siederdissen, 2011-2015 |
Maintainer | choener@bioinf.uni-leipzig.de |
Category | Algorithms, Data Structures, Bioinformatics, Formal Languages |
Home page | http://www.bioinf.uni-leipzig.de/Software/gADP/ |
Source repo | head: git clone git://github.com/choener/ADPfusion |
Uploaded | by ChristianHoener at 2015-05-07T14:49:17Z |
Distributions | |
Reverse Dependencies | 15 direct, 1 indirect [details] |
Executables | Durbin, PartNussinov, Nussinov, NeedlemanWunsch |
Downloads | 19909 total (45 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2015-05-07 [all 1 reports] |