ADPfusionSet: Dynamic programming for Set data structures.

[ algorithms, bioinformatics, bsd3, data-structures, formal-languages, library ] [ Propose Tags ]

generalized Algebraic Dynamic Programming

Extensions of ADPfusion for set-(like) data structures.

[Skip to Readme]


Manual Flags


build the examples


Enable bounds checking and various other debug operations at the cost of a significant performance penalty.


Enable debug output, which spams the screen full of index information


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS],
Change log
Dependencies ADPfusion (>=0.5.2 && <0.5.3), base (>=4.7 && <5.0), bits (>=0.4), containers, DPutils (>=0.0.1 && <0.0.2), mmorph (>=1.0), mtl (>=2.0), OrderedBits (>=0.0.1 && <0.0.2), primitive (>=0.5.4), PrimitiveArray (>=0.8.0 && <0.8.1), QuickCheck (>=2.7), strict (>=0.3), template-haskell (>=2.0), th-orphans (>=0.12), transformers (>=0.3), tuple (>=0.3), vector (>=0.11) [details]
License BSD-3-Clause
Copyright Christian Hoener zu Siederdissen, 2016-2017
Author Christian Hoener zu Siederdissen, 2016-2017
Category Algorithms, Data Structures, Bioinformatics, Formal Languages
Home page
Bug tracker
Source repo head: git clone git://
Uploaded by ChristianHoener at 2017-10-19T14:36:27Z
Reverse Dependencies 3 direct, 0 indirect [details]
Downloads 2023 total (8 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-10-19 [all 1 reports]

Readme for ADPfusionSet-

[back to package description]

Build Status


generalized Algebraic Dynamic Programming Homepage

Ideas implemented here are described in a couple of papers:

  1. Christian Hoener zu Siederdissen
    Sneaking Around ConcatMap: Efficient Combinators for Dynamic Programming
    2012, Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
    paper preprint
  2. 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.
  3. 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
  4. Christian Höner zu Siederdissen, Sonja J. Prohaska, and Peter F. Stadler
    Algebraic Dynamic Programming over General Data Structures
    2015, BMC Bioinformatics
  5. Maik Riechert, Christian Höner zu Siederdissen, and Peter F. Stadler
    Algebraic dynamic programming for multiple context-free languages
    2015, submitted


ADPfusionSet extends ADPfusion with index structures suitable for sets. Included are sets, and sets with one and two boundaries. The classical example for DP on sets with a single boundary is the travelling salesman problem. Here, the set denotes the set of cities already visited, while the boundary is the last city that was visited.


Follow the gADP examples.


Christian Hoener zu Siederdissen
Leipzig University, Leipzig, Germany