ADPfusion-0.4.0.2: ADPfusion.cabal
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
<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.
@
.
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