accelerate-fourier-1.0.0.2: Fast Fourier transform and convolution using the Accelerate framework

Safe HaskellNone
LanguageHaskell98

Data.Array.Accelerate.Fourier.Real

Description

Compute transforms on real data based on complex-valued transforms.

Synopsis

Documentation

toSpectrum :: (Shape sh, Slice sh, RealFloat a, FromIntegral Int a) => Transform (sh :. Int) (Complex a) -> Acc (Array (sh :. Int) a) -> Acc (Array (sh :. Int) (Complex a)) Source #

Perform a real-to-complex transform using a complex-to-complex transform of half size. Input must have an even size. Result has the same size as the input, i.e. it is not halved.

fromSpectrum :: (Shape sh, Slice sh, RealFloat a, FromIntegral Int a) => Transform (sh :. Int) (Complex a) -> Acc (Array (sh :. Int) (Complex a)) -> Acc (Array (sh :. Int) a) Source #

Perform a complex-to-real transform using a complex-to-complex of half size. Input must be self-adjoint and must have an even size. Result has the same size as the input, i.e. it is not doubled.

twoToSpectrum :: (Shape sh, Slice sh, RealFloat a) => Transform (sh :. Int) (Complex a) -> Acc (Array (sh :. Int) (a, a)) -> Acc (Array (sh :. Int) (Complex a, Complex a)) Source #

Perform a real-to-complex transform of two real inputs using a complex-to-complex transform of the same size. Input can have arbitrary size.

twoToSpectrum2d :: (Shape sh, Slice sh, RealFloat a) => Transform ((sh :. Int) :. Int) (Complex a) -> Acc (Array ((sh :. Int) :. Int) (a, a)) -> Acc (Array ((sh :. Int) :. Int) (Complex a, Complex a)) Source #

untangleSpectra :: (Shape sh, Slice sh, RealFloat a) => Acc (Array (sh :. Int) (Complex a)) -> Acc (Array (sh :. Int) (Complex a, Complex a)) Source #

You can transform two real data sets using one complex transform. This function can be used to untangle the resulting spectrum.

untangleSpectra2d :: (Shape sh, Slice sh, RealFloat a) => Acc (Array ((sh :. Int) :. Int) (Complex a)) -> Acc (Array ((sh :. Int) :. Int) (Complex a, Complex a)) Source #

twoFromSpectrum :: (Shape sh, Slice sh, RealFloat a) => Transform (sh :. Int) (Complex a) -> Acc (Array (sh :. Int) (Complex a, Complex a)) -> Acc (Array (sh :. Int) (a, a)) Source #

twoFromSpectrum2d :: (Shape sh, Slice sh, RealFloat a) => Transform ((sh :. Int) :. Int) (Complex a) -> Acc (Array ((sh :. Int) :. Int) (Complex a, Complex a)) -> Acc (Array ((sh :. Int) :. Int) (a, a)) Source #

entangleSpectra :: (Shape sh, Slice sh, RealFloat a) => Acc (Array (sh :. Int) (Complex a, Complex a)) -> Acc (Array (sh :. Int) (Complex a)) Source #

entangleSpectra2d :: (Shape sh, Slice sh, RealFloat a) => Acc (Array ((sh :. Int) :. Int) (Complex a, Complex a)) -> Acc (Array ((sh :. Int) :. Int) (Complex a)) Source #