module Bindings.Gsl.FastFourierTransforms where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word
import Bindings.Gsl.ComplexNumbers
type C'gsl_fft_direction = CInt
c'gsl_fft_forward = 1
c'gsl_fft_forward :: (Num a) => a
c'gsl_fft_backward = 1
c'gsl_fft_backward :: (Num a) => a
foreign import ccall "gsl_fft_complex_float_radix2_forward" c'gsl_fft_complex_float_radix2_forward
:: C'gsl_complex_packed_array_float -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_complex_float_radix2_forward" p'gsl_fft_complex_float_radix2_forward
:: FunPtr (C'gsl_complex_packed_array_float -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_complex_float_radix2_backward" c'gsl_fft_complex_float_radix2_backward
:: C'gsl_complex_packed_array_float -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_complex_float_radix2_backward" p'gsl_fft_complex_float_radix2_backward
:: FunPtr (C'gsl_complex_packed_array_float -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_complex_float_radix2_inverse" c'gsl_fft_complex_float_radix2_inverse
:: C'gsl_complex_packed_array_float -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_complex_float_radix2_inverse" p'gsl_fft_complex_float_radix2_inverse
:: FunPtr (C'gsl_complex_packed_array_float -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_complex_float_radix2_transform" c'gsl_fft_complex_float_radix2_transform
:: C'gsl_complex_packed_array_float -> CSize -> CSize -> C'gsl_fft_direction -> IO CInt
foreign import ccall "&gsl_fft_complex_float_radix2_transform" p'gsl_fft_complex_float_radix2_transform
:: FunPtr (C'gsl_complex_packed_array_float -> CSize -> CSize -> C'gsl_fft_direction -> IO CInt)
foreign import ccall "gsl_fft_complex_float_radix2_dif_forward" c'gsl_fft_complex_float_radix2_dif_forward
:: C'gsl_complex_packed_array_float -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_complex_float_radix2_dif_forward" p'gsl_fft_complex_float_radix2_dif_forward
:: FunPtr (C'gsl_complex_packed_array_float -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_complex_float_radix2_dif_backward" c'gsl_fft_complex_float_radix2_dif_backward
:: C'gsl_complex_packed_array_float -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_complex_float_radix2_dif_backward" p'gsl_fft_complex_float_radix2_dif_backward
:: FunPtr (C'gsl_complex_packed_array_float -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_complex_float_radix2_dif_inverse" c'gsl_fft_complex_float_radix2_dif_inverse
:: C'gsl_complex_packed_array_float -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_complex_float_radix2_dif_inverse" p'gsl_fft_complex_float_radix2_dif_inverse
:: FunPtr (C'gsl_complex_packed_array_float -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_complex_float_radix2_dif_transform" c'gsl_fft_complex_float_radix2_dif_transform
:: C'gsl_complex_packed_array_float -> CSize -> CSize -> C'gsl_fft_direction -> IO CInt
foreign import ccall "&gsl_fft_complex_float_radix2_dif_transform" p'gsl_fft_complex_float_radix2_dif_transform
:: FunPtr (C'gsl_complex_packed_array_float -> CSize -> CSize -> C'gsl_fft_direction -> IO CInt)
data C'gsl_fft_complex_wavetable_float = C'gsl_fft_complex_wavetable_float{
c'gsl_fft_complex_wavetable_float'n :: CSize,
c'gsl_fft_complex_wavetable_float'nf :: CSize,
c'gsl_fft_complex_wavetable_float'factor :: [CSize],
c'gsl_fft_complex_wavetable_float'twiddle :: [Ptr C'gsl_complex_float],
c'gsl_fft_complex_wavetable_float'trig :: Ptr C'gsl_complex_float
} deriving (Eq,Show)
p'gsl_fft_complex_wavetable_float'n p = plusPtr p 0
p'gsl_fft_complex_wavetable_float'n :: Ptr (C'gsl_fft_complex_wavetable_float) -> Ptr (CSize)
p'gsl_fft_complex_wavetable_float'nf p = plusPtr p 4
p'gsl_fft_complex_wavetable_float'nf :: Ptr (C'gsl_fft_complex_wavetable_float) -> Ptr (CSize)
p'gsl_fft_complex_wavetable_float'factor p = plusPtr p 8
p'gsl_fft_complex_wavetable_float'factor :: Ptr (C'gsl_fft_complex_wavetable_float) -> Ptr (CSize)
p'gsl_fft_complex_wavetable_float'twiddle p = plusPtr p 264
p'gsl_fft_complex_wavetable_float'twiddle :: Ptr (C'gsl_fft_complex_wavetable_float) -> Ptr (Ptr C'gsl_complex_float)
p'gsl_fft_complex_wavetable_float'trig p = plusPtr p 520
p'gsl_fft_complex_wavetable_float'trig :: Ptr (C'gsl_fft_complex_wavetable_float) -> Ptr (Ptr C'gsl_complex_float)
instance Storable C'gsl_fft_complex_wavetable_float where
sizeOf _ = 524
alignment _ = 4
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- let s = div 256 $ sizeOf $ (undefined :: CSize) in peekArray s (plusPtr p 8)
v3 <- let s = div 256 $ sizeOf $ (undefined :: Ptr C'gsl_complex_float) in peekArray s (plusPtr p 264)
v4 <- peekByteOff p 520
return $ C'gsl_fft_complex_wavetable_float v0 v1 v2 v3 v4
poke p (C'gsl_fft_complex_wavetable_float v0 v1 v2 v3 v4) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
let s = div 256 $ sizeOf $ (undefined :: CSize)
pokeArray (plusPtr p 8) (take s v2)
let s = div 256 $ sizeOf $ (undefined :: Ptr C'gsl_complex_float)
pokeArray (plusPtr p 264) (take s v3)
pokeByteOff p 520 v4
return ()
data C'gsl_fft_complex_workspace_float = C'gsl_fft_complex_workspace_float{
c'gsl_fft_complex_workspace_float'n :: CSize,
c'gsl_fft_complex_workspace_float'scratch :: Ptr CFloat
} deriving (Eq,Show)
p'gsl_fft_complex_workspace_float'n p = plusPtr p 0
p'gsl_fft_complex_workspace_float'n :: Ptr (C'gsl_fft_complex_workspace_float) -> Ptr (CSize)
p'gsl_fft_complex_workspace_float'scratch p = plusPtr p 4
p'gsl_fft_complex_workspace_float'scratch :: Ptr (C'gsl_fft_complex_workspace_float) -> Ptr (Ptr CFloat)
instance Storable C'gsl_fft_complex_workspace_float where
sizeOf _ = 8
alignment _ = 4
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
return $ C'gsl_fft_complex_workspace_float v0 v1
poke p (C'gsl_fft_complex_workspace_float v0 v1) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
return ()
foreign import ccall "gsl_fft_complex_wavetable_float_alloc" c'gsl_fft_complex_wavetable_float_alloc
:: CSize -> IO (Ptr C'gsl_fft_complex_wavetable_float)
foreign import ccall "&gsl_fft_complex_wavetable_float_alloc" p'gsl_fft_complex_wavetable_float_alloc
:: FunPtr (CSize -> IO (Ptr C'gsl_fft_complex_wavetable_float))
foreign import ccall "gsl_fft_complex_wavetable_float_free" c'gsl_fft_complex_wavetable_float_free
:: Ptr C'gsl_fft_complex_wavetable_float -> IO ()
foreign import ccall "&gsl_fft_complex_wavetable_float_free" p'gsl_fft_complex_wavetable_float_free
:: FunPtr (Ptr C'gsl_fft_complex_wavetable_float -> IO ())
foreign import ccall "gsl_fft_complex_workspace_float_alloc" c'gsl_fft_complex_workspace_float_alloc
:: CSize -> IO (Ptr C'gsl_fft_complex_workspace_float)
foreign import ccall "&gsl_fft_complex_workspace_float_alloc" p'gsl_fft_complex_workspace_float_alloc
:: FunPtr (CSize -> IO (Ptr C'gsl_fft_complex_workspace_float))
foreign import ccall "gsl_fft_complex_workspace_float_free" c'gsl_fft_complex_workspace_float_free
:: Ptr C'gsl_fft_complex_workspace_float -> IO ()
foreign import ccall "&gsl_fft_complex_workspace_float_free" p'gsl_fft_complex_workspace_float_free
:: FunPtr (Ptr C'gsl_fft_complex_workspace_float -> IO ())
foreign import ccall "gsl_fft_complex_float_memcpy" c'gsl_fft_complex_float_memcpy
:: Ptr C'gsl_fft_complex_wavetable_float -> Ptr C'gsl_fft_complex_wavetable_float -> IO CInt
foreign import ccall "&gsl_fft_complex_float_memcpy" p'gsl_fft_complex_float_memcpy
:: FunPtr (Ptr C'gsl_fft_complex_wavetable_float -> Ptr C'gsl_fft_complex_wavetable_float -> IO CInt)
foreign import ccall "gsl_fft_complex_float_forward" c'gsl_fft_complex_float_forward
:: C'gsl_complex_packed_array_float -> CSize -> CSize -> Ptr C'gsl_fft_complex_wavetable_float -> Ptr C'gsl_fft_complex_workspace_float -> IO CInt
foreign import ccall "&gsl_fft_complex_float_forward" p'gsl_fft_complex_float_forward
:: FunPtr (C'gsl_complex_packed_array_float -> CSize -> CSize -> Ptr C'gsl_fft_complex_wavetable_float -> Ptr C'gsl_fft_complex_workspace_float -> IO CInt)
foreign import ccall "gsl_fft_complex_float_backward" c'gsl_fft_complex_float_backward
:: C'gsl_complex_packed_array_float -> CSize -> CSize -> Ptr C'gsl_fft_complex_wavetable_float -> Ptr C'gsl_fft_complex_workspace_float -> IO CInt
foreign import ccall "&gsl_fft_complex_float_backward" p'gsl_fft_complex_float_backward
:: FunPtr (C'gsl_complex_packed_array_float -> CSize -> CSize -> Ptr C'gsl_fft_complex_wavetable_float -> Ptr C'gsl_fft_complex_workspace_float -> IO CInt)
foreign import ccall "gsl_fft_complex_float_inverse" c'gsl_fft_complex_float_inverse
:: C'gsl_complex_packed_array_float -> CSize -> CSize -> Ptr C'gsl_fft_complex_wavetable_float -> Ptr C'gsl_fft_complex_workspace_float -> IO CInt
foreign import ccall "&gsl_fft_complex_float_inverse" p'gsl_fft_complex_float_inverse
:: FunPtr (C'gsl_complex_packed_array_float -> CSize -> CSize -> Ptr C'gsl_fft_complex_wavetable_float -> Ptr C'gsl_fft_complex_workspace_float -> IO CInt)
foreign import ccall "gsl_fft_complex_float_transform" c'gsl_fft_complex_float_transform
:: C'gsl_complex_packed_array_float -> CSize -> CSize -> Ptr C'gsl_fft_complex_wavetable_float -> Ptr C'gsl_fft_complex_workspace_float -> C'gsl_fft_direction -> IO CInt
foreign import ccall "&gsl_fft_complex_float_transform" p'gsl_fft_complex_float_transform
:: FunPtr (C'gsl_complex_packed_array_float -> CSize -> CSize -> Ptr C'gsl_fft_complex_wavetable_float -> Ptr C'gsl_fft_complex_workspace_float -> C'gsl_fft_direction -> IO CInt)
foreign import ccall "gsl_fft_complex_radix2_forward" c'gsl_fft_complex_radix2_forward
:: C'gsl_complex_packed_array -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_complex_radix2_forward" p'gsl_fft_complex_radix2_forward
:: FunPtr (C'gsl_complex_packed_array -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_complex_radix2_backward" c'gsl_fft_complex_radix2_backward
:: C'gsl_complex_packed_array -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_complex_radix2_backward" p'gsl_fft_complex_radix2_backward
:: FunPtr (C'gsl_complex_packed_array -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_complex_radix2_inverse" c'gsl_fft_complex_radix2_inverse
:: C'gsl_complex_packed_array -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_complex_radix2_inverse" p'gsl_fft_complex_radix2_inverse
:: FunPtr (C'gsl_complex_packed_array -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_complex_radix2_transform" c'gsl_fft_complex_radix2_transform
:: C'gsl_complex_packed_array -> CSize -> CSize -> C'gsl_fft_direction -> IO CInt
foreign import ccall "&gsl_fft_complex_radix2_transform" p'gsl_fft_complex_radix2_transform
:: FunPtr (C'gsl_complex_packed_array -> CSize -> CSize -> C'gsl_fft_direction -> IO CInt)
foreign import ccall "gsl_fft_complex_radix2_dif_forward" c'gsl_fft_complex_radix2_dif_forward
:: C'gsl_complex_packed_array -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_complex_radix2_dif_forward" p'gsl_fft_complex_radix2_dif_forward
:: FunPtr (C'gsl_complex_packed_array -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_complex_radix2_dif_backward" c'gsl_fft_complex_radix2_dif_backward
:: C'gsl_complex_packed_array -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_complex_radix2_dif_backward" p'gsl_fft_complex_radix2_dif_backward
:: FunPtr (C'gsl_complex_packed_array -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_complex_radix2_dif_inverse" c'gsl_fft_complex_radix2_dif_inverse
:: C'gsl_complex_packed_array -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_complex_radix2_dif_inverse" p'gsl_fft_complex_radix2_dif_inverse
:: FunPtr (C'gsl_complex_packed_array -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_complex_radix2_dif_transform" c'gsl_fft_complex_radix2_dif_transform
:: C'gsl_complex_packed_array -> CSize -> CSize -> C'gsl_fft_direction -> IO CInt
foreign import ccall "&gsl_fft_complex_radix2_dif_transform" p'gsl_fft_complex_radix2_dif_transform
:: FunPtr (C'gsl_complex_packed_array -> CSize -> CSize -> C'gsl_fft_direction -> IO CInt)
data C'gsl_fft_complex_wavetable = C'gsl_fft_complex_wavetable{
c'gsl_fft_complex_wavetable'n :: CSize,
c'gsl_fft_complex_wavetable'nf :: CSize,
c'gsl_fft_complex_wavetable'factor :: [CSize],
c'gsl_fft_complex_wavetable'twiddle :: [Ptr C'gsl_complex],
c'gsl_fft_complex_wavetable'trig :: Ptr C'gsl_complex
} deriving (Eq,Show)
p'gsl_fft_complex_wavetable'n p = plusPtr p 0
p'gsl_fft_complex_wavetable'n :: Ptr (C'gsl_fft_complex_wavetable) -> Ptr (CSize)
p'gsl_fft_complex_wavetable'nf p = plusPtr p 4
p'gsl_fft_complex_wavetable'nf :: Ptr (C'gsl_fft_complex_wavetable) -> Ptr (CSize)
p'gsl_fft_complex_wavetable'factor p = plusPtr p 8
p'gsl_fft_complex_wavetable'factor :: Ptr (C'gsl_fft_complex_wavetable) -> Ptr (CSize)
p'gsl_fft_complex_wavetable'twiddle p = plusPtr p 264
p'gsl_fft_complex_wavetable'twiddle :: Ptr (C'gsl_fft_complex_wavetable) -> Ptr (Ptr C'gsl_complex)
p'gsl_fft_complex_wavetable'trig p = plusPtr p 520
p'gsl_fft_complex_wavetable'trig :: Ptr (C'gsl_fft_complex_wavetable) -> Ptr (Ptr C'gsl_complex)
instance Storable C'gsl_fft_complex_wavetable where
sizeOf _ = 524
alignment _ = 4
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- let s = div 256 $ sizeOf $ (undefined :: CSize) in peekArray s (plusPtr p 8)
v3 <- let s = div 256 $ sizeOf $ (undefined :: Ptr C'gsl_complex) in peekArray s (plusPtr p 264)
v4 <- peekByteOff p 520
return $ C'gsl_fft_complex_wavetable v0 v1 v2 v3 v4
poke p (C'gsl_fft_complex_wavetable v0 v1 v2 v3 v4) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
let s = div 256 $ sizeOf $ (undefined :: CSize)
pokeArray (plusPtr p 8) (take s v2)
let s = div 256 $ sizeOf $ (undefined :: Ptr C'gsl_complex)
pokeArray (plusPtr p 264) (take s v3)
pokeByteOff p 520 v4
return ()
data C'gsl_fft_complex_workspace = C'gsl_fft_complex_workspace{
c'gsl_fft_complex_workspace'n :: CSize,
c'gsl_fft_complex_workspace'scratch :: Ptr CDouble
} deriving (Eq,Show)
p'gsl_fft_complex_workspace'n p = plusPtr p 0
p'gsl_fft_complex_workspace'n :: Ptr (C'gsl_fft_complex_workspace) -> Ptr (CSize)
p'gsl_fft_complex_workspace'scratch p = plusPtr p 4
p'gsl_fft_complex_workspace'scratch :: Ptr (C'gsl_fft_complex_workspace) -> Ptr (Ptr CDouble)
instance Storable C'gsl_fft_complex_workspace where
sizeOf _ = 8
alignment _ = 4
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
return $ C'gsl_fft_complex_workspace v0 v1
poke p (C'gsl_fft_complex_workspace v0 v1) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
return ()
foreign import ccall "gsl_fft_complex_wavetable_alloc" c'gsl_fft_complex_wavetable_alloc
:: CSize -> IO (Ptr C'gsl_fft_complex_wavetable)
foreign import ccall "&gsl_fft_complex_wavetable_alloc" p'gsl_fft_complex_wavetable_alloc
:: FunPtr (CSize -> IO (Ptr C'gsl_fft_complex_wavetable))
foreign import ccall "gsl_fft_complex_wavetable_free" c'gsl_fft_complex_wavetable_free
:: Ptr C'gsl_fft_complex_wavetable -> IO ()
foreign import ccall "&gsl_fft_complex_wavetable_free" p'gsl_fft_complex_wavetable_free
:: FunPtr (Ptr C'gsl_fft_complex_wavetable -> IO ())
foreign import ccall "gsl_fft_complex_workspace_alloc" c'gsl_fft_complex_workspace_alloc
:: CSize -> IO (Ptr C'gsl_fft_complex_workspace)
foreign import ccall "&gsl_fft_complex_workspace_alloc" p'gsl_fft_complex_workspace_alloc
:: FunPtr (CSize -> IO (Ptr C'gsl_fft_complex_workspace))
foreign import ccall "gsl_fft_complex_workspace_free" c'gsl_fft_complex_workspace_free
:: Ptr C'gsl_fft_complex_workspace -> IO ()
foreign import ccall "&gsl_fft_complex_workspace_free" p'gsl_fft_complex_workspace_free
:: FunPtr (Ptr C'gsl_fft_complex_workspace -> IO ())
foreign import ccall "gsl_fft_complex_memcpy" c'gsl_fft_complex_memcpy
:: Ptr C'gsl_fft_complex_wavetable -> Ptr C'gsl_fft_complex_wavetable -> IO CInt
foreign import ccall "&gsl_fft_complex_memcpy" p'gsl_fft_complex_memcpy
:: FunPtr (Ptr C'gsl_fft_complex_wavetable -> Ptr C'gsl_fft_complex_wavetable -> IO CInt)
foreign import ccall "gsl_fft_complex_forward" c'gsl_fft_complex_forward
:: C'gsl_complex_packed_array -> CSize -> CSize -> Ptr C'gsl_fft_complex_wavetable -> Ptr C'gsl_fft_complex_workspace -> IO CInt
foreign import ccall "&gsl_fft_complex_forward" p'gsl_fft_complex_forward
:: FunPtr (C'gsl_complex_packed_array -> CSize -> CSize -> Ptr C'gsl_fft_complex_wavetable -> Ptr C'gsl_fft_complex_workspace -> IO CInt)
foreign import ccall "gsl_fft_complex_backward" c'gsl_fft_complex_backward
:: C'gsl_complex_packed_array -> CSize -> CSize -> Ptr C'gsl_fft_complex_wavetable -> Ptr C'gsl_fft_complex_workspace -> IO CInt
foreign import ccall "&gsl_fft_complex_backward" p'gsl_fft_complex_backward
:: FunPtr (C'gsl_complex_packed_array -> CSize -> CSize -> Ptr C'gsl_fft_complex_wavetable -> Ptr C'gsl_fft_complex_workspace -> IO CInt)
foreign import ccall "gsl_fft_complex_inverse" c'gsl_fft_complex_inverse
:: C'gsl_complex_packed_array -> CSize -> CSize -> Ptr C'gsl_fft_complex_wavetable -> Ptr C'gsl_fft_complex_workspace -> IO CInt
foreign import ccall "&gsl_fft_complex_inverse" p'gsl_fft_complex_inverse
:: FunPtr (C'gsl_complex_packed_array -> CSize -> CSize -> Ptr C'gsl_fft_complex_wavetable -> Ptr C'gsl_fft_complex_workspace -> IO CInt)
foreign import ccall "gsl_fft_complex_transform" c'gsl_fft_complex_transform
:: C'gsl_complex_packed_array -> CSize -> CSize -> Ptr C'gsl_fft_complex_wavetable -> Ptr C'gsl_fft_complex_workspace -> C'gsl_fft_direction -> IO CInt
foreign import ccall "&gsl_fft_complex_transform" p'gsl_fft_complex_transform
:: FunPtr (C'gsl_complex_packed_array -> CSize -> CSize -> Ptr C'gsl_fft_complex_wavetable -> Ptr C'gsl_fft_complex_workspace -> C'gsl_fft_direction -> IO CInt)
foreign import ccall "gsl_fft_halfcomplex_float_radix2_backward" c'gsl_fft_halfcomplex_float_radix2_backward
:: Ptr CFloat -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_halfcomplex_float_radix2_backward" p'gsl_fft_halfcomplex_float_radix2_backward
:: FunPtr (Ptr CFloat -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_halfcomplex_float_radix2_inverse" c'gsl_fft_halfcomplex_float_radix2_inverse
:: Ptr CFloat -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_halfcomplex_float_radix2_inverse" p'gsl_fft_halfcomplex_float_radix2_inverse
:: FunPtr (Ptr CFloat -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_halfcomplex_float_radix2_transform" c'gsl_fft_halfcomplex_float_radix2_transform
:: Ptr CFloat -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_halfcomplex_float_radix2_transform" p'gsl_fft_halfcomplex_float_radix2_transform
:: FunPtr (Ptr CFloat -> CSize -> CSize -> IO CInt)
data C'gsl_fft_halfcomplex_wavetable_float = C'gsl_fft_halfcomplex_wavetable_float{
c'gsl_fft_halfcomplex_wavetable_float'twiddle :: [Ptr C'gsl_complex_float],
c'gsl_fft_halfcomplex_wavetable_float'n :: CSize,
c'gsl_fft_halfcomplex_wavetable_float'nf :: CSize,
c'gsl_fft_halfcomplex_wavetable_float'factor :: [CSize],
c'gsl_fft_halfcomplex_wavetable_float'trig :: Ptr C'gsl_complex_float
} deriving (Eq,Show)
p'gsl_fft_halfcomplex_wavetable_float'twiddle p = plusPtr p 264
p'gsl_fft_halfcomplex_wavetable_float'twiddle :: Ptr (C'gsl_fft_halfcomplex_wavetable_float) -> Ptr (Ptr C'gsl_complex_float)
p'gsl_fft_halfcomplex_wavetable_float'n p = plusPtr p 0
p'gsl_fft_halfcomplex_wavetable_float'n :: Ptr (C'gsl_fft_halfcomplex_wavetable_float) -> Ptr (CSize)
p'gsl_fft_halfcomplex_wavetable_float'nf p = plusPtr p 4
p'gsl_fft_halfcomplex_wavetable_float'nf :: Ptr (C'gsl_fft_halfcomplex_wavetable_float) -> Ptr (CSize)
p'gsl_fft_halfcomplex_wavetable_float'factor p = plusPtr p 8
p'gsl_fft_halfcomplex_wavetable_float'factor :: Ptr (C'gsl_fft_halfcomplex_wavetable_float) -> Ptr (CSize)
p'gsl_fft_halfcomplex_wavetable_float'trig p = plusPtr p 520
p'gsl_fft_halfcomplex_wavetable_float'trig :: Ptr (C'gsl_fft_halfcomplex_wavetable_float) -> Ptr (Ptr C'gsl_complex_float)
instance Storable C'gsl_fft_halfcomplex_wavetable_float where
sizeOf _ = 524
alignment _ = 4
peek p = do
v0 <- let s = div 256 $ sizeOf $ (undefined :: Ptr C'gsl_complex_float) in peekArray s (plusPtr p 264)
v1 <- peekByteOff p 0
v2 <- peekByteOff p 4
v3 <- let s = div 256 $ sizeOf $ (undefined :: CSize) in peekArray s (plusPtr p 8)
v4 <- peekByteOff p 520
return $ C'gsl_fft_halfcomplex_wavetable_float v0 v1 v2 v3 v4
poke p (C'gsl_fft_halfcomplex_wavetable_float v0 v1 v2 v3 v4) = do
let s = div 256 $ sizeOf $ (undefined :: Ptr C'gsl_complex_float)
pokeArray (plusPtr p 264) (take s v0)
pokeByteOff p 0 v1
pokeByteOff p 4 v2
let s = div 256 $ sizeOf $ (undefined :: CSize)
pokeArray (plusPtr p 8) (take s v3)
pokeByteOff p 520 v4
return ()
foreign import ccall "gsl_fft_halfcomplex_wavetable_float_alloc" c'gsl_fft_halfcomplex_wavetable_float_alloc
:: CSize -> IO (Ptr C'gsl_fft_halfcomplex_wavetable_float)
foreign import ccall "&gsl_fft_halfcomplex_wavetable_float_alloc" p'gsl_fft_halfcomplex_wavetable_float_alloc
:: FunPtr (CSize -> IO (Ptr C'gsl_fft_halfcomplex_wavetable_float))
foreign import ccall "gsl_fft_halfcomplex_wavetable_float_free" c'gsl_fft_halfcomplex_wavetable_float_free
:: Ptr C'gsl_fft_halfcomplex_wavetable_float -> IO ()
foreign import ccall "&gsl_fft_halfcomplex_wavetable_float_free" p'gsl_fft_halfcomplex_wavetable_float_free
:: FunPtr (Ptr C'gsl_fft_halfcomplex_wavetable_float -> IO ())
foreign import ccall "gsl_fft_halfcomplex_float_backward" c'gsl_fft_halfcomplex_float_backward
:: Ptr CFloat -> CSize -> CSize -> Ptr C'gsl_fft_halfcomplex_wavetable_float -> Ptr C'gsl_fft_real_workspace_float -> IO CInt
foreign import ccall "&gsl_fft_halfcomplex_float_backward" p'gsl_fft_halfcomplex_float_backward
:: FunPtr (Ptr CFloat -> CSize -> CSize -> Ptr C'gsl_fft_halfcomplex_wavetable_float -> Ptr C'gsl_fft_real_workspace_float -> IO CInt)
foreign import ccall "gsl_fft_halfcomplex_float_inverse" c'gsl_fft_halfcomplex_float_inverse
:: Ptr CFloat -> CSize -> CSize -> Ptr C'gsl_fft_halfcomplex_wavetable_float -> Ptr C'gsl_fft_real_workspace_float -> IO CInt
foreign import ccall "&gsl_fft_halfcomplex_float_inverse" p'gsl_fft_halfcomplex_float_inverse
:: FunPtr (Ptr CFloat -> CSize -> CSize -> Ptr C'gsl_fft_halfcomplex_wavetable_float -> Ptr C'gsl_fft_real_workspace_float -> IO CInt)
foreign import ccall "gsl_fft_halfcomplex_float_transform" c'gsl_fft_halfcomplex_float_transform
:: Ptr CFloat -> CSize -> CSize -> Ptr C'gsl_fft_halfcomplex_wavetable_float -> Ptr C'gsl_fft_real_workspace_float -> IO CInt
foreign import ccall "&gsl_fft_halfcomplex_float_transform" p'gsl_fft_halfcomplex_float_transform
:: FunPtr (Ptr CFloat -> CSize -> CSize -> Ptr C'gsl_fft_halfcomplex_wavetable_float -> Ptr C'gsl_fft_real_workspace_float -> IO CInt)
foreign import ccall "gsl_fft_halfcomplex_float_unpack" c'gsl_fft_halfcomplex_float_unpack
:: Ptr CFloat -> Ptr CFloat -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_halfcomplex_float_unpack" p'gsl_fft_halfcomplex_float_unpack
:: FunPtr (Ptr CFloat -> Ptr CFloat -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_halfcomplex_float_radix2_unpack" c'gsl_fft_halfcomplex_float_radix2_unpack
:: Ptr CFloat -> Ptr CFloat -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_halfcomplex_float_radix2_unpack" p'gsl_fft_halfcomplex_float_radix2_unpack
:: FunPtr (Ptr CFloat -> Ptr CFloat -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_halfcomplex_radix2_backward" c'gsl_fft_halfcomplex_radix2_backward
:: Ptr CDouble -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_halfcomplex_radix2_backward" p'gsl_fft_halfcomplex_radix2_backward
:: FunPtr (Ptr CDouble -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_halfcomplex_radix2_inverse" c'gsl_fft_halfcomplex_radix2_inverse
:: Ptr CDouble -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_halfcomplex_radix2_inverse" p'gsl_fft_halfcomplex_radix2_inverse
:: FunPtr (Ptr CDouble -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_halfcomplex_radix2_transform" c'gsl_fft_halfcomplex_radix2_transform
:: Ptr CDouble -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_halfcomplex_radix2_transform" p'gsl_fft_halfcomplex_radix2_transform
:: FunPtr (Ptr CDouble -> CSize -> CSize -> IO CInt)
data C'gsl_fft_halfcomplex_wavetable = C'gsl_fft_halfcomplex_wavetable{
c'gsl_fft_halfcomplex_wavetable'n :: CSize,
c'gsl_fft_halfcomplex_wavetable'nf :: CSize,
c'gsl_fft_halfcomplex_wavetable'factor :: [CSize],
c'gsl_fft_halfcomplex_wavetable'twiddle :: [Ptr C'gsl_complex],
c'gsl_fft_halfcomplex_wavetable'trig :: Ptr C'gsl_complex
} deriving (Eq,Show)
p'gsl_fft_halfcomplex_wavetable'n p = plusPtr p 0
p'gsl_fft_halfcomplex_wavetable'n :: Ptr (C'gsl_fft_halfcomplex_wavetable) -> Ptr (CSize)
p'gsl_fft_halfcomplex_wavetable'nf p = plusPtr p 4
p'gsl_fft_halfcomplex_wavetable'nf :: Ptr (C'gsl_fft_halfcomplex_wavetable) -> Ptr (CSize)
p'gsl_fft_halfcomplex_wavetable'factor p = plusPtr p 8
p'gsl_fft_halfcomplex_wavetable'factor :: Ptr (C'gsl_fft_halfcomplex_wavetable) -> Ptr (CSize)
p'gsl_fft_halfcomplex_wavetable'twiddle p = plusPtr p 264
p'gsl_fft_halfcomplex_wavetable'twiddle :: Ptr (C'gsl_fft_halfcomplex_wavetable) -> Ptr (Ptr C'gsl_complex)
p'gsl_fft_halfcomplex_wavetable'trig p = plusPtr p 520
p'gsl_fft_halfcomplex_wavetable'trig :: Ptr (C'gsl_fft_halfcomplex_wavetable) -> Ptr (Ptr C'gsl_complex)
instance Storable C'gsl_fft_halfcomplex_wavetable where
sizeOf _ = 524
alignment _ = 4
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- let s = div 256 $ sizeOf $ (undefined :: CSize) in peekArray s (plusPtr p 8)
v3 <- let s = div 256 $ sizeOf $ (undefined :: Ptr C'gsl_complex) in peekArray s (plusPtr p 264)
v4 <- peekByteOff p 520
return $ C'gsl_fft_halfcomplex_wavetable v0 v1 v2 v3 v4
poke p (C'gsl_fft_halfcomplex_wavetable v0 v1 v2 v3 v4) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
let s = div 256 $ sizeOf $ (undefined :: CSize)
pokeArray (plusPtr p 8) (take s v2)
let s = div 256 $ sizeOf $ (undefined :: Ptr C'gsl_complex)
pokeArray (plusPtr p 264) (take s v3)
pokeByteOff p 520 v4
return ()
foreign import ccall "gsl_fft_halfcomplex_wavetable_alloc" c'gsl_fft_halfcomplex_wavetable_alloc
:: CSize -> IO (Ptr C'gsl_fft_halfcomplex_wavetable)
foreign import ccall "&gsl_fft_halfcomplex_wavetable_alloc" p'gsl_fft_halfcomplex_wavetable_alloc
:: FunPtr (CSize -> IO (Ptr C'gsl_fft_halfcomplex_wavetable))
foreign import ccall "gsl_fft_halfcomplex_wavetable_free" c'gsl_fft_halfcomplex_wavetable_free
:: Ptr C'gsl_fft_halfcomplex_wavetable -> IO ()
foreign import ccall "&gsl_fft_halfcomplex_wavetable_free" p'gsl_fft_halfcomplex_wavetable_free
:: FunPtr (Ptr C'gsl_fft_halfcomplex_wavetable -> IO ())
foreign import ccall "gsl_fft_halfcomplex_backward" c'gsl_fft_halfcomplex_backward
:: Ptr CDouble -> CSize -> CSize -> Ptr C'gsl_fft_halfcomplex_wavetable -> Ptr C'gsl_fft_real_workspace -> IO CInt
foreign import ccall "&gsl_fft_halfcomplex_backward" p'gsl_fft_halfcomplex_backward
:: FunPtr (Ptr CDouble -> CSize -> CSize -> Ptr C'gsl_fft_halfcomplex_wavetable -> Ptr C'gsl_fft_real_workspace -> IO CInt)
foreign import ccall "gsl_fft_halfcomplex_inverse" c'gsl_fft_halfcomplex_inverse
:: Ptr CDouble -> CSize -> CSize -> Ptr C'gsl_fft_halfcomplex_wavetable -> Ptr C'gsl_fft_real_workspace -> IO CInt
foreign import ccall "&gsl_fft_halfcomplex_inverse" p'gsl_fft_halfcomplex_inverse
:: FunPtr (Ptr CDouble -> CSize -> CSize -> Ptr C'gsl_fft_halfcomplex_wavetable -> Ptr C'gsl_fft_real_workspace -> IO CInt)
foreign import ccall "gsl_fft_halfcomplex_transform" c'gsl_fft_halfcomplex_transform
:: Ptr CDouble -> CSize -> CSize -> Ptr C'gsl_fft_halfcomplex_wavetable -> Ptr C'gsl_fft_real_workspace -> IO CInt
foreign import ccall "&gsl_fft_halfcomplex_transform" p'gsl_fft_halfcomplex_transform
:: FunPtr (Ptr CDouble -> CSize -> CSize -> Ptr C'gsl_fft_halfcomplex_wavetable -> Ptr C'gsl_fft_real_workspace -> IO CInt)
foreign import ccall "gsl_fft_halfcomplex_unpack" c'gsl_fft_halfcomplex_unpack
:: Ptr CDouble -> Ptr CDouble -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_halfcomplex_unpack" p'gsl_fft_halfcomplex_unpack
:: FunPtr (Ptr CDouble -> Ptr CDouble -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_halfcomplex_radix2_unpack" c'gsl_fft_halfcomplex_radix2_unpack
:: Ptr CDouble -> Ptr CDouble -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_halfcomplex_radix2_unpack" p'gsl_fft_halfcomplex_radix2_unpack
:: FunPtr (Ptr CDouble -> Ptr CDouble -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_real_float_radix2_transform" c'gsl_fft_real_float_radix2_transform
:: Ptr CFloat -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_real_float_radix2_transform" p'gsl_fft_real_float_radix2_transform
:: FunPtr (Ptr CFloat -> CSize -> CSize -> IO CInt)
data C'gsl_fft_real_wavetable_float = C'gsl_fft_real_wavetable_float{
c'gsl_fft_real_wavetable_float'n :: CSize,
c'gsl_fft_real_wavetable_float'nf :: CSize,
c'gsl_fft_real_wavetable_float'factor :: [CSize],
c'gsl_fft_real_wavetable_float'twiddle :: [Ptr C'gsl_complex_float],
c'gsl_fft_real_wavetable_float'trig :: Ptr C'gsl_complex_float
} deriving (Eq,Show)
p'gsl_fft_real_wavetable_float'n p = plusPtr p 0
p'gsl_fft_real_wavetable_float'n :: Ptr (C'gsl_fft_real_wavetable_float) -> Ptr (CSize)
p'gsl_fft_real_wavetable_float'nf p = plusPtr p 4
p'gsl_fft_real_wavetable_float'nf :: Ptr (C'gsl_fft_real_wavetable_float) -> Ptr (CSize)
p'gsl_fft_real_wavetable_float'factor p = plusPtr p 8
p'gsl_fft_real_wavetable_float'factor :: Ptr (C'gsl_fft_real_wavetable_float) -> Ptr (CSize)
p'gsl_fft_real_wavetable_float'twiddle p = plusPtr p 264
p'gsl_fft_real_wavetable_float'twiddle :: Ptr (C'gsl_fft_real_wavetable_float) -> Ptr (Ptr C'gsl_complex_float)
p'gsl_fft_real_wavetable_float'trig p = plusPtr p 520
p'gsl_fft_real_wavetable_float'trig :: Ptr (C'gsl_fft_real_wavetable_float) -> Ptr (Ptr C'gsl_complex_float)
instance Storable C'gsl_fft_real_wavetable_float where
sizeOf _ = 524
alignment _ = 4
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- let s = div 256 $ sizeOf $ (undefined :: CSize) in peekArray s (plusPtr p 8)
v3 <- let s = div 256 $ sizeOf $ (undefined :: Ptr C'gsl_complex_float) in peekArray s (plusPtr p 264)
v4 <- peekByteOff p 520
return $ C'gsl_fft_real_wavetable_float v0 v1 v2 v3 v4
poke p (C'gsl_fft_real_wavetable_float v0 v1 v2 v3 v4) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
let s = div 256 $ sizeOf $ (undefined :: CSize)
pokeArray (plusPtr p 8) (take s v2)
let s = div 256 $ sizeOf $ (undefined :: Ptr C'gsl_complex_float)
pokeArray (plusPtr p 264) (take s v3)
pokeByteOff p 520 v4
return ()
data C'gsl_fft_real_workspace_float = C'gsl_fft_real_workspace_float{
c'gsl_fft_real_workspace_float'n :: CSize,
c'gsl_fft_real_workspace_float'scratch :: Ptr CFloat
} deriving (Eq,Show)
p'gsl_fft_real_workspace_float'n p = plusPtr p 0
p'gsl_fft_real_workspace_float'n :: Ptr (C'gsl_fft_real_workspace_float) -> Ptr (CSize)
p'gsl_fft_real_workspace_float'scratch p = plusPtr p 4
p'gsl_fft_real_workspace_float'scratch :: Ptr (C'gsl_fft_real_workspace_float) -> Ptr (Ptr CFloat)
instance Storable C'gsl_fft_real_workspace_float where
sizeOf _ = 8
alignment _ = 4
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
return $ C'gsl_fft_real_workspace_float v0 v1
poke p (C'gsl_fft_real_workspace_float v0 v1) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
return ()
foreign import ccall "gsl_fft_real_wavetable_float_alloc" c'gsl_fft_real_wavetable_float_alloc
:: CSize -> IO (Ptr C'gsl_fft_real_wavetable_float)
foreign import ccall "&gsl_fft_real_wavetable_float_alloc" p'gsl_fft_real_wavetable_float_alloc
:: FunPtr (CSize -> IO (Ptr C'gsl_fft_real_wavetable_float))
foreign import ccall "gsl_fft_real_wavetable_float_free" c'gsl_fft_real_wavetable_float_free
:: Ptr C'gsl_fft_real_wavetable_float -> IO ()
foreign import ccall "&gsl_fft_real_wavetable_float_free" p'gsl_fft_real_wavetable_float_free
:: FunPtr (Ptr C'gsl_fft_real_wavetable_float -> IO ())
foreign import ccall "gsl_fft_real_workspace_float_alloc" c'gsl_fft_real_workspace_float_alloc
:: CSize -> IO (Ptr C'gsl_fft_real_workspace_float)
foreign import ccall "&gsl_fft_real_workspace_float_alloc" p'gsl_fft_real_workspace_float_alloc
:: FunPtr (CSize -> IO (Ptr C'gsl_fft_real_workspace_float))
foreign import ccall "gsl_fft_real_workspace_float_free" c'gsl_fft_real_workspace_float_free
:: Ptr C'gsl_fft_real_workspace_float -> IO ()
foreign import ccall "&gsl_fft_real_workspace_float_free" p'gsl_fft_real_workspace_float_free
:: FunPtr (Ptr C'gsl_fft_real_workspace_float -> IO ())
foreign import ccall "gsl_fft_real_float_transform" c'gsl_fft_real_float_transform
:: Ptr CFloat -> CSize -> CSize -> Ptr C'gsl_fft_real_wavetable_float -> Ptr C'gsl_fft_real_workspace_float -> IO CInt
foreign import ccall "&gsl_fft_real_float_transform" p'gsl_fft_real_float_transform
:: FunPtr (Ptr CFloat -> CSize -> CSize -> Ptr C'gsl_fft_real_wavetable_float -> Ptr C'gsl_fft_real_workspace_float -> IO CInt)
foreign import ccall "gsl_fft_real_float_unpack" c'gsl_fft_real_float_unpack
:: Ptr CFloat -> Ptr CFloat -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_real_float_unpack" p'gsl_fft_real_float_unpack
:: FunPtr (Ptr CFloat -> Ptr CFloat -> CSize -> CSize -> IO CInt)
foreign import ccall "gsl_fft_real_radix2_transform" c'gsl_fft_real_radix2_transform
:: Ptr CDouble -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_real_radix2_transform" p'gsl_fft_real_radix2_transform
:: FunPtr (Ptr CDouble -> CSize -> CSize -> IO CInt)
data C'gsl_fft_real_wavetable = C'gsl_fft_real_wavetable{
c'gsl_fft_real_wavetable'n :: CSize,
c'gsl_fft_real_wavetable'nf :: CSize,
c'gsl_fft_real_wavetable'factor :: [CSize],
c'gsl_fft_real_wavetable'twiddle :: [Ptr C'gsl_complex],
c'gsl_fft_real_wavetable'trig :: Ptr C'gsl_complex
} deriving (Eq,Show)
p'gsl_fft_real_wavetable'n p = plusPtr p 0
p'gsl_fft_real_wavetable'n :: Ptr (C'gsl_fft_real_wavetable) -> Ptr (CSize)
p'gsl_fft_real_wavetable'nf p = plusPtr p 4
p'gsl_fft_real_wavetable'nf :: Ptr (C'gsl_fft_real_wavetable) -> Ptr (CSize)
p'gsl_fft_real_wavetable'factor p = plusPtr p 8
p'gsl_fft_real_wavetable'factor :: Ptr (C'gsl_fft_real_wavetable) -> Ptr (CSize)
p'gsl_fft_real_wavetable'twiddle p = plusPtr p 264
p'gsl_fft_real_wavetable'twiddle :: Ptr (C'gsl_fft_real_wavetable) -> Ptr (Ptr C'gsl_complex)
p'gsl_fft_real_wavetable'trig p = plusPtr p 520
p'gsl_fft_real_wavetable'trig :: Ptr (C'gsl_fft_real_wavetable) -> Ptr (Ptr C'gsl_complex)
instance Storable C'gsl_fft_real_wavetable where
sizeOf _ = 524
alignment _ = 4
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- let s = div 256 $ sizeOf $ (undefined :: CSize) in peekArray s (plusPtr p 8)
v3 <- let s = div 256 $ sizeOf $ (undefined :: Ptr C'gsl_complex) in peekArray s (plusPtr p 264)
v4 <- peekByteOff p 520
return $ C'gsl_fft_real_wavetable v0 v1 v2 v3 v4
poke p (C'gsl_fft_real_wavetable v0 v1 v2 v3 v4) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
let s = div 256 $ sizeOf $ (undefined :: CSize)
pokeArray (plusPtr p 8) (take s v2)
let s = div 256 $ sizeOf $ (undefined :: Ptr C'gsl_complex)
pokeArray (plusPtr p 264) (take s v3)
pokeByteOff p 520 v4
return ()
data C'gsl_fft_real_workspace = C'gsl_fft_real_workspace{
c'gsl_fft_real_workspace'n :: CSize,
c'gsl_fft_real_workspace'scratch :: Ptr CDouble
} deriving (Eq,Show)
p'gsl_fft_real_workspace'n p = plusPtr p 0
p'gsl_fft_real_workspace'n :: Ptr (C'gsl_fft_real_workspace) -> Ptr (CSize)
p'gsl_fft_real_workspace'scratch p = plusPtr p 4
p'gsl_fft_real_workspace'scratch :: Ptr (C'gsl_fft_real_workspace) -> Ptr (Ptr CDouble)
instance Storable C'gsl_fft_real_workspace where
sizeOf _ = 8
alignment _ = 4
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
return $ C'gsl_fft_real_workspace v0 v1
poke p (C'gsl_fft_real_workspace v0 v1) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
return ()
foreign import ccall "gsl_fft_real_wavetable_alloc" c'gsl_fft_real_wavetable_alloc
:: CSize -> IO (Ptr C'gsl_fft_real_wavetable)
foreign import ccall "&gsl_fft_real_wavetable_alloc" p'gsl_fft_real_wavetable_alloc
:: FunPtr (CSize -> IO (Ptr C'gsl_fft_real_wavetable))
foreign import ccall "gsl_fft_real_wavetable_free" c'gsl_fft_real_wavetable_free
:: Ptr C'gsl_fft_real_wavetable -> IO ()
foreign import ccall "&gsl_fft_real_wavetable_free" p'gsl_fft_real_wavetable_free
:: FunPtr (Ptr C'gsl_fft_real_wavetable -> IO ())
foreign import ccall "gsl_fft_real_workspace_alloc" c'gsl_fft_real_workspace_alloc
:: CSize -> IO (Ptr C'gsl_fft_real_workspace)
foreign import ccall "&gsl_fft_real_workspace_alloc" p'gsl_fft_real_workspace_alloc
:: FunPtr (CSize -> IO (Ptr C'gsl_fft_real_workspace))
foreign import ccall "gsl_fft_real_workspace_free" c'gsl_fft_real_workspace_free
:: Ptr C'gsl_fft_real_workspace -> IO ()
foreign import ccall "&gsl_fft_real_workspace_free" p'gsl_fft_real_workspace_free
:: FunPtr (Ptr C'gsl_fft_real_workspace -> IO ())
foreign import ccall "gsl_fft_real_transform" c'gsl_fft_real_transform
:: Ptr CDouble -> CSize -> CSize -> Ptr C'gsl_fft_real_wavetable -> Ptr C'gsl_fft_real_workspace -> IO CInt
foreign import ccall "&gsl_fft_real_transform" p'gsl_fft_real_transform
:: FunPtr (Ptr CDouble -> CSize -> CSize -> Ptr C'gsl_fft_real_wavetable -> Ptr C'gsl_fft_real_workspace -> IO CInt)
foreign import ccall "gsl_fft_real_unpack" c'gsl_fft_real_unpack
:: Ptr CDouble -> Ptr CDouble -> CSize -> CSize -> IO CInt
foreign import ccall "&gsl_fft_real_unpack" p'gsl_fft_real_unpack
:: FunPtr (Ptr CDouble -> Ptr CDouble -> CSize -> CSize -> IO CInt)