Copyright | (c) 2011 Bryan O'Sullivan |
---|---|
License | BSD3 |
Maintainer | bos@serpentine.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
Fourier-related transformations of mathematical functions.
These functions are written for simplicity and correctness, not speed. If you need a fast FFT implementation for your application, you should strongly consider using a library of FFTW bindings instead.
- type CD = Complex Double
- dct :: (Vector v CD, Vector v Double, Vector v Int) => v Double -> v Double
- dct_ :: (Vector v CD, Vector v Double, Vector v Int) => v CD -> v Double
- idct :: (Vector v CD, Vector v Double) => v Double -> v Double
- idct_ :: (Vector v CD, Vector v Double) => v CD -> v Double
- fft :: Vector v CD => v CD -> v CD
- ifft :: Vector v CD => v CD -> v CD
Type synonyms
Discrete cosine transform
dct :: (Vector v CD, Vector v Double, Vector v Int) => v Double -> v Double #
Discrete cosine transform (DCT-II).
dct_ :: (Vector v CD, Vector v Double, Vector v Int) => v CD -> v Double #
Discrete cosine transform (DCT-II). Only real part of vector is transformed, imaginary part is ignored.
idct :: (Vector v CD, Vector v Double) => v Double -> v Double #
Inverse discrete cosine transform (DCT-III). It's inverse of
dct
only up to scale parameter:
(idct . dct) x = (* length x)
idct_ :: (Vector v CD, Vector v Double) => v CD -> v Double #
Inverse discrete cosine transform (DCT-III). Only real part of vector is transformed, imaginary part is ignored.