packages feed

accelerate-kullback-liebler-0.1.2.0: accelerate-kullback-liebler.cabal

cabal-version:   2.0
name:            accelerate-kullback-liebler
version:         0.1.2.0
license:         BSD3
license-file:    LICENSE
copyright:       Copyright: (c) 2019-2020 Vanessa McHale
maintainer:      vamchale@gmail.com
author:          Vanessa McHale
synopsis:        Kullback-Liebler divergence
description:     Kullback-Liebler divergence using accelerate
category:        Accelerate, Array
build-type:      Simple
extra-doc-files:
    README.md
    CHANGELOG.md

source-repository head
    type:     darcs
    location: https://hub.darcs.net/vmchale/accelerate-kullback-liebler

flag development
    description: Enable `-Werror`
    default:     False
    manual:      True

flag gpu
    description: Enable GPU backend (only affects test/benchmark suite)

library
    exposed-modules:  Data.Array.Accelerate.KullbackLiebler
    hs-source-dirs:   src
    default-language: Haskell2010
    other-extensions: FlexibleContexts ConstraintKinds
    ghc-options:      -Wall
    build-depends:
        base >=4.3 && <5,
        accelerate >=1.1.0.0

    if flag(development)
        ghc-options: -Werror

    if impl(ghc >=8.0)
        ghc-options:
            -Wincomplete-uni-patterns -Wincomplete-record-updates
            -Wredundant-constraints -Widentities

    if impl(ghc >=8.4)
        ghc-options: -Wmissing-export-lists

library accelerate-test
    exposed-modules:  Data.Array.Accelerate.Test
    hs-source-dirs:   common
    default-language: Haskell2010
    ghc-options:      -Wall
    build-depends:
        base >=4.3 && <5,
        mwc-random-accelerate -any,
        accelerate >=1.1.0.0,
        accelerate-kullback-liebler >=0.1.1.0

    if flag(development)
        ghc-options: -Werror

    if impl(ghc >=8.0)
        ghc-options:
            -Wincomplete-uni-patterns -Wincomplete-record-updates
            -Wredundant-constraints -Widentities

    if impl(ghc >=8.4)
        ghc-options: -Wmissing-export-lists

test-suite accelerate-kullback-liebler-test
    type:             exitcode-stdio-1.0
    main-is:          Spec.hs
    hs-source-dirs:   test
    default-language: Haskell2010
    ghc-options:      -threaded -rtsopts -with-rtsopts=-N -Wall
    build-depends:
        base -any,
        accelerate-kullback-liebler -any,
        tasty -any,
        composition-prelude >=2.0.2.0,
        tasty-hedgehog -any,
        tasty-hunit -any,
        accelerate-llvm-native -any,
        accelerate-test -any,
        accelerate -any

    if flag(development)
        ghc-options: -Werror

    if flag(gpu)
        cpp-options:   -DACCELERATE_GPU
        build-depends: accelerate-llvm-ptx -any

    if impl(ghc >=8.0)
        ghc-options:
            -Wincomplete-uni-patterns -Wincomplete-record-updates
            -Wredundant-constraints -Widentities

    if impl(ghc >=8.4)
        ghc-options: -Wmissing-export-lists

    if impl(ghc >=8.2)
        ghc-options: -Wcpp-undef

benchmark accelerate-kullback-liebler-bench
    type:               exitcode-stdio-1.0
    main-is:            Bench.hs
    build-tool-depends: cpphs:cpphs -any
    hs-source-dirs:     bench
    default-language:   Haskell2010
    ghc-options:        -threaded -rtsopts -with-rtsopts=-N -O3 -Wall
    build-depends:
        base -any,
        accelerate-kullback-liebler -any,
        accelerate-test -any,
        accelerate-llvm-native -any,
        accelerate -any,
        criterion -any

    if flag(gpu)
        cpp-options:   -DACCELERATE_GPU
        build-depends: accelerate-llvm-ptx -any

    if flag(development)
        ghc-options: -Werror

    if impl(ghc >=8.0)
        ghc-options:
            -Wincomplete-uni-patterns -Wincomplete-record-updates
            -Wredundant-constraints -Widentities

    if impl(ghc >=8.4)
        ghc-options: -Wmissing-export-lists

    if impl(ghc >=8.2)
        ghc-options: -Wcpp-undef