repa-algorithms-3.4.1.2: Algorithms using the Repa array library.

Data.Array.Repa.Algorithms.FFT

Description

Fast computation of Discrete Fourier Transforms using the Cooley-Tuckey algorithm. Time complexity is O(n log n) in the size of the input.

This uses a naive divide-and-conquer algorithm, the absolute performance is about 50x slower than FFTW in estimate mode.

Synopsis

# Documentation

data Mode Source #

Constructors

 Forward Reverse Inverse

Instances

 Source # Methods(==) :: Mode -> Mode -> Bool #(/=) :: Mode -> Mode -> Bool # Source # MethodsshowsPrec :: Int -> Mode -> ShowS #show :: Mode -> String #showList :: [Mode] -> ShowS #

Check if an Int is a power of two. Assumes n is a natural number.

fft3dP :: (Source r Complex, Monad m) => Mode -> Array r DIM3 Complex -> m (Array U DIM3 Complex) Source #

Compute the DFT of a 3d array. Array dimensions must be powers of two else error.

fft2dP :: (Source r Complex, Monad m) => Mode -> Array r DIM2 Complex -> m (Array U DIM2 Complex) Source #

Compute the DFT of a matrix. Array dimensions must be powers of two else error.

fft1dP :: (Source r Complex, Monad m) => Mode -> Array r DIM1 Complex -> m (Array U DIM1 Complex) Source #

Compute the DFT of a vector. Array dimensions must be powers of two else error.