name: ADPfusion version: 0.4.0.2 author: Christian Hoener zu Siederdissen, 2011-2015 copyright: Christian Hoener zu Siederdissen, 2011-2015 homepage: http://www.bioinf.uni-leipzig.de/Software/gADP/ maintainer: choener@bioinf.uni-leipzig.de category: Algorithms, Data Structures, Bioinformatics, Formal Languages license: BSD3 license-file: LICENSE build-type: Simple stability: experimental cabal-version: >= 1.10.0 tested-with: GHC == 7.8.4, GHC == 7.10.1 synopsis: Efficient, high-level dynamic programming. description: 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 preprint: @ . @ 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. @ . @ 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. @ . @ Christian Höner zu Siederdissen, Sonja J. Prohaska, and Peter F. Stadler. Algebraic Dynamic Programming over General Data Structures. 2015. submitted. @ . Extra-Source-Files: README.md changelog.md flag examples description: build the examples default: False manual: True flag llvm description: build using LLVM default: False manual: True flag debug description: dump intermediate Core files default: False manual: True library build-depends: base >= 4.7 && < 4.9 , bits == 0.4.* , mmorph == 1.0.* , monad-primitive == 0.1 , mtl == 2.* , OrderedBits == 0.0.0.* , primitive >= 0.5.4 && < 0.7 , PrimitiveArray == 0.6.0.* , QuickCheck >= 2.7 && < 2.9 , strict == 0.3.* , template-haskell == 2.* , transformers >= 0.3 && < 0.5 , tuple == 0.3.* , vector == 0.10.* exposed-modules: ADP.Fusion ADP.Fusion.Apply ADP.Fusion.Base ADP.Fusion.Base.Classes ADP.Fusion.Base.Multi ADP.Fusion.Base.Point ADP.Fusion.Base.Set ADP.Fusion.Base.Subword ADP.Fusion.Term ADP.Fusion.Term.Chr ADP.Fusion.Term.Chr.Point ADP.Fusion.Term.Chr.Subword ADP.Fusion.Term.Chr.Type ADP.Fusion.Term.Edge ADP.Fusion.Term.Edge.Set ADP.Fusion.Term.Edge.Type ADP.Fusion.Term.Epsilon ADP.Fusion.Term.Epsilon.Point ADP.Fusion.Term.Epsilon.Subword ADP.Fusion.Term.Epsilon.Type ADP.Fusion.Term.Deletion ADP.Fusion.Term.Deletion.Point ADP.Fusion.Term.Deletion.Type ADP.Fusion.Term.PeekIndex ADP.Fusion.Term.PeekIndex.Subword ADP.Fusion.Term.PeekIndex.Type ADP.Fusion.Term.Strng ADP.Fusion.Term.Strng.Point ADP.Fusion.Term.Strng.Type ADP.Fusion.SynVar ADP.Fusion.SynVar.Array ADP.Fusion.SynVar.Array.Point ADP.Fusion.SynVar.Array.Set ADP.Fusion.SynVar.Array.Subword ADP.Fusion.SynVar.Array.Type ADP.Fusion.SynVar.Axiom ADP.Fusion.SynVar.Backtrack ADP.Fusion.SynVar.Fill ADP.Fusion.SynVar.Indices ADP.Fusion.SynVar.Recursive ADP.Fusion.SynVar.Recursive.Point ADP.Fusion.SynVar.Recursive.Subword ADP.Fusion.SynVar.Recursive.Type ADP.Fusion.TH ADP.Fusion.TH.Backtrack ADP.Fusion.TH.Common ADP.Fusion.QuickCheck.Common ADP.Fusion.QuickCheck.Point ADP.Fusion.QuickCheck.Set ADP.Fusion.QuickCheck.Subword default-extensions: BangPatterns , DefaultSignatures , FlexibleContexts , FlexibleInstances , GADTs , MultiParamTypeClasses , RankNTypes , StandaloneDeriving , TemplateHaskell , TypeFamilies , TypeOperators , TypeSynonymInstances , UndecidableInstances default-language: Haskell2010 ghc-options: -O2 -funbox-strict-fields -- Very simple two-sequence alignment. executable NeedlemanWunsch if flag(examples) buildable: True build-depends: base , ADPfusion , PrimitiveArray , template-haskell , vector else buildable: False hs-source-dirs: src main-is: NeedlemanWunsch.hs default-language: Haskell2010 default-extensions: BangPatterns , FlexibleContexts , FlexibleInstances , MultiParamTypeClasses , RecordWildCards , TemplateHaskell , TypeFamilies , TypeOperators ghc-options: -O2 -funbox-strict-fields -funfolding-use-threshold1000 -funfolding-keeness-factor1000 if flag(llvm) ghc-options: -fllvm -optlo-O3 -optlo-std-compile-opts -fllvm-tbaa if flag(debug) ghc-options: -ddump-to-file -ddump-simpl -dsuppress-all -- Basic RNA secondary structure folding executable Nussinov if flag(examples) buildable: True build-depends: base , ADPfusion , PrimitiveArray , template-haskell , vector else buildable: False hs-source-dirs: src main-is: Nussinov.hs default-language: Haskell2010 default-extensions: BangPatterns , FlexibleContexts , FlexibleInstances , MultiParamTypeClasses , RecordWildCards , TemplateHaskell , TypeFamilies , TypeOperators ghc-options: -O2 -funbox-strict-fields -funfolding-use-threshold1000 -funfolding-keeness-factor1000 if flag(llvm) ghc-options: -fllvm -optlo-O3 -optlo-std-compile-opts -fllvm-tbaa if flag(debug) ghc-options: -ddump-to-file -ddump-simpl -dsuppress-all -- Basic RNA secondary structure folding with partition function calculations executable PartNussinov if flag(examples) buildable: True build-depends: base , ADPfusion , log-domain == 0.10.* , PrimitiveArray , template-haskell , vector else buildable: False hs-source-dirs: src main-is: PartNussinov.hs default-language: Haskell2010 default-extensions: BangPatterns , FlexibleContexts , FlexibleInstances , MultiParamTypeClasses , RecordWildCards , TemplateHaskell , TypeFamilies , TypeOperators ghc-options: -O2 -funbox-strict-fields -funfolding-use-threshold1000 -funfolding-keeness-factor1000 if flag(llvm) ghc-options: -fllvm -optlo-O3 -optlo-std-compile-opts -fllvm-tbaa if flag(debug) ghc-options: -ddump-to-file -ddump-simpl -dsuppress-all executable Durbin if flag(examples) buildable: True build-depends: base , ADPfusion , PrimitiveArray , template-haskell , vector else buildable: False hs-source-dirs: src main-is: Durbin.hs default-language: Haskell2010 default-extensions: BangPatterns , FlexibleContexts , FlexibleInstances , MultiParamTypeClasses , RecordWildCards , TemplateHaskell , TypeFamilies , TypeOperators ghc-options: -O2 -fcpr-off -funbox-strict-fields -funfolding-use-threshold1000 -funfolding-keeness-factor1000 if flag(llvm) ghc-options: -fllvm -optlo-O3 -optlo-std-compile-opts -fllvm-tbaa if flag(debug) ghc-options: -ddump-to-file -ddump-simpl -dsuppress-all test-suite properties type: exitcode-stdio-1.0 main-is: properties.hs ghc-options: -threaded -rtsopts -with-rtsopts=-N hs-source-dirs: tests default-language: Haskell2010 default-extensions: TemplateHaskell build-depends: base , ADPfusion , QuickCheck , test-framework >= 0.8 && < 0.9 , test-framework-quickcheck2 >= 0.3 && < 0.4 , test-framework-th >= 0.2 && < 0.3 source-repository head type: git location: git://github.com/choener/ADPfusion