arb-fft-0.2.0.2: Pure Haskell arbitrary length FFT library

Numeric.FFT

Description

Arbitrary input vector lengths are handled using a mixed-radix Cooley-Tukey decimation in time algorithm with residual prime length vectors being treated using Rader's algorithm or hand-coded codelets for small primes.

Synopsis

# Documentation

fft :: Vector v (Complex Double) => v (Complex Double) -> IO (v (Complex Double))Source

Forward FFT with embedded plan calculation. For an input vector h of length N, with entries numbered from 0 to N - 1, calculates the entries in H, the discrete Fourier transform of h, as: ifft :: Vector v (Complex Double) => v (Complex Double) -> IO (v (Complex Double))Source

Inverse FFT with embedded plan calculation. For an input vector H of length N, with entries numbered from 0 to N - 1, representing Fourier amplitudes of a signal, calculates the entries in h, the inverse discrete Fourier transform of H, as: fftWith :: Vector v (Complex Double) => Plan -> v (Complex Double) -> v (Complex Double)Source

Forward FFT with pre-computed plan.

ifftWith :: Vector v (Complex Double) => Plan -> v (Complex Double) -> v (Complex Double)Source

Inverse FFT with pre-computed plan.

Plan calculation for a given problem size.

planFromFactors :: Int -> (Int, Vector Int) -> IO PlanSource

Plan calculation for a given problem factorisation.

execute :: Plan -> Direction -> VCD -> VCDSource

Main FFT plan execution driver.

data Plan Source

A FFT plan. This depends only on the problem size and can be pre-computed and reused to transform (and inverse transform) any number of vectors of the given size.

Constructors

 Plan FieldsplDLInfo :: Vector (Int, Int, VVVCD, VVVCD)Size information and diagonal matrix entries for Danielson-Lanczos recursive decomposition of problem size. plPermute :: Maybe VIInput vector permutation to use before base transformation and recursive Danielson-Lanczos composition. plBase :: BaseTransformBase transformation used for each sub-vector before performing recursive Danielson-Lanczos steps to form the full FFT result.

Instances

 Eq Plan Show Plan

data Direction Source

Transform direction: `Forward` is the normal FFT, `Inverse` is inverse FFT.

Constructors

 Forward Inverse

Instances

 Eq Direction Show Direction

A base transform used at the bottom of the recursive Cooley-Tukey decomposition of the input problem size: either a simple DFT, a special hard-coded small problem size case, or a Rader prime-length FFT invocation.

Constructors