packages feed

accelerate-fft-1.2.0.0: accelerate-fft.cabal

Name:                   accelerate-fft
Version:                1.2.0.0
Cabal-version:          >= 1.8
Tested-with:            GHC >= 7.10
Build-type:             Simple

Synopsis:               FFT using the Accelerate library
Description:
  Rank-polymorphic discrete Fourier transform (DFT), computed with a fast
  Fourier transform (FFT) algorithm using the Accelerate library. Note that
  optimised implementations are available via foreign libraries, but must be
  explicitly enabled.
  .
  Refer to the main /Accelerate/ package for more information:
  <http://hackage.haskell.org/package/accelerate>
  .

License:                BSD3
License-file:           LICENSE
Author:                 Manuel M T Chakravarty,
                        Gabriele Keller,
                        Trevor L. McDonell,
                        Robert Clifton-Everest
Maintainer:             Trevor L. McDonell <tmcdonell@cse.unsw.edu.au>
Homepage:               https://github.com/AccelerateHS/accelerate-fft
Bug-reports:            https://github.com/AccelerateHS/accelerate/issues

Category:               Compilers/Interpreters, Concurrency, Data, Parallelism
Stability:              Experimental

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

flag llvm-ptx
  Description:          Use CUFFT-based implementation in the LLVM.PTX backend
  Default:              True

flag llvm-cpu
  Description:          Use FFTW-based implementation in the LLVM.Native backend
  Default:              True


library
  build-depends:
        base                    >= 4.7  && < 4.12
      , accelerate              >= 1.2  && < 1.3
      , bytestring              >= 0.9
      , lens-accelerate         >= 0.2

  exposed-modules:
      Data.Array.Accelerate.Math.FFT
      Data.Array.Accelerate.Math.DFT
      Data.Array.Accelerate.Math.DFT.Centre
      Data.Array.Accelerate.Math.DFT.Roots

  other-modules:
      Data.Array.Accelerate.Math.FFT.Adhoc
      Data.Array.Accelerate.Math.FFT.Mode
      Data.Array.Accelerate.Math.FFT.Type

  hs-source-dirs:       src
  ghc-options:          -O2 -Wall -funbox-strict-fields

  if flag(llvm-cpu)
    cpp-options:        -DACCELERATE_LLVM_NATIVE_BACKEND
    build-depends:
        accelerate-llvm         >= 1.0  && < 1.3
      , accelerate-llvm-native  >= 1.0  && < 1.3
      , carray                  >= 0.1.5
      , fft                     >= 0.1.8

    other-modules:
      Data.Array.Accelerate.Math.FFT.LLVM.Native
      Data.Array.Accelerate.Math.FFT.LLVM.Native.Base
      Data.Array.Accelerate.Math.FFT.LLVM.Native.Ix

  if flag(llvm-ptx)
    cpp-options:        -DACCELERATE_LLVM_PTX_BACKEND
    build-depends:
        accelerate-llvm         >= 1.0  && < 1.3
      , accelerate-llvm-ptx     >= 1.0  && < 1.3
      , containers              >= 0.5
      , hashable                >= 1.0
      , unordered-containers    >= 0.2
      , cuda                    >= 0.5
      , cufft                   >= 0.9
      , file-embed              >= 0.0.10
      , mtl                     >= 2.2

    other-modules:
      Data.Array.Accelerate.Math.FFT.LLVM.PTX
      Data.Array.Accelerate.Math.FFT.LLVM.PTX.Base
      Data.Array.Accelerate.Math.FFT.LLVM.PTX.Plans

  -- Don't add the extensions list here. Instead, place individual LANGUAGE
  -- pragmas in the files that require a specific extension. This means the
  -- project loads in GHCi, and avoids extension clashes.
  --
  -- Extensions:


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

  if !flag(llvm-cpu)
    buildable: False

  build-depends:
        base                    >= 4.7  && < 4.12
      , accelerate
      , accelerate-fft
      , accelerate-llvm-native
      , hedgehog                >= 0.5
      , tasty                   >= 0.11
      , tasty-hedgehog          >= 0.1

  ghc-options:
        -Wall
        -threaded
        -rtsopts

  other-modules:
      Test.FFT
      Test.Base
      Test.ShowType


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

  if !flag(llvm-ptx)
    buildable: False

  build-depends:
        base                    >= 4.7  && < 4.12
      , accelerate
      , accelerate-fft
      , accelerate-llvm-ptx
      , hedgehog                >= 0.5
      , tasty                   >= 0.11
      , tasty-hedgehog          >= 0.1

  ghc-options:
        -Wall
        -threaded
        -rtsopts

  other-modules:
      Test.FFT
      Test.Base
      Test.ShowType


source-repository head
  Type:                 git
  Location:             git://github.com/AccelerateHS/accelerate-fft.git

source-repository this
  Type:                 git
  Tag:                  1.2.0.0
  Location:             git://github.com/AccelerateHS/accelerate-fft.git

-- vim: nospell