vector-fftw
Safe HaskellNone
LanguageHaskell2010

Numeric.FFT.Vector.Plan

Synopsis

Transform

data Transform a b Source #

A transform which may be applied to vectors of different sizes.

planOfType :: (Storable a, Storable b) => PlanType -> Transform a b -> Int -> Plan a b Source #

Create a Plan of a specific size for this transform.

plan :: (Storable a, Storable b) => Transform a b -> Int -> Plan a b Source #

Create a Plan of a specific size. This function is equivalent to planOfType Estimate.

run :: (Vector v a, Vector v b, Storable a, Storable b) => Transform a b -> v a -> v b Source #

Create and run a Plan for the given transform.

data TransformND a b Source #

A transform which may be applied to vectors of different sizes.

Since: 0.2

planOfTypeND :: (Storable a, Storable b) => PlanType -> TransformND a b -> Vector Int -> Plan a b Source #

Create a Plan of a specific size for this transform. dims must have rank greater or equal to 1

Since: 0.2

planND :: (Storable a, Storable b) => TransformND a b -> Vector Int -> Plan a b Source #

Create a Plan of a specific size. This function is equivalent to planOfType Estimate.

Since: 0.2

runND :: (Vector v a, Vector v b, Storable a, Storable b) => TransformND a b -> Vector Int -> v a -> v b Source #

Create and run a Plan for the given transform.

Since: 0.2

Plans

data Plan a b Source #

A Plan can be used to run an fftw algorithm for a specific input/output size.

planInputSize :: Storable a => Plan a b -> Int Source #

The (only) valid input size for this plan.

planOutputSize :: Storable b => Plan a b -> Int Source #

The (only) valid output size for this plan.

execute :: (Vector v a, Vector v b, Storable a, Storable b) => Plan a b -> v a -> v b Source #

Run a plan on the given Vector.

If planInputSize p /= length v, then calling execute p v will throw an exception.

executeM Source #

Arguments

:: (PrimBase m, MVector v a, MVector v b, Storable a, Storable b) 
=> Plan a b

The plan to run.

-> v (PrimState m) a

The input vector.

-> v (PrimState m) b

The output vector.

-> m () 

Run a plan on the given mutable vectors. The same vector may be used for both input and output.

If planInputSize p /= length vIn or planOutputSize p /= length vOut, then calling unsafeExecuteM p vIn vOut will throw an exception.