Safe Haskell | None |
---|---|

Language | Haskell98 |

The implementations in this module require that you know the transformation data set size on the Haskell side. This knowledge is baked into the Accelerate code. The advantage is, that you can share preprocessing between calls to the Fourier transforms, like in:

let transform = dit2 1024 in transform x ... transform y

- type Transform sh a = Acc (Array sh a) -> Acc (Array sh a)
- ditSplitRadix :: (Slice sh, Shape sh, RealFloat a, FromIntegral Int a) => Sign a -> Int -> Transform (sh :. Int) (Complex a)
- dit2 :: (Slice sh, Shape sh, RealFloat a, FromIntegral Int a) => Sign a -> Int -> Transform (sh :. Int) (Complex a)
- dif2 :: (Slice sh, Shape sh, RealFloat a, FromIntegral Int a) => Sign a -> Int -> Transform (sh :. Int) (Complex a)
- data Sign a
- forward :: Num a => Sign a
- inverse :: Num a => Sign a
- transform2d :: (Shape sh, Slice sh, RealFloat a) => SubTransformPair (Complex a) -> Transform ((sh :. Int) :. Int) (Complex a)
- transform3d :: (Shape sh, Slice sh, RealFloat a) => SubTransformTriple (Complex a) -> Transform (((sh :. Int) :. Int) :. Int) (Complex a)
- data SubTransformPair a = SubTransformPair (forall sh. (Shape sh, Slice sh) => Transform (sh :. Int) a) (forall sh. (Shape sh, Slice sh) => Transform (sh :. Int) a)
- data SubTransformTriple a = SubTransformTriple (forall sh. (Shape sh, Slice sh) => Transform (sh :. Int) a) (forall sh. (Shape sh, Slice sh) => Transform (sh :. Int) a) (forall sh. (Shape sh, Slice sh) => Transform (sh :. Int) a)

# Documentation

ditSplitRadix :: (Slice sh, Shape sh, RealFloat a, FromIntegral Int a) => Sign a -> Int -> Transform (sh :. Int) (Complex a) Source #

Decimation in time for power-of-two using the split-radix algorithm.
Should be faster than `dit2`

.

dit2 :: (Slice sh, Shape sh, RealFloat a, FromIntegral Int a) => Sign a -> Int -> Transform (sh :. Int) (Complex a) Source #

Decimation in time for power-of-two sizes.

dif2 :: (Slice sh, Shape sh, RealFloat a, FromIntegral Int a) => Sign a -> Int -> Transform (sh :. Int) (Complex a) Source #

Decimation in frequency for power-of-two sizes.

cst a => IsProduct cst (Sign a) Source # | |

(Lift Exp a, Elt (Plain a)) => Lift Exp (Sign a) Source # | |

Elt a => Unlift Exp (Sign (Exp a)) Source # | |

Eq a => Eq (Sign a) Source # | |

Show a => Show (Sign a) Source # | |

Num a => Arbitrary (Sign a) Source # | |

Elt a => Elt (Sign a) Source # | |

type EltRepr (Sign a) Source # | |

type ProdRepr (Sign a) Source # | |

type Plain (Sign a) Source # | |

transform2d :: (Shape sh, Slice sh, RealFloat a) => SubTransformPair (Complex a) -> Transform ((sh :. Int) :. Int) (Complex a) Source #

Transforms in `SubTransformPair`

are ordered from least-significant to most-significant dimension.

transform3d :: (Shape sh, Slice sh, RealFloat a) => SubTransformTriple (Complex a) -> Transform (((sh :. Int) :. Int) :. Int) (Complex a) Source #

Transforms in `SubTransformTriple`

are ordered from least-significant to most-significant dimension.

data SubTransformPair a Source #