accelerate-fft-0.15.0.0: FFT using the Accelerate library

Copyright[2012..2013] Manuel M T Chakravarty, Gabriele Keller, Trevor L. McDonell, Robert Clifton-Everest
LicenseBSD3
MaintainerManuel M T Chakravarty <chak@cse.unsw.edu.au>
Stabilityexperimental
Portabilitynon-portable (GHC extensions)
Safe HaskellNone
LanguageHaskell98

Data.Array.Accelerate.Math.FFT

Description

Computation of a Discrete Fourier Transform using the Cooley-Tuckey algorithm. The time complexity is O(n log n) in the size of the input.

This uses a naïve divide-and-conquer algorithm whose absolute performance is appalling.

Documentation

data Mode Source

Constructors

Forward 
Reverse 
Inverse 

Instances

fft1D :: (Elt e, IsFloating e) => Mode -> Vector (Complex e) -> Acc (Vector (Complex e)) Source

fft1D' :: forall e. (Elt e, IsFloating e) => Mode -> Int -> Acc (Vector (Complex e)) -> Acc (Vector (Complex e)) Source

fft2D :: (Elt e, IsFloating e) => Mode -> Array DIM2 (Complex e) -> Acc (Array DIM2 (Complex e)) Source

fft2D' Source

Arguments

:: forall e . (Elt e, IsFloating e) 
=> Mode 
-> Int

width

-> Int

height

-> Acc (Array DIM2 (Complex e)) 
-> Acc (Array DIM2 (Complex e)) 

fft3D :: (Elt e, IsFloating e) => Mode -> Array DIM3 (Complex e) -> Acc (Array DIM3 (Complex e)) Source

fft3D' Source

Arguments

:: forall e . (Elt e, IsFloating e) 
=> Mode 
-> Int

width

-> Int

height

-> Int

depth

-> Acc (Array DIM3 (Complex e)) 
-> Acc (Array DIM3 (Complex e)) 

fft :: forall sh e. (Slice sh, Shape sh, IsFloating e, Elt e) => e -> sh -> Int -> Acc (Array (sh :. Int) (Complex e)) -> Acc (Array (sh :. Int) (Complex e)) Source