accelerate-cufft-1.0: Accelerate frontend to the CUFFT library (Fourier transform)

Safe HaskellNone
LanguageHaskell98

Data.Array.Accelerate.CUFFT.Batched

Description

Transformations of collections of datasets.

Synopsis

Documentation

type Transform sh a b = Acc (Array sh a) -> Acc (Array sh b) Source #

transform :: (Shape sh, Slice sh, Real e) => Handle (sh :. Int) e a b -> Transform (sh :. Int) a b Source #

The implementation works on all arrays of rank less than or equal to 3. The result is un-normalised.

data Handle sh e a b Source #

plan1D :: (Shape sh, Slice sh, Elt e, Real e) => PTX -> Mode (Batch1 sh) e a b -> Batch1 sh -> IO (Handle (Batch1 sh) e a b) Source #

The plan must be created in the PTX target where transform is executed. That is, if using cuFFT you always have to use a run*With function.

plan2D :: (Shape sh, Slice sh, Elt e, Real e) => PTX -> Mode (Batch2 sh) e a b -> Batch2 sh -> IO (Handle (Batch2 sh) e a b) Source #

plan3D :: (Shape sh, Slice sh, Elt e, Real e) => PTX -> Mode (Batch3 sh) e a b -> Batch3 sh -> IO (Handle (Batch3 sh) e a b) Source #

class (RealFloat e, RealFloat e, FromIntegral Int e) => Real e Source #

Minimal complete definition

switch

Instances

Real Double Source # 

Methods

switch :: f Float -> f Double -> f Double

Real Float Source # 

Methods

switch :: f Float -> f Double -> f Float

data Mode sh e a b Source #

forwardComplex :: (Shape sh, Slice sh, Real e) => Mode sh e (Complex e) (Complex e) Source #

inverseComplex :: (Shape sh, Slice sh, Real e) => Mode sh e (Complex e) (Complex e) Source #

forwardReal :: (Shape sh, Slice sh, Real e) => Mode (sh :. Int) e e (Complex e) Source #

In contrast to plain CUFFT functions the data is redundant. That is, an array of shape sh is transformed to an array of shape sh. This way, all dimensions of an array are handled the same way. Chances are good, that the internal post processing is fused with following array operations and thus the redundant data will not be stored in a manifest array.

inverseReal :: (Shape sh, Slice sh, Real e) => Mode (sh :. Int) e (Complex e) e Source #

type Batch0 sh = sh Source #

type Batch1 sh = Batch0 sh :. Int Source #

type Batch2 sh = Batch1 sh :. Int Source #

type Batch3 sh = Batch2 sh :. Int Source #