Safe Haskell | None |
---|---|
Language | Haskell2010 |
Fast FFTs using FFTW
Synopsis
- hamming :: (Floating n, Vector v n) => Int -> v n
- hanning :: (Floating n, Vector v n) => Int -> v n
- blackman :: (Floating n, Vector v n) => Int -> v n
- fftw' :: Vector v (Complex Double) => Int -> IO (v (Complex Double) -> IO (Vector (Complex Double)))
- fftw :: Vector v (Complex Double) => Int -> IO (Pipe (v (Complex Double)) (Vector (Complex Double)) IO ())
- fftwReal' :: Vector v Double => Int -> IO (v Double -> IO (Vector (Complex Double)))
- fftwReal :: Vector v Double => Int -> IO (Pipe (v Double) (Vector (Complex Double)) IO ())
- fftwParallel :: Vector v (Complex Double) => Int -> Int -> IO (Pipe (v (Complex Double)) (Vector (Complex Double)) IO ())
Windows
Compute a Hamming window.
Compute a Hanning window.
Compute a Blackman window.
FFTs
:: Vector v (Complex Double) | |
=> Int | The size of the input and output buffers |
-> IO (v (Complex Double) -> IO (Vector (Complex Double))) |
Creates a function that performs a complex to complex DFT.
:: Vector v (Complex Double) | |
=> Int | The size of the input and output buffers |
-> IO (Pipe (v (Complex Double)) (Vector (Complex Double)) IO ()) |
Creates a Pipe that performs a complex to complex DFT.
:: Vector v Double | |
=> Int | The size of the input Vector |
-> IO (v Double -> IO (Vector (Complex Double))) |
Creates a function that performs a real to complex DFT.
:: Vector v Double | |
=> Int | The size of the input Vector |
-> IO (Pipe (v Double) (Vector (Complex Double)) IO ()) |
Creates a pipe that performs a real to complex DFT.
:: Vector v (Complex Double) | |
=> Int | The number of threads to use |
-> Int | The size of the input Vector |
-> IO (Pipe (v (Complex Double)) (Vector (Complex Double)) IO ()) |
Creates a pipe that uses multiple threads to perform complex to complex DFTs in a pipelined fashion. Each time a buffer is consumed, it is given to a pool of threads to perform the DFT. Then, if a thread has finished performing a previous DFT, the result is yielded.