[Haskell] ADPfusion: Efficient, high-level dynamic programming

Christian Höner zu Siederdissen choener at tbi.univie.ac.at
Sun Mar 25 03:57:42 CEST 2012


ADPfusion combines stream-fusion (using the stream interface provided by
the vector library) and type-level programming to provide highly
efficient dynamic programming (DP) combinators.

You can write DP programs in a style similar to Algebraic Dynamic
Programming (ADP) (Giegerich et al.), meaning symbolically without
explicit indices. The symbolic operators provide a number of advantages:

- take care of extracting the correct cell information from data
  structures (DP matrices)
- no more index problems, the grammars are completely free of index
  calculations by the user
- complex operators can be written with "next step" behaviour dependent
  on other information calculated during runtime
- monadic interface
- works with pure/monadic, boxed/unboxed, ... data structures
- speed close to optimized C (between 1.8x - 3x slower currently --
  compared to well-optimized C-code)

Hackage: http://hackage.haskell.org/package/ADPfusion

1st example program: http://hackage.haskell.org/package/Nussinov78

Many thanks to Roman Leshchinskiy!



Viele Gruesse,
Christian Hoener zu Siederdissen


ADP: http://bibiserv.techfak.uni-bielefeld.de/adp/adpapp.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://www.haskell.org/pipermail/haskell/attachments/20120325/24f8cebc/attachment.pgp>


More information about the Haskell mailing list