packages feed

monad-bayes-0.1.1.0: monad-bayes.cabal

cabal-version:      2.0
name:               monad-bayes
version:            0.1.1.0
license:            MIT
license-file:       LICENSE.md
copyright:          2015-2020 Adam Scibior
maintainer:         leonhard.markert@tweag.io
author:             Adam Scibior <adscib@gmail.com>
stability:          experimental
tested-with:        ghc ==8.4.4 ghc ==8.6.5 ghc ==8.8.1
homepage:           http://github.com/tweag/monad-bayes#readme
bug-reports:        https://github.com/tweag/monad-bayes/issues
synopsis:           A library for probabilistic programming.
description:
    A library for probabilistic programming using probability monads. The
    emphasis is on composition of inference algorithms implemented in
    terms of monad transformers.

category:           Statistics
build-type:         Simple
extra-source-files: CHANGELOG.md

source-repository head
    type:     git
    location: https://github.com/tweag/monad-bayes.git

flag dev
    description: Turn on development settings.
    default:     False
    manual:      True

library
    exposed-modules:
        Control.Monad.Bayes.Class
        Control.Monad.Bayes.Enumerator
        Control.Monad.Bayes.Free
        Control.Monad.Bayes.Helpers
        Control.Monad.Bayes.Inference.PMMH
        Control.Monad.Bayes.Inference.RMSMC
        Control.Monad.Bayes.Inference.SMC
        Control.Monad.Bayes.Inference.SMC2
        Control.Monad.Bayes.Population
        Control.Monad.Bayes.Sampler
        Control.Monad.Bayes.Sequential
        Control.Monad.Bayes.Traced
        Control.Monad.Bayes.Traced.Basic
        Control.Monad.Bayes.Traced.Dynamic
        Control.Monad.Bayes.Traced.Static
        Control.Monad.Bayes.Weighted

    hs-source-dirs:     src
    other-modules:      Control.Monad.Bayes.Traced.Common
    default-language:   Haskell2010
    default-extensions:
        MultiParamTypeClasses RankNTypes FlexibleContexts FlexibleInstances
        GeneralizedNewtypeDeriving TypeFamilies StandaloneDeriving GADTs
        TupleSections

    other-extensions:   ScopedTypeVariables DeriveFunctor
    build-depends:
        base >=4.11 && <4.14,
        containers >=0.5.10 && <0.7,
        free >=5.0.2 && <5.2,
        ieee754 >=0.8.0 && <0.9,
        log-domain >=0.12 && <0.14,
        math-functions >=0.2.1 && <0.4,
        monad-coroutine >=0.9.0 && <0.10,
        mtl >=2.2.2 && <2.3,
        mwc-random >=0.13.6 && <0.15,
        safe >=0.3.17 && <0.4,
        statistics >=0.14.0 && <0.16,
        transformers >=0.5.2 && <0.6,
        vector >=0.12.0 && <0.13

    if flag(dev)
        ghc-options:
            -Wall -Wcompat -Wincomplete-record-updates
            -Wincomplete-uni-patterns -Wnoncanonical-monad-instances

    else
        ghc-options: -Wall

executable example
    main-is:          Single.hs
    hs-source-dirs:   benchmark models
    other-modules:
        Dice
        HMM
        LDA
        LogReg

    default-language: Haskell2010
    build-depends:
        base -any,
        containers -any,
        log-domain -any,
        monad-bayes -any,
        mwc-random -any,
        optparse-applicative -any,
        time -any,
        vector -any

    if flag(dev)
        ghc-options:
            -Wall -Wcompat -Wincomplete-record-updates
            -Wincomplete-uni-patterns -Wnoncanonical-monad-instances

    else
        ghc-options: -Wall

test-suite monad-bayes-test
    type:             exitcode-stdio-1.0
    main-is:          Spec.hs
    hs-source-dirs:   test models
    other-modules:
        Sprinkler
        TestEnumerator
        TestInference
        TestPopulation
        TestSequential
        TestWeighted

    default-language: Haskell2010
    build-depends:
        base -any,
        QuickCheck -any,
        hspec -any,
        ieee754 -any,
        log-domain -any,
        math-functions -any,
        monad-bayes -any,
        mtl -any,
        transformers -any,
        vector -any

    if flag(dev)
        ghc-options:
            -Wall -Wcompat -Wincomplete-record-updates
            -Wincomplete-uni-patterns -Wnoncanonical-monad-instances

    else
        ghc-options: -Wall

benchmark ssm-bench
    type:               exitcode-stdio-1.0
    main-is:            SSM.hs
    hs-source-dirs:     models benchmark
    other-modules:      NonlinearSSM
    default-language:   Haskell2010
    default-extensions: RankNTypes
    build-depends:
        base -any,
        monad-bayes -any

benchmark speed-bench
    type:               exitcode-stdio-1.0
    main-is:            Speed.hs
    hs-source-dirs:     models benchmark
    other-modules:
        HMM
        LDA
        LogReg

    default-language:   Haskell2010
    default-extensions: RankNTypes
    build-depends:
        base -any,
        abstract-par -any,
        containers -any,
        criterion -any,
        log-domain -any,
        monad-bayes -any,
        mwc-random -any,
        process -any,
        vector -any

    if flag(dev)
        ghc-options:
            -Wall -Wcompat -Wincomplete-record-updates
            -Wincomplete-uni-patterns -Wnoncanonical-monad-instances

    else
        ghc-options: -Wall