-- Do not edit! Automatically generated by fftw-generate.
{-# LANGUAGE ForeignFunctionInterface #-}
-- | Using this module requires linking with @-lfftw3f@.
module Numeric.FFTW.FFI.Float where

import qualified Numeric.FFTW.FFI.Function as FFT
import qualified Numeric.FFTW.FFI.Type as Type

import qualified Data.EnumBitSet as EnumSet

import qualified Foreign.C.Types as C
import Foreign.ForeignPtr (FinalizerPtr)
import Foreign.Ptr (Ptr)
import Foreign.C.String (CString)



foreign import ccall unsafe "fftw3.h fftwf_export_wisdom_to_string"
   exportWisdomString :: IO CString

foreign import ccall unsafe "fftw3.h fftwf_import_wisdom_from_string"
   importWisdomString :: CString -> IO C.CInt

foreign import ccall unsafe "fftw3.h fftwf_import_system_wisdom"
   importWisdomSystem :: IO C.CInt


foreign import ccall safe "fftw3.h &fftwf_destroy_plan"
   ptrDestroyPlan :: FinalizerPtr (Type.Plan Float)

foreign import ccall unsafe "fftw3.h &fftwf_free"
   ptrFree :: FinalizerPtr (Ptr Float)


foreign import ccall safe "fftw3.h fftwf_plan_dft_1d"
   planDFT1d :: FFT.PlanDFT1d Float

foreign import ccall safe "fftw3.h fftwf_plan_dft_2d"
   planDFT2d :: FFT.PlanDFT2d Float

foreign import ccall safe "fftw3.h fftwf_plan_dft_3d"
   planDFT3d :: FFT.PlanDFT3d Float

foreign import ccall safe "fftw3.h fftwf_plan_dft"
   planDFT :: FFT.PlanDFT Float

foreign import ccall safe "fftw3.h fftwf_plan_dft_r2c_1d"
   planDFTr2c1d :: FFT.PlanDFTr2c1d Float

foreign import ccall safe "fftw3.h fftwf_plan_dft_r2c_2d"
   planDFTr2c2d :: FFT.PlanDFTr2c2d Float

foreign import ccall safe "fftw3.h fftwf_plan_dft_r2c_3d"
   planDFTr2c3d :: FFT.PlanDFTr2c3d Float

foreign import ccall safe "fftw3.h fftwf_plan_dft_r2c"
   planDFTr2c :: FFT.PlanDFTr2c Float

foreign import ccall safe "fftw3.h fftwf_plan_dft_c2r_1d"
   planDFTc2r1d :: FFT.PlanDFTc2r1d Float

foreign import ccall safe "fftw3.h fftwf_plan_dft_c2r_2d"
   planDFTc2r2d :: FFT.PlanDFTc2r2d Float

foreign import ccall safe "fftw3.h fftwf_plan_dft_c2r_3d"
   planDFTc2r3d :: FFT.PlanDFTc2r3d Float

foreign import ccall safe "fftw3.h fftwf_plan_dft_c2r"
   planDFTc2r :: FFT.PlanDFTc2r Float

foreign import ccall safe "fftw3.h fftwf_plan_r2r_1d"
   planR2r1d :: FFT.PlanR2r1d Float

foreign import ccall safe "fftw3.h fftwf_plan_r2r_2d"
   planR2r2d :: FFT.PlanR2r2d Float

foreign import ccall safe "fftw3.h fftwf_plan_r2r_3d"
   planR2r3d :: FFT.PlanR2r3d Float

foreign import ccall safe "fftw3.h fftwf_plan_r2r"
   planR2r :: FFT.PlanR2r Float

foreign import ccall safe "fftw3.h fftwf_plan_many_dft"
   planManyDFT :: FFT.PlanManyDFT Float

foreign import ccall safe "fftw3.h fftwf_plan_many_dft_r2c"
   planManyDFTr2c :: FFT.PlanManyDFTr2c Float

foreign import ccall safe "fftw3.h fftwf_plan_many_dft_c2r"
   planManyDFTc2r :: FFT.PlanManyDFTc2r Float

foreign import ccall safe "fftw3.h fftwf_plan_many_r2r"
   planManyR2r :: FFT.PlanManyR2r Float

foreign import ccall safe "fftw3.h fftwf_plan_guru_dft"
   planGuruDFT :: FFT.PlanGuruDFT Float

foreign import ccall safe "fftw3.h fftwf_plan_guru_dft_r2c"
   planGuruDFTr2c :: FFT.PlanGuruDFTr2c Float

foreign import ccall safe "fftw3.h fftwf_plan_guru_dft_c2r"
   planGuruDFTc2r :: FFT.PlanGuruDFTc2r Float

foreign import ccall safe "fftw3.h fftwf_plan_guru_r2r"
   planGuruR2r :: FFT.PlanGuruR2r Float

foreign import ccall safe "fftw3.h fftwf_plan_guru_split_dft"
   planGuruSplitDFT :: FFT.PlanGuruSplitDFT Float

foreign import ccall safe "fftw3.h fftwf_plan_guru_split_dft_r2c"
   planGuruSplitDFTr2c :: FFT.PlanGuruSplitDFTr2c Float

foreign import ccall safe "fftw3.h fftwf_plan_guru_split_dft_c2r"
   planGuruSplitDFTc2r :: FFT.PlanGuruSplitDFTc2r Float

foreign import ccall safe "fftw3.h fftwf_destroy_plan"
   destroyPlan :: FFT.DestroyPlan Float

foreign import ccall safe "fftw3.h fftwf_execute"
   execute :: FFT.Execute Float

foreign import ccall safe "fftw3.h fftwf_execute_dft"
   executeDFT :: FFT.ExecuteDFT Float

foreign import ccall safe "fftw3.h fftwf_execute_dft_r2c"
   executeDFTr2c :: FFT.ExecuteDFTr2c Float

foreign import ccall safe "fftw3.h fftwf_execute_dft_c2r"
   executeDFTc2r :: FFT.ExecuteDFTc2r Float

foreign import ccall safe "fftw3.h fftwf_execute_r2r"
   executeR2r :: FFT.ExecuteR2r Float

foreign import ccall safe "fftw3.h fftwf_execute_split_dft"
   executeSplitDFT :: FFT.ExecuteSplitDFT Float

foreign import ccall safe "fftw3.h fftwf_execute_split_dft_r2c"
   executeSplitDFTr2c :: FFT.ExecuteSplitDFTr2c Float

foreign import ccall safe "fftw3.h fftwf_execute_split_dft_c2r"
   executeSplitDFTc2r :: FFT.ExecuteSplitDFTc2r Float

foreign import ccall unsafe "fftw3.h fftwf_malloc"
   malloc :: FFT.Malloc Float

foreign import ccall unsafe "fftw3.h fftwf_free"
   free :: FFT.Free Float

foreign import ccall unsafe "fftw3.h fftwf_alloc_real"
   allocReal :: FFT.AllocReal Float

foreign import ccall unsafe "fftw3.h fftwf_alloc_complex"
   allocComplex :: FFT.AllocComplex Float

foreign import ccall unsafe "fftw3.h fftwf_free"
   freeComplex :: FFT.FreeComplex Float