Safe Haskell | None |
---|---|
Language | Haskell98 |
Transformations of single datasets.
- type Transform sh a b = Acc (Array sh a) -> Acc (Array sh b)
- transform :: (Shape sh, Slice sh, Real e) => Handle (sh :. Int) e a b -> Transform (sh :. Int) a b
- data Handle sh e a b
- plan1D :: (Elt e, Real e) => PTX -> Mode DIM1 e a b -> DIM1 -> IO (Handle DIM1 e a b)
- plan2D :: (Elt e, Real e) => PTX -> Mode DIM2 e a b -> DIM2 -> IO (Handle DIM2 e a b)
- plan3D :: (Elt e, Real e) => PTX -> Mode DIM3 e a b -> DIM3 -> IO (Handle DIM3 e a b)
- class (RealFloat e, RealFloat e, FromIntegral Int e) => Real e
- data Mode sh e a b
- forwardComplex :: (Shape sh, Slice sh, Real e) => Mode sh e (Complex e) (Complex e)
- inverseComplex :: (Shape sh, Slice sh, Real e) => Mode sh e (Complex e) (Complex e)
- forwardReal :: (Shape sh, Slice sh, Real e) => Mode (sh :. Int) e e (Complex e)
- inverseReal :: (Shape sh, Slice sh, Real e) => Mode (sh :. Int) e (Complex e) e
- getBestTarget :: IO PTX
Documentation
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.
plan1D :: (Elt e, Real e) => PTX -> Mode DIM1 e a b -> DIM1 -> IO (Handle DIM1 e a b) Source #
The plan must be created for the target where the transform is executed.
See plan1D
for details.
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.
getBestTarget :: IO PTX Source #