cufft-0.9.0.0: Haskell bindings for the CUFFT library

Copyright[2013..2018] Robert Clifton-Everest Trevor L. McDonell
LicenseBSD3
MaintainerTrevor L. McDonell <tmcdonell@cse.unsw.edu.au>
Stabilityexperimental
Portabilitynon-portable (GHC extensions)
Safe HaskellNone
LanguageHaskell98

Foreign.CUDA.FFT.Plan

Description

 

Synopsis

Documentation

newtype Handle Source #

A handle used to store and access cuFFT plans.

A handle is created by the FFT planning functions (e.g. plan1D) and used during execution of the transforms (e.g. execC2C).

The handle may be reused, but should be destroyed once it is no longer required, in order to release associated GPU memory and other resources.

Constructors

Handle 

Fields

data Type Source #

The cuFFT library supports complex- and real-valued transforms. This data type enumerates the kind of transform a plan will execute.

Key:

  • R: real (32-bit float)
  • D: double (64-bit float)
  • C: single-precision complex numbers (32-bit, interleaved)
  • Z: double-precision complex numbers (64-bit, interleaved)

Constructors

C2C 
R2C 
C2R 
Z2Z 
D2Z 
Z2D 

Instances

Enum Type Source # 

Methods

succ :: Type -> Type #

pred :: Type -> Type #

toEnum :: Int -> Type #

fromEnum :: Type -> Int #

enumFrom :: Type -> [Type] #

enumFromThen :: Type -> Type -> [Type] #

enumFromTo :: Type -> Type -> [Type] #

enumFromThenTo :: Type -> Type -> Type -> [Type] #

Eq Type Source # 

Methods

(==) :: Type -> Type -> Bool #

(/=) :: Type -> Type -> Bool #

Show Type Source # 

Methods

showsPrec :: Int -> Type -> ShowS #

show :: Type -> String #

showList :: [Type] -> ShowS #

plan1D Source #

Arguments

:: Int

Size of the transformation

-> Type

Transformation data type

-> Int

Number of one-dimensional transforms to configure

-> IO Handle 

Creates a 1D FFT plan configured for a specified signal size and data type.

The third argument tells cuFFT how many 1D transforms, of size given by the first argument, to configure. Consider using planMany for multiple transforms instead.

http://docs.nvidia.com/cuda/cufft/index.html#function-cufftplan1d

plan2D Source #

Arguments

:: Int

The transform size in the x-dimension. This is the slowest changing dimension of a transform (strided in memory)

-> Int

The transform size in the y-dimension. This is the fastest changing dimension of a transform (contiguous in memory)

-> Type

Transformation data type

-> IO Handle 

Creates a 2D FFT plan configuration for a specified signal size and data type.

http://docs.nvidia.com/cuda/cufft/index.html#function-cufftplan2d

plan3D Source #

Arguments

:: Int

The transform size in the x-dimension. This is the slowest changing dimension of the transform (strided in memory)

-> Int

The transform size in the y-dimension.

-> Int

The transform size in the z-dimension. This is the fastest changing dimension of the transform (contiguous in memory)

-> Type

Transformation data type

-> IO Handle 

Creates a 3D FFT plan configuration for a specified signal size and data type.

http://docs.nvidia.com/cuda/cufft/index.html#function-cufftplan3d

planMany Source #

Arguments

:: [Int]

The size of the transform in each dimension, where (n !! 0) is the size of the outermost dimension, and (n !! rank-1) the size of the innermost (contiguous) dimension of the transform.

-> Maybe ([Int], Int, Int)

Input data layout. If Nothing, the data is assumed to be contiguous.

-> Maybe ([Int], Int, Int)

Output data layout. If Nothing, the data is stored contiguously.

-> Type

Transformation type

-> Int

Batch size for this transform

-> IO Handle 

Creates a batched plan configuration for many signals of a specified size and data type in either 1, 2 or 3 dimensions.

This function supports more complicated input and output data layouts. If not specified (that is, Nothing is passed for either of the second or third parameters), contiguous data arrays are assumed.

Data layout configuration consists of three fields, respectively:

  • storage dimensions of the input data in memory
  • the distance between two successive input elements in the innermost (least significant) dimension
  • the distance between the first element of two consecutive signals in a batch of the input data

http://docs.nvidia.com/cuda/cufft/index.html#function-cufftplanmany

destroy :: Handle -> IO () Source #

Release resources associated with the given plan. This function should be called once a plan is no longer needed, to avoid wasting GPU memory.

http://docs.nvidia.com/cuda/cufft/index.html#function-cufftdestroy