packages feed

HyloDP-1.0.0: HyloDP.cabal

cabal-version:       2.4

name:                HyloDP
version:             1.0.0
synopsis:            A package for  solving dynamic programming problems in Haskell
description:
      This package contains the library HyloDP for solving dynamic programming problems in Haskell, and six solved DP problems: Edit Distance, Fibonacci, Knapsack, Longest Common Subsequence, Random Walk and Text Segmentation.
      .
      The library HyloDP implements the code of the research article:
      .
      ['Easily solving dynamic programming problems in Haskell by memoization of hylomorphisms'](https://doi.org/10.1002/spe.2887) by D.Llorens and J.M. Vilar. Software: Practice and Experience (ISSN:1097-024X). 2020; 50: 2193–2211.
      .
      A preliminary version of the article can be downloaded from [here](https://repositori.uji.es/xmlui/bitstream/handle/10234/191226/71752.pdf?sequence=1).
homepage:            https://github.com/DavidLlorens/HyloDP
-- bug-reports:
license:             BSD-3-Clause
license-file:        LICENSE
author:              David Llorens <dllorens@uji.es>, Juan Miguel Vilar <jvilar@uji.es>
maintainer:          David Llorens <dllorens@uji.es>
copyright:           David Llorens and Juan Miguel Vilar, 2020
category:            Recursion, Dynamic Programming
extra-source-files:  README.md
stability:           experimental
build-type:          Simple
extra-source-files:
    CHANGELOG.md

source-repository head
  type:     git
  location: https://github.com/DavidLlorens/HyloDP.git

common shared-properties
  default-language: Haskell2010
  build-depends:
    base >= 4.7 && < 5,
    MemoTrie >= 0.6.11 && < 0.7
  -- ghc-options: -Wall

library
    import: shared-properties
    exposed-modules:
        HyloDP.Base
        HyloDP.Semiring
        HyloDP
    hs-source-dirs: src

executable EditDistanceMain
    import: shared-properties
    main-is: EditDistanceMain.hs
    other-modules: EditDistance
    build-depends: HyloDP -any
    hs-source-dirs: examples

executable FibonacciMain
    import: shared-properties
    main-is: FibonacciMain.hs
    other-modules: Fibonacci
    build-depends: HyloDP -any
    hs-source-dirs: examples

executable TextSegmentationMain
    import: shared-properties
    main-is: TextSegmentationMain.hs
    other-modules: TextSegmentation, Probability
    build-depends:
        containers >= 0.6 && < 0.7,
        HyloDP -any
    hs-source-dirs: examples

executable KnapsackMain
    import: shared-properties
    main-is: KnapsackMain.hs
    other-modules: Knapsack
    build-depends: HyloDP -any
    hs-source-dirs: examples

executable RandomWalkMain
    import: shared-properties
    main-is: RandomWalkMain.hs
    other-modules: RandomWalk, Probability
    build-depends: HyloDP -any
    hs-source-dirs: examples

executable LongestCommonSubsequenceMain
    import: shared-properties
    main-is: LongestCommonSubsequenceMain.hs
    other-modules: LongestCommonSubsequence
    build-depends: HyloDP -any
    hs-source-dirs: examples

test-suite spec
  import: shared-properties
  type: exitcode-stdio-1.0
  other-modules:
    Fibonacci,
    Knapsack,
    EditDistance,
    LongestCommonSubsequence,
    Probability
    RandomWalk,
    TextSegmentation
  hs-source-dirs:
    test,
    examples
  main-is: Spec.hs
  build-depends:
    containers >= 0.6 && < 0.7,
    hspec >= 2.0 && < 3.0,
    HyloDP