Safe Haskell | None |
---|---|
Language | Haskell2010 |
AOC.Common.Numeric
Synopsis
- fft :: (FFTWReal a, Vector v (Complex a)) => Vector v n (Complex a) -> Vector v n (Complex a)
- ifft :: (FFTWReal a, Vector v (Complex a)) => Vector v n (Complex a) -> Vector v n (Complex a)
- convolve :: (Vector v (Complex a), KnownNat n, 1 <= n, KnownNat m, 1 <= m, FFTWReal a) => Vector v n (Complex a) -> Vector v m (Complex a) -> Vector v ((n + m) - 1) (Complex a)
- rconvolve :: (Vector v (Complex a), Vector v a, KnownNat n, 1 <= n, KnownNat m, 1 <= m, FFTWReal a) => Vector v n a -> Vector v m a -> Vector v ((n + m) - 1) a
- zconvolve :: (Vector v (Complex Double), Vector v Double, Vector v a, KnownNat n, 1 <= n, KnownNat m, 1 <= m, Integral a) => Vector v n a -> Vector v m a -> Vector v ((n + m) - 1) a
- class (Storable a, RealFloat a) => FFTWReal a
Documentation
fft :: (FFTWReal a, Vector v (Complex a)) => Vector v n (Complex a) -> Vector v n (Complex a) Source #
ifft :: (FFTWReal a, Vector v (Complex a)) => Vector v n (Complex a) -> Vector v n (Complex a) Source #
convolve :: (Vector v (Complex a), KnownNat n, 1 <= n, KnownNat m, 1 <= m, FFTWReal a) => Vector v n (Complex a) -> Vector v m (Complex a) -> Vector v ((n + m) - 1) (Complex a) Source #
FFT-based convolution
rconvolve :: (Vector v (Complex a), Vector v a, KnownNat n, 1 <= n, KnownNat m, 1 <= m, FFTWReal a) => Vector v n a -> Vector v m a -> Vector v ((n + m) - 1) a Source #
FFT-based real-valued convolution
zconvolve :: (Vector v (Complex Double), Vector v Double, Vector v a, KnownNat n, 1 <= n, KnownNat m, 1 <= m, Integral a) => Vector v n a -> Vector v m a -> Vector v ((n + m) - 1) a Source #
FFT-based integral convolution
class (Storable a, RealFloat a) => FFTWReal a #
Our API is polymorphic over the real data type. FFTW, at least in
principle, supports single precision Float
, double precision Double
and
long double CLDouble
(presumable?).
Minimal complete definition
plan_guru_dft, plan_guru_dft_r2c, plan_guru_dft_c2r, plan_guru_r2r