packages feed

accelerate-bignum-0.3.0.0: accelerate-bignum.cabal

name:                   accelerate-bignum
version:                0.3.0.0
synopsis:               Fixed-length large integer arithmetic for Accelerate
description:
  This package provides fixed-length large integer types and arithmetic
  operations for Accelerate. Signed and unsigned 96, 128, 160, 192, 224, 256,
  and 512-bit types are predefined.
  .
  Refer to the main /Accelerate/ package for more information:
  <http://hackage.haskell.org/package/accelerate>

homepage:               https://github.com/tmcdonell/accelerate-bignum
bug-reports:            https://github.com/tmcdonell/accelerate-bignum/issues
license:                BSD3
license-file:           LICENSE
author:                 Trevor L. McDonell
maintainer:             Trevor L. McDonell <trevor.mcdonell@gmail.com>
copyright:              BSD3
category:               Accelerate, Data
build-type:             Simple
cabal-version:          >= 1.10

extra-source-files:
  README.md
  CHANGELOG.md

flag llvm-cpu
  description:          Enable primpos for the LLVM CPU backend
  default:              True

flag llvm-ptx
  description:          Enable primops for the LLVM PTX backend
  default:              True

library
  default-language:     Haskell2010
  hs-source-dirs:       src
  exposed-modules:
      Data.Array.Accelerate.Data.BigInt
      Data.Array.Accelerate.Data.BigWord

  other-modules:
      Data.Array.Accelerate.Internal.BigInt
      Data.Array.Accelerate.Internal.BigWord
      Data.Array.Accelerate.Internal.LLVM.Native
      Data.Array.Accelerate.Internal.LLVM.PTX
      Data.Array.Accelerate.Internal.Num2
      Data.Array.Accelerate.Internal.Orphans
      Data.Array.Accelerate.Internal.Orphans.Base
      Data.Array.Accelerate.Internal.Orphans.Elt

  build-depends:
          base                          >= 4.8 && < 5
        , accelerate                    >= 1.3
        , ghc-prim
        , template-haskell

  if flag(llvm-cpu)
    cpp-options:        -DACCELERATE_LLVM_NATIVE_BACKEND
    build-depends:
          accelerate-llvm               >= 1.3
        , accelerate-llvm-native        >= 1.3
        , llvm-hs-pure                  >= 3.9
    --
    other-modules:
      Data.Array.Accelerate.Internal.LLVM.Prim

  if flag(llvm-ptx)
    cpp-options:        -DACCELERATE_LLVM_PTX_BACKEND
    build-depends:
          accelerate-llvm               >= 1.3
        , accelerate-llvm-ptx           >= 1.3
        , llvm-hs-pure                  >= 3.9
    --
    other-modules:
      Data.Array.Accelerate.Internal.LLVM.Prim

  ghc-options:
        -O2
        -Wall
        -fwarn-tabs

  cpp-options:
        -DUNBOXED_TUPLES=1

  if impl(ghc == 8.0.1)
    -- https://ghc.haskell.org/trac/ghc/ticket/12212
    ghc-options:
        -O0


test-suite test-llvm-native
  type:                 exitcode-stdio-1.0
  default-language:     Haskell2010
  hs-source-dirs:       test
  main-is:              TestNative.hs
  ghc-options:          -main-is TestNative

  if !flag(llvm-cpu)
    buildable: False

  build-depends:
          base                          >= 4.7  && < 5
        , accelerate
        , accelerate-bignum
        , accelerate-llvm-native
        , hedgehog
        , tasty
        , tasty-hedgehog

  ghc-options:
        -O2
        -Wall
        -threaded
        -rtsopts

  other-modules:
      Test.Base
      Test.BigNum
      Test.BigNum.Bits
      Test.BigNum.Bounded
      Test.BigNum.Enum
      Test.BigNum.Eq
      Test.BigNum.FiniteBits
      Test.BigNum.FromIntegral
      Test.BigNum.Integral
      Test.BigNum.Num
      Test.BigNum.Num2
      Test.BigNum.Ord
      Test.BigNum.Real
      Test.Iso
      Test.ShowType
      Test.Types


test-suite test-llvm-ptx
  type:                 exitcode-stdio-1.0
  default-language:     Haskell2010
  hs-source-dirs:       test
  main-is:              TestPTX.hs
  ghc-options:          -main-is TestPTX

  if !flag(llvm-ptx)
    buildable: False

  build-depends:
          base                          >= 4.7  && < 5
        , accelerate
        , accelerate-bignum
        , accelerate-llvm-ptx
        , hedgehog
        , tasty
        , tasty-hedgehog

  ghc-options:
        -O2
        -Wall
        -threaded
        -rtsopts

  other-modules:
      Test.Base
      Test.BigNum
      Test.BigNum.Bits
      Test.BigNum.Bounded
      Test.BigNum.Enum
      Test.BigNum.Eq
      Test.BigNum.FiniteBits
      Test.BigNum.FromIntegral
      Test.BigNum.Integral
      Test.BigNum.Num
      Test.BigNum.Num2
      Test.BigNum.Ord
      Test.BigNum.Real
      Test.Iso
      Test.ShowType
      Test.Types


benchmark accelerate-bignum-bench
  default-language:     Haskell2010
  type:                 exitcode-stdio-1.0
  hs-source-dirs:       bench
  main-is:              Main.hs
  other-modules:
      Accelerate
      WideWord

  build-depends:
          base                          >= 4.8 && < 5
        , accelerate
        , accelerate-bignum
        , accelerate-io-vector          >= 0.1
        , criterion                     >= 1.0
        , mwc-random                    >= 0.13
        , vector                        >= 0.11
        , vector-th-unbox               >= 0.2
        , wide-word                     == 0.1.*

  ghc-options:
        -O2
        -Wall
        -threaded
        -rtsopts
        -fno-liberate-case
        -funfolding-use-threshold=200
        -- -with-rtsopts=-N
        -- -with-rtsopts=-n2M
        -- -with-rtsopts=-A64M

  if flag(llvm-cpu)
    cpp-options:        -DACCELERATE_LLVM_NATIVE_BACKEND
    build-depends:
          accelerate-llvm-native

  if flag(llvm-ptx)
    cpp-options:        -DACCELERATE_LLVM_PTX_BACKEND
    build-depends:
          accelerate-llvm-ptx


source-repository head
  type:     git
  location: https://github.com/tmcdonell/accelerate-bignum

source-repository this
  type:     git
  tag:      v0.3.0.0
  location: https://github.com/tmcdonell/accelerate-bignum

-- vim: nospell