packages feed

accelerate-fft-1.0.0.0: accelerate-fft.cabal

Name:                   accelerate-fft
Version:                1.0.0.0
Cabal-version:          >= 1.6
Tested-with:            GHC >= 7.8
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:
    cubits/twine_f32.ptx
    cubits/twine_f64.ptx
    cubits/twine_f32.cu
    cubits/twine_f64.cu

Flag cuda
  Description:          Use CUFFT-based implementation in the CUDA backend
  Default:              False

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

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


Library
  build-depends:
        base                    >= 4.7  && < 4.10
      , accelerate              == 1.0.*
      , bytestring              >= 0.9

  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.Mode
      Data.Array.Accelerate.Math.FFT.Twine

  ghc-options:          -O2 -Wall -funbox-strict-fields

  if flag(cuda)
    cpp-options:        -DACCELERATE_CUDA_BACKEND
    build-depends:
        accelerate-cuda         >= 0.16
      , cuda                    >= 0.5
      , cufft                   >= 0.1.2
      , file-embed              >= 0.0.10

    other-modules:
      Data.Array.Accelerate.Math.FFT.CUDA

  if flag(llvm-cpu)
    cpp-options:        -DACCELERATE_LLVM_NATIVE_BACKEND
    build-depends:
        accelerate-llvm         == 1.0.*
      , accelerate-llvm-native  == 1.0.*
      , carray                  >= 0.1.5
      , fft                     >= 0.1.8
      , storable-complex        >= 0.2

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

  if flag(llvm-ptx)
    cpp-options:        -DACCELERATE_LLVM_PTX_BACKEND
    build-depends:
        accelerate-llvm         == 1.0.*
      , accelerate-llvm-ptx     == 1.0.*
      , cuda                    >= 0.5
      , cufft                   >= 0.1.2
      , file-embed              >= 0.0.10

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

  -- 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:

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

Source-repository this
  Type:                 git
  Tag:                  1.0.0.0
  Location:             git://github.com/AccelerateHS/accelerate-fft.git

-- vim: nospell