accelerate-cufft-0.0.0.1: 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, Elt e, 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) => Mode (Batch1 sh) e a b -> Batch1 sh -> IO (Handle (Batch1 sh) e a b) Source

The plan must be created in the Context where transform is executed. E.g. if you run transform in run1, then you must call plan1D within inDefaultContext.

plan2D :: (Shape sh, Slice sh, Elt e, Real e) => 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) => Mode (Batch3 sh) e a b -> Batch3 sh -> IO (Handle (Batch3 sh) e a b) Source

class (RealFloat e, IsFloating e) => Real e Source

Minimal complete definition

switch

Instances

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