Safe Haskell | None |
---|---|
Language | Haskell2010 |
Fast FFTs using FFTW
- fftFixup :: (Vector v n, Num n) => Int -> v n
- 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 CDouble) => Int -> IO (Pipe (v (Complex CDouble)) (Vector (Complex CDouble)) IO ())
- fftwReal :: Vector v CDouble => Int -> IO (Pipe (v CDouble) (Vector (Complex CDouble)) IO ())
- fftwParallel :: Vector v (Complex CDouble) => Int -> Int -> IO (Pipe (v (Complex CDouble)) (Vector (Complex CDouble)) IO ())
Windows
Compute a vector of alternating 1s and 0s of the given size.
Compute a Hamming window.
Compute a Hanning window.
Compute a Blackman window.
FFTs
:: Vector v (Complex CDouble) | |
=> Int | The size of the input and output buffers |
-> IO (Pipe (v (Complex CDouble)) (Vector (Complex CDouble)) IO ()) |
Creates a Pipe that performs a complex to complex DFT.
:: Vector v CDouble | |
=> Int | The size of the input Vector |
-> IO (Pipe (v CDouble) (Vector (Complex CDouble)) IO ()) |
Creates a pipe that performs a real to complex DFT.
:: Vector v (Complex CDouble) | |
=> Int | The number of threads to use |
-> Int | The size of the input Vector |
-> IO (Pipe (v (Complex CDouble)) (Vector (Complex CDouble)) 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.